主要内容

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 / I性能:C / I性能测试在相邻和共同通道干扰信号的存在下验证接收器性能。

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

以下框图总结了示例流程。

  1. 生成测试报文并通过BLEWaveFormGenerator以生成BLE测试波形。

  2. 执行频率上变频以获得通带信号。

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

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

  5. 基于接收器噪声底板添加白色高斯噪声。

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

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

检查支持包安装万博1manbetx

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

初始化模拟参数

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

rxperformancetest ='intermodulation';%从集合中选择一个{'c / i','阻止','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.;%有效载荷长度以字节为单位,必须在范围内[37,255]SPS = 40;每个符号的样本数量基于PHY传输模式,%计算Hz中的采样率rsym = 1e6;如果Strcmp(Phymode,'le2m')rsym = 2e6;结尾fs = rsym * sps;

生成基带波形

功能,Helperbletestwaveform.m.,可以配置为根据蓝牙规范生成BLE测试分组波形[2]。在该示例中,可以通过更改有效载荷类型参数来生成所需的和干扰基带波形。

%生成有用信号,该信号始终是具有PRBS9的调制载波%有效载荷有效载荷= 0;PRBS9序列的%有效载荷类型WaveWaveForm = HelperBletestWaveForm(有效载荷,PayloadLength,SPS,Phymode);%生成干扰信号#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,......'采样率',fs,......'带宽',2e6,......'stopbandattenuation',44,......'passbandropple',0.5,......'中心罚款',FC);%将基带波形上转换为通带WantedWaveFormup = UpConv([通缉WaveForm;零(8 * SPS,1)]);

生成测试参数

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

α,β,伽玛,干扰Freq1,Interferferffreq2] =......HelperBletestParamgege(rxperformancageSt,Fc,Phymode);

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

pktcnt = 10;%数据包数量maxInterfectifaceparams = min(长度(干扰右仪1),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性能测试都如下模拟:

  • 为了阻止性能,将只有一个干扰信号I.。干扰信号#2。因此,用于干扰信号#1的缩放因子(Beta)为零。

  • 对于互调性能,将有两个干扰信号。

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

%上转换并基于缓冲区存储干扰波形#1%大小,从而可以重用存储的干扰波形%数据包计数超过缓冲区大小。干扰waveform1up = zeros(长度(通缉waveformup),maxinterfectifaceparams);如果任何(strcmp(rxperformancetest,{'c / i''intermodulation'})))为了i = 1:maxInterfectifyParams发布(Upconv)Upconv.Centerfrequency = Interferferffreq1Rep(i);干扰WaveForm1up(:,i)= UpConv([干扰WaveForm1;零(8 * SPS,1)]);结尾结尾%初始化可重用干扰波形#1的变量j = rem(1:pktcnt,maxInterfectifaceparams);j(j == 0)= maxInterfectifyParams;%创建数字下变频器系统对象downconv = dsp.digitaldownconverter(......'decimationfactor',interportor,......'采样率',fs * interpfortor,......'带宽',2e6,......'stopbandattenuation',44,......'passbandropple',0.5,......'中心罚款',FC);%创建自动增益控制系统对象AGC = comm.agc('lausendOutputpower',1);%创建热噪声系统对象nf = 12;%噪声图(DB)thnoise = comm.thermalnoise('noisemethod''噪音'......'采样率',interportor * fs,......'噪音文件',NF);%时间向量生成正弦未调制干扰信号I.。%干扰信号#2。t =(0 :(长度(通缉waveformup)-1))。'/(interpfortor * fs);pktlost = 0;%初始化计数器为了我= 1:pktcnt%生成干扰波形#2,它是正弦波的%未调制信号。SQRT(2)因素可确保电力%正弦信号标准化。干扰WaveForm2 = SQRT(2)* SIN(2 * PI * INTERFIFEFREQ2REP(i)* T);%将干扰信号添加到想要的信号rxwaveform = alpha * wantedwaveformup + betarep(i)*干扰waveform1up(:,j(i))+ gammarep(i)*干扰waveform2;chanout = thnoise(复杂(rxwaveform));%增加了信号的热噪声DownConvout = DownConv(真实(Chanout));%执行频率下转换AGCOUT = AGC(DownConvout);%应用AGC.[有效载荷,AccessAddr] = BleideAlReceiver(Agcout,'模式',phymode,......'samplespersymbol',sps,'whitenstatus''离开');%提取消息信息[CRCFAIL,PDU] = HelperBletestPacketValidate(有效载荷,AccessAddr);%验证BLE测试数据包pktlost = pktlost + crcfail;结尾%确定每个per = pktlost / pktcnt;

光谱可视化

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

%设置频谱查看器SpectrumScope = DSP.SpectRumanalyzer(......'采样率',interportor * fs,......'spectralaverages'10,......'ylimits',[-160 0],......'标题''想要和干扰信号的频谱'......'spectrumunits''dbm'......'numinputports'2,......'ChannelNames',{'想要的信号''干扰信号'},......'陈旧', 真的,......'rusiancyspan''开始和停止频率'......'Startfice',2400E6,......'停止',2485e6,......'rbwsource''财产'......'rbw',1e5,......'plotastwosidedspectrum',错误的);如果Strcmp(rxperformancetest,'c / i')SpectrumScope(Alpha * WantedWaveFormup,Betarep(END)*干扰WaveForm1up(:,结束))eleesifStrcmp(rxperformancetest,'阻止')spectrumscope.startfrequency = 30e6;SpectrumSpope(Alpha * WantedWaveFormup,Gammarep(END)*干扰WaveForm2)别的SpectrumScope.numinputports = 3;spectrumscope.channelnames = {'想要的信号''干扰信号#1''干扰信号#2'};SpectrumScope(Alpha * WantorWaveFormup,Betarep(END)*干扰WaveForm1up(:,结束),伽马河(结束)*干扰WaveForm2)结尾

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

参考结果

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

BERTABLE = [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 =兼容(4);结尾AccessAddlen = 4;%访问地址长度以字节为单位CrclengtyBytes = 3;%CRC长度为字节pduheaderlen = 2;%标题长度为字节Refpet = 1-(1-Refber)^((PayloadLength + AccessAddlen + Pduheaderlen + Crclencthytes)* 8);fprintf(“每次有效载荷长度为%d字节的每个和参考,分别为%f,%f。\ n',payloadlength,per,重奏);
每个有效载荷长度为37个字节的每次测量和参考为0.000000,0.308010。
如果per <= RECPT FPRINTF('%s性能测试通过。\ n',rxperformancetest);别的fprintf('%s性能测试失败。\ n',rxperformancetest);结尾
互调性能测试通过。

附录

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

选定的书目

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

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

相关话题