主要内容

蓝牙EDR RF-PHY发射机调制精度和载频稳定性测试

此示例向您展示如何使用蓝牙®工具箱执行蓝牙®增强数据率(EDR)射频(RF)物理层(PHY)发射机测试,具体到调制精度和载频稳定性。测试测量计算初始频偏,均方根(RMS)差分误差矢量幅度(DEVM)和峰值DEVM值。此示例还验证这些测试测量值是否在蓝牙RF-PHY测试规格所指定的范围内[1].

蓝牙RF-PHY测试的目标

蓝牙RF-PHY测试规范[1]由蓝牙特殊兴趣小组(SIG)定义,包括对发射机和接收机的RF-PHY测试。这些RF-PHY测试的目标是:

  • 确保所有蓝牙设备之间的互操作性。

  • 确保所有蓝牙产品的基本系统性能水平。2022世界杯八强谁会赢?

每个测试用例都有一个特定的测试过程和预期的结果,这是被测实现(IUT)必须实现的。

RF-PHY发射机测试

发射机测试测量的主要目标是确保发射机特性在蓝牙RF-PHY测试规范规定的范围内[1].此示例包括与EDR调制精度和载频稳定性相关的发射机测试。此表显示了此示例执行的各种RF-PHY发射器测试。

RF-PHY发射机测试程序

此方框图总结了与蓝牙EDR波形的EDR调制精度和载频稳定性相关的发射机测试的测试程序。

该表显示了不同PHY模式下所需的报文类型和有效载荷长度:

  1. 生成蓝牙EDR测试波形bluetoothTestWaveform函数。

  2. 增加载波频率偏移和漂移。

  3. 添加高斯白噪声(AWGN)。

  4. 使用波形的基本速率(BR)部分估计初始频率偏移。

  5. 用估计的初始频率偏移补偿EDR部分。

  6. 使用基于蓝牙RF-PHY测试规范生成系数的滤波器进行平方根提升余弦滤波[1].

  7. 将EDR部分划分为每个50微秒长的块。

  8. 对于每个块,将补偿序列延迟1微秒,并与实际补偿序列微分得到误差序列。

  9. 根据误差序列和补偿序列计算RMS DEVM和峰值DEVM。

  10. 获取测试结果并显示结果。

配置仿真参数

如果需要指定PHY传输模式、数据包类型、初始频偏、最大频偏和每个符号的采样值,请设置phyModepacketTypeinitialFreqOffsetmaxFreqDrift,sps分别。

phyMode =“EDR2M”% PHY传输方式packetType =“2-DH1”% EDR报文类型initFreqOffset =40000%初始频率偏移,单位为HzmaxFreqDrift =0%以Hz为单位的最大频率漂移,必须在[-10e3, 10e3]范围内SPS = 8;每个符号的样本百分比

生成测试参数

使用上述配置的参数生成测试参数。要获得所有测试参数,请使用helperEDRModulationTestConfig.mhelper函数。若要添加频率偏移和热噪声,请创建并配置comm.PhaseFrequencyOffset而且comm.ThermalNoise系统对象™。

[edrTestParams,waveformConfig,filtCoeff] = helperEDRModulationTestConfig(phyMode,packetType,sps);创建频率偏移系统对象frequencyDelay = com . phasefrequencyoffset (“SampleRate”, edrTestParams.sampleRate);创建热噪声系统对象Nf = 12;%噪声数值(以分贝为单位)thNoise = com . thermalnoise (“NoiseMethod”“噪声图”...“SampleRate”edrTestParams.sampleRate,...“NoiseFigure”、NF);

模拟发射机测试

使用前面的RF-PHY发射机测试过程,模拟发射机测试。

初始化变量symDEVM = 0 (1,edrTestParams.requiredBlocks*edrTestParams.blockLength);[blockRMSDEVM,estimatedBlockFreqDrifts] = deal(0 (1,edrTestParams.requiredBlocks));estimatedInitFreqOff = 0 (1,edrTestParams.NumPackets);blockCount = 0;根据蓝牙RF-PHY测试规范生成200个数据块packetCount = 1:edrTestParams。NumPackets生成蓝牙EDR测试波形tx波形= bluetoothtest波形(waveformConfig);从波形中生成理想的EDR符号idealtxedr波形= tx波形(edrTestParams.startIndex*sps+1:结束);执行匹配过滤rxFilt = upfirdn(idealtxedr波形,filtCoeff,1,sps);去除延迟并将滤波信号归一化idealEDRSymbols = rxFilt(edrTestParams.span+1:end,1)/sqrt(sps);添加频率偏移driftRate = maxFreqDrift/length(tx波形);漂移率freqDrift = driftRate*(0:1:(length(tx波形)-1))';%数据包的频率漂移frequencyDelay。FrequencyOffset = freqDrift + initFreqOffset;%频率偏移,包括初始频率偏移和漂移transWaveformCFO = frequencyDelay(tx波形(1:长度(tx波形)));添加热噪声noisy波形= thNoise(transWaveformCFO);计算蓝牙RF-PHY测试规范中指定的初始频率偏移estimatedInitFreqOff(packetCount) = helperEstimateInitialFreqOffset(noisy波形,sps);补偿接收波形中的初始频率偏移pfOffset = com . phasefrequencyoffset (“SampleRate”edrTestParams.sampleRate,“FrequencyOffset”-estimatedInitFreqOff (packetCount));freqTimeSyncRcv = pfOffset(noisy波形);从包中删除访问码、包头和保护时间rxedr波形= freqTimeSyncRcv((edrTestParams.startIndex)*sps+1:结束);执行匹配过滤rxFilt = upfirdn(rxedr波形,filtCoeff,1,sps);receivedEDRSymbols = rxFilt(edrTestParams.span+1:end,1)/sqrt(sps);计算DEVM值[rmsDEVM, rmsDEVMSymbol samplingFreq] =...helperEDRModulationTestMeasurements (receivedEDRSymbols idealEDRSymbols edrTestParams);%蓝牙RF-PHY测试规范中规定的200个块的测量值累积blockCount = blockCount + edrTestParams.numDEVMBlocks;symDEVM (((packetCount-1) * edrTestParams.numDEVMBlocks * edrTestParams.blockLength) + 1: * edrTestParams.numDEVMBlocks (packetCount)...* eddrtestparams . blocklength) = rmsDEVMSymbol(1: eddrtestparams . numdevmblocks * eddrtestparams . blocklength);blockRMSDEVM (((packetCount-1) * edrTestParams.numDEVMBlocks) + 1: ((packetCount) * edrTestParams.numDEVMBlocks)) =...rmsDEVM (1: edrTestParams.numDEVMBlocks);estimatedBlockFreqDrifts (((packetCount-1) * edrTestParams.numDEVMBlocks) + 1: ((packetCount) * edrTestParams.numDEVMBlocks)) =...samplingFreq (1: edrTestParams.numDEVMBlocks);结束

使用helperEDRModulationTestVerdict.m辅助功能,用于验证测量值是否在指定范围内并显示结果。

helperEDRModulationTestVerdict (phyMode...edrTestParams、estimatedInitFreqOff symDEVM、blockRMSDEVM estimatedBlockFreqDrifts)
调制精度测试结果:

图中包含一个轴对象。标题为载荷符号DEVM的axes对象包含一个类型为line的对象。

所有pi/4-DQPSK符号的期望峰值DEVM小于等于0.35结果:通过DEVM小于等于0.3的pi/4-DQPSK符号的百分比为100 DEVM小于等于0.3的pi/4-DQPSK符号的期望百分比为99%结果:通过

图中包含一个轴对象。标题为Block RMS DEVM的axes对象包含一个line类型的对象。

所有pi/4-DQPSK块的期望RMS DEVM小于或等于0.2结果:通过载波频率稳定性测试结果:期望的初始频率偏移范围:[-75 kHz, 75 kHz]是否所有数据包的估计初始频率偏移都低于期望值?预期采样频率范围:[-10 kHz, 10 kHz]所有块的估计采样频率是否低于预期值?结果:是的
绘制星座图如果比较字符串(phyMode“EDR2M”) refSymbols = dpskmod(0:edrTestParams.M-1,edrTestParams.M,pi/4,“灰色”);执行pi/4-DQPSK调制其他的refSymbols = dpskmod(0:edrTestParams.M-1,edrTestParams.M,0,“灰色”);执行8-DPSK调制结束constDiag = com . constellationdiagram (“ReferenceConstellation”refSymbols,...“标题”'已收到EDR星座');constDiag (receivedEDRSymbols);释放(constDiag);

本例演示了针对调制精度和载频稳定性的蓝牙EDR发射机测试测量。模拟结果证实这些计算测试测量值均在Bluetooth RF-PHY测试规格[1].

附录

下面的例子使用了这些helper:

选定的参考书目

蓝牙特殊兴趣组(SIG)。《蓝牙RF-PHY测试规范》,v1.2/2.0/2.0, EDR/2.1/2.1, EDR/3.0/3.0, HS (), RF.TS/3.0.H。1,第4.5节。2009.https://www.bluetooth.com

2 -蓝牙特别兴趣组(SIG)。核心系统包[BR/EDR控制器卷]。蓝牙核心规格。版本5.3,卷2。https://www.bluetooth.com

另请参阅

功能

对象

相关的话题

Baidu
map