主要内容

BLE闭塞、互调和载波干扰性能测试

此示例显示如何根据蓝牙RF-PHY测试规范进行模拟,特定于阻塞,互调和载波对干扰(C / I)性能的模拟蓝牙®低能量(BLE)RF-PHY接收器测试[1]使用用于蓝牙协议的通信工具箱™库。

背景

蓝牙RF-PHY测试规范[1]由蓝牙特殊兴趣组(SIG)定义,包括发射器和接收器的RF-PHY测试。这些RF-PHY测试的目标是确保所有BLE设备之间的互操作性,并验证所有BLE产品是否保证了系统性能的基本级别。s manbetx 845每个测试用例都有一个指定的测试程序和预期结果,必须通过测试(IUT)的实施必须满足。

介绍

蓝牙接收器测试旨在确保IUT可以在传输信号具有高功率的条件范围内接收数据,并且在带内带内和带外干扰具有定义的分组错误率(每个)。此示例涵盖三个BLE RF-PHY接收器测试,用于阻塞,互调和C / I性能,按照蓝牙RF-PHY测试规范进行堵塞,互调和C / I性能[1].

  • 屏蔽性能:阻塞性能测试在存在外带干扰信号时验证接收器性能,即在2400 MHz - 2483.5 MHz带外工作。

  • 互调性能:互调性能测试在频率附近的不需要的信号存在下验证接收器性能。

  • C /我表现: C/I性能测试验证接收机在相邻和同道干扰信号存在时的性能。

所有上述RF-PHY测试都是必要的,因为所需的信号通常不会是在给定频率范围内发送的唯一信号。

下面的框图总结了示例流程。

  1. 生成测试包并通过bleWaveformGenerator生成BLE测试波形。

  2. 进行频率上转换以获得通频带信号。

  3. 将发送的信号缩放到所需的输入电平。

  4. 根据性能测试增加干扰信号。

  5. 在接收噪声层的基础上添加高斯白噪声。

  6. 在接收器处,向下转换信号然后解调,解码和执行CRC检查。

  7. 根据CRC检查测量PER,然后将其与每个引用进行比较。

检查支持包安装万博1manbetx

%检查“蓝牙协议的通信工具箱库”%支万博1manbetx持包安装或不安装。comm万博1manbetxsupportpackagecheck('蓝牙');

初始化模拟参数

你可以改变rxperformancetestPhymode.足球俱乐部参数,基于接收器性能测试,PHY传输模式和操作频率。

rxPerformanceTest =“互调”%从集合{'C/I', 'Blocking', 'Intermodulation'}中选择一个根据蓝牙RF-PHY测试规范选择PHY传输模式Phymode ='le1m'C / I的%{Le1m,Le2m,Le500k,Le125k}% {LE1M, LE2M}用于闭塞和互调基于性能测试和基于性能测试,%选择IUT操作频率%通用访问配置文件(GAP)角色(s)如下表所示。% --------------------------------------------------------------------------------%操作|外围和中央设备|广播和观察者设备|%频率|||% (MHz ) |---------------------------------|----------------------------------|%|C / I |阻塞|互调|C / I |阻止|互化|% ----------|------|----------|---------------|------|----------|----------------|%最低| 2406 | - | 2402 | 2402 | - | 2402 |%中间|2440 |2426 |2440 |2426 |2426 |2426 |%最高| 2476 | - | 2480 | 2480 | - | 2480 |% --------------------------------------------------------------------------------FC = 2426E6;Hz中操作频率%payloadlength =.37.%有效负载长度,以字节为单位,必须在范围内[37255]sps = 40;每个符号的样本数量基于PHY传输模式,%计算Hz中的采样率rsym = 1e6;如果Strcmp(Phymode,'le2m')rsym = 2e6;结束fs = rsym * sps;

生成基带波形

这个函数,helperBLETestWaveform.m,可以配置为根据蓝牙规范生成BLE测试分组波形[2].在这个例子中,想要的和干扰的基带波形可以通过改变有效载荷类型参数产生。

%生成有用信号,该信号始终是具有PRBS9的调制载波%有效载荷有效载荷= 0;PRBS9序列的%有效载荷类型wantedWaveform = helperBLETestWaveform (phyMode payloadTypeWanted payloadLength, sps);%生成干扰信号#1,它是具有a的调制载波%PRBS15有效载荷payloadTypeInterference = 3;% PRBS15序列的有效负载类型干扰WaveForm1 = HelperBletestWaveForm(PayLoadType干扰,PayloadLength,SPS,Phymode);

频率上变频

应用频率上转换以获得用于指定操作频率的通带信号。

用于覆盖BLE RF频带的上升率的%插值因子%(2400E6到2485E6)interpfortor = ceil(2 * 2485e6 / fs);%创建数字上变频器系统对象upConv = dsp。DigitalUpConverter (......'InterpolationFactor',interportor,......'samplerate'Fs,......“带宽”2 e6,......'stopbandattenuation',44,......“PassbandRipple”,0.5,......'中心罚款',FC);%将基带波形上转换为通带WantedWaveFormup = UpConv([通缉WaveForm;零(8 * SPS,1)]);

生成测试参数

基于性能测试,操作频率和PHY传输模式生成测试参数。这个函数,helperBLETestParamGenerate.m,用于生成所选择的接收器性能测试的所有干扰频率和相应的缩放因子(Alpha,Beta,Gamma)。

(α,β,γ,interferenceFreq1 interferenceFreq2] =......helperBLETestParamGenerate (rxPerformanceTest Fc, phyMode);

基于用于模拟的数据包数重复测试参数。

pktcnt = 10;%数据包数量maxInterferenceParams = min(长度(interferenceFreq1), pktCnt);%用于仿真的最大干扰参数数%重复所有干扰参数,使得每个干扰参数可以平均所选接收器的整个干扰频率范围%的性能测试。ReputFact = CEIL(PKTCNT / MAXINTEREFICEDPARAMS);%重复因子Betarep = Repmat(Beta,Repuort,1);Gammarep = Repmat(伽玛,repfact,1);干扰效果= repmat(干扰freq1,Repfact,1);itsferferffreq2rep = repmat(干扰freq2,repfact,1);

测试模拟

在此示例中,所有三个BLE RF-PHY性能测试都如下模拟:

  • 对于阻塞性能,只有一个干扰信号,即干扰信号#2。因此,干扰信号#1的比例因子(beta)为零。

  • 为了提高互调性能,会有两个干扰信号。

  • 对于C / I性能,将只有一个干扰信号I.。干扰信号#1。因此,用于干扰信号#2的缩放因子(伽马)为零。

%基于缓冲器上转换并存储干扰波形#1%大小,从而可以重用存储的干扰波形%数据包计数超过缓冲区大小。干扰waveform1up = zeros(长度(通缉waveformup),maxinterfectifaceparams);如果任何(strcmp(rxperformancetest,{“C /我”“互调”})))i = 1:maxInterfectifyParams发布(Upconv)Upconv.Centerfrequency = Interferferffreq1Rep(i);干扰WaveForm1up(:,i)= UpConv([干扰WaveForm1;零(8 * SPS,1)]);结束结束%初始化一个变量,以重用干扰波形#1j =快速眼动(1:pktCnt, maxInterferenceParams);j(j == 0) = maxInterferenceParams;%创建一个数字下变频系统对象downconv = dsp.digitaldownconverter(......“DecimationFactor”,interportor,......'samplerate',fs * interpfortor,......“带宽”2 e6,......'stopbandattenuation',44,......“PassbandRipple”,0.5,......'中心罚款',FC);%创建自动增益控制系统对象AGC = comm.agc('lausendOutputpower',1);%创建热噪声系统对象NF = 12;%噪声系数(dB)thnoise = comm.thermalnoise('noisemethod'“噪声图”......'samplerate',interportor * fs,......'噪音文件',NF);%时间向量生成正弦未调制干扰信号I.。%干扰信号#2。t =(0 :(长度(通缉waveformup)-1))。'/(interpfortor * fs);pktlost = 0;%初始化计数器我= 1:pktCnt%产生干扰波形#2,这是一个正弦%未调制信号。SQRT(2)因素可确保电力正弦波信号归一化。interferenceWaveform2 = sqrt (2) * sin(2 *π* interferenceFreq2Rep(我)* t);%将干扰信号添加到想要的信号rxWaveform = alpha*wantedWaveformUp + betaRep(i)*interferenceWaveform1Up(:,j(i)) + gammaRep(i)*interferenceWaveform2;chanOut = thNoise(复杂的(rxWaveform));给信号添加热噪声DownConvout = DownConv(真实(Chanout));%进行频率下转换AGCOUT = AGC(DownConvout);%应用AGC.[有效载荷,AccessAddr] = BleideAlReceiver(Agcout,“模式”phyMode,......'samplespersymbol',sps,'whitenstatus''off');提取消息信息[crcFail, pdu] = helperBLETestPacketValidate(有效载荷,accessAddr);%验证BLE测试数据包pktlost = pktlost + crcfail;结束%确定每个每= pktLost / pktCnt;

光谱可视化

创建和配置频谱分析仪,并基于接收器性能测试显示最后发送的想要信号和干扰信号的频谱。

%设置频谱查看器SpectrumScope = DSP.SpectRumanalyzer(......'samplerate', interpFactor * Fs,......'spectralaverages'10,......“YLimits”(-160 0),......'标题'“通缉及干扰信号频谱”......“SpectrumUnits”dBm的......“NumInputPorts”2,......'ChannelNames',{'想要的信号'干扰信号的},......“ShowLegend”,真实,......“FrequencySpan”'开始和停止频率'......“StartFrequency”,2400E6,......'停止'2485 e6,......“RBWSource”'财产'......'rbw',1e5,......“PlotAsTwoSidedSpectrum”,假);如果Strcmp(rxperformancetest,“C /我”)SpectrumScope(Alpha * WantedWaveFormup,Betarep(END)*干扰WaveForm1up(:,结束))eleesifStrcmp(rxperformancetest,“阻止”) spectrumScope。StartFrequency = 30 e6;spectrumScope(α* wantedWaveformUp gammaRep(结束)* interferenceWaveform2)其他的spectrumScope。NumInputPorts = 3;spectrumScope。ChannelNames = {'想要的信号''干扰信号#1''干扰信号#2'};spectrumScope(α* wantedWaveformUp betaRep(结束)* interferenceWaveform1Up(:,结束),gammaRep(结束)* interferenceWaveform2)结束

图谱分析仪包含轴和其他对象的UiflowContainer,Uimenu,UIToolbar。具有所需标题和干扰信号的标题光谱的轴包含3个类型的线。这些对象代表了想要的信号,干扰信号#1,干扰信号#2。

参考结果

根据蓝牙RF-PHY测试规范第6.4节中规定的有效载荷长度,此部分为每个PHY传输模式产生每个值的参考值[1].

berTable = [0.1 0.064 0.034 0.017]*0.01;如果(PayloadLength <= 37)Refber = Bertable(1);eleesif(payloadLength <= 63) refBER = berTable(2);eleesif(PayloadLength <= 127)Refber = Bertable(3);其他的refBER = berTable (4);结束AccessAddlen = 4;%访问地址长度以字节为单位CrclengtyBytes = 3;%CRC长度为字节pduheaderlen = 2;%标题长度为字节Refpet = 1-(1-Refber)^((PayloadLength + AccessAddlen + Pduheaderlen + Crclencthytes)* 8);流('对于%d字节的有效负载长度,测量的PER和参考PER分别为%f, %f .\n',payloadlength,per,重奏);
每个有效载荷长度为37个字节的每次测量和参考为0.000000,0.308010。
如果per <= refPER fprintf(“%s性能测试通过。\n”,rxperformancetest);其他的流(“%s性能测试失败。\n”,rxperformancetest);结束
通过互调性能测试。

附录

此示例使用以下辅助功能:

选定的参考书目

  1. 蓝牙RF-PHY测试规范。

  2. 蓝牙核心规范的第6卷,版本5.0核心系统封装[低能量控制器音量]。

相关主题