主要内容

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

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

背景

蓝牙RF-PHY测试规范[1]定义的蓝牙特别兴趣组(SIG)包括RF-PHY测试发射机和接收机。这些RF-PHY测试的目标是确保所有BLE设备之间的互操作性,并验证所有BLE产品的基本系统性能得到保证。下载188bet金宝搏每个测试用例都有一个指定的测试过程和一个预期的结果,这些结果必须由测试下的实现(IUT)来满足。

介绍

蓝牙接收器测试的设计目的是确保IUT能够在传输信号具有高功率的范围内接收数据,并在具有定义的包错误率(PER)的带内和带外干扰的情况下接收数据。这个例子包括三个BLE RF-PHY接收器测试的分组,互调和C/I性能,根据蓝牙RF-PHY测试规范[1].

  • 屏蔽性能:阻塞性能测试验证接收机在有频带外干扰信号(即在2400mhz - 2483.5 MHz频带外工作)时的性能。

  • 互调性能:互调性能测试是为了验证在频率附近存在不需要的信号时接收机的性能。

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

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

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

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

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

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

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

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

  6. 在接收端,向下转换信号,然后解调、解码并执行CRC校验。

  7. 测量基于CRC校验的PER值,并与参考PER值进行比较。

检查支持包安装情况金宝app

%检查“蓝牙协议的通信工具箱库”%支金宝app持包是否安装。comm金宝appSupportPackageCheck (“蓝牙”);

初始化仿真参数

你可以改变rxPerformanceTestphyMode足球俱乐部参数根据接收机性能测试,PHY传输方式和工作频率分别。

rxPerformanceTest =“互调”%从集合{'C/I', 'Blocking', 'Intermodulation'}中选择一个%根据蓝牙RF-PHY测试规范选择PHY传输模式phyMode =“LE1M”% {LE1M, LE2M, LE500K, LE125K}表示C/I% {LE1M, LE2M}用于闭塞和互调%根据性能测试,选择IUT的操作频率%通用访问配置文件(GAP)角色,如下表所示。% --------------------------------------------------------------------------------%操作|外围和中央设备|广播和观察者设备|%频率| | |%(MHz)| ----------------------------- | --------------------------------- |% | C/I |阻断|互调| C/I |阻断|互调|% ----------|------|----------|---------------|------|----------|----------------|%最低|2406 |-  |2402 |2402 |-  |2402 |%中| 2440 | 2426 | 2440 | 2426 | 2426 | 2426 |%最高|2476 |-  |2480 |2480 |-  |2480 |% --------------------------------------------------------------------------------Fc = 2426 e6;%操作频率,单位为HzpayloadLength =37%有效载荷长度以字节为单位,必须在范围内[37,255]sps = 40;%每个符号的样本数%基于PHY传输模式,以Hz计算采样率Rsym = 1 e6;如果比较字符串(phyMode“LE2M”) Rsym = 2e6;结束Fs = Rsym * sps;

生成基带波形

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

%生成所需的信号,该信号总是带有PRBS9的调制载波%的有效载荷payloadTypeWanted = 0;% PRBS9序列的有效负载类型wantedWaveform = helperBLETestWaveform (phyMode payloadTypeWanted payloadLength, sps);%产生干扰信号#1,该信号是带有a的调制载波% PRBS15载荷payloadtypeinterference = 3;% PRBS15序列的有效负载类型interferenceWaveform1 = helperBLETestWaveform (phyMode payloadTypeInterference payloadLength, sps);

频率上转换

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

%上转换覆盖BLE射频频段的插值因子% (2400e6至2485e6)interpFactor =装天花板(2 * 2485 e6 / Fs);创建一个数字上变频器系统对象upConv = dsp。DigitalUpConverter (...“InterpolationFactor”interpFactor,...“SampleRate”Fs,...“带宽”2 e6,...“StopbandAttenuation”44岁的...“PassbandRipple”, 0.5,...“CenterFrequency”、Fc);将基带波形上转换为通带wantedWaveformUp = upConv ([wantedWaveform; 0 (8 * sps, 1)]);

生成测试参数

测试参数根据性能测试、操作频率和PHY传输方式生成。这个函数,helperBLETestParamGenerate.m,用于产生所有干扰频率和相应的比例因子(alpha、beta、gamma),用于选定的接收机性能测试。

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

根据模拟使用的数据包数量重复测试参数。

pktCnt = 10;%包数maxInterferenceParams = min(长度(interferenceFreq1), pktCnt);%用于仿真的最大干扰参数数重复所有的干扰参数,以便PER可以被平均%所选接收机的整个干扰频率范围% 性能测试。repFact =装天花板(pktCnt / maxInterferenceParams);%重复的因素betaRep = repmat(βrepFact 1);gammaRep = repmat(γrepFact 1);interferenceFreq1Rep = repmat (interferenceFreq1 repFact 1);interferenceFreq2Rep = repmat (interferenceFreq2 repFact 1);

测试模拟

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

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

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

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

%基于缓冲器上转换并存储干扰波形#1%大小,以便存储的干扰波形可以重复使用%包计数超过缓冲区大小。interferenceWaveform1Up = 0(长度(wantedWaveformUp), maxInterferenceParams);如果任何(strcmp (rxPerformanceTest, {“C /我”“互调”}))i = 1: maxInterferenceParams释放upConv (upConv)。CenterFrequency = interferenceFreq1Rep(我);interferenceWaveform1Up(:,我)= upConv ([interferenceWaveform1; 0 (8 * sps, 1)]);结束结束%初始化一个变量,以重用干扰波形#1j =快速眼动(1:pktCnt, maxInterferenceParams);j(j == 0) = maxInterferenceParams;%创建一个数字下变频系统对象downConv = dsp。DigitalDownConverter (...“DecimationFactor”interpFactor,...“SampleRate”Fs * interpFactor,...“带宽”2 e6,...“StopbandAttenuation”44岁的...“PassbandRipple”, 0.5,...“CenterFrequency”、Fc);%创建自动增益控制系统对象agc = comm.AGC (“DesiredOutputPower”1);创建一个热噪声系统对象NF = 12;%噪声系数(dB)thNoise = comm.ThermalNoise (“NoiseMethod”“噪声图”...“SampleRate”, interpFactor * Fs,...“NoiseFigure”、NF);%时间矢量产生正弦未调制干扰信号,即。%干扰信号#2。t =(0:(长度(wantedWaveformUp) 1))。/ (interpFactor * Fs);pktLost = 0;%初始化计数器我= 1:pktCnt%产生干扰波形#2,这是一个正弦%未调制的信号。根号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);%应用自动增益控制(有效载荷,accessAddr) = bleIdealReceiver (agcOut,“模式”phyMode,...“SamplesPerSymbol”sps,“WhitenStatus”“关闭”);提取消息信息[crcFail, pdu] = helperBLETestPacketValidate(有效载荷,accessAddr);%验证BLE测试包pktLost = pktLost + crcFail;结束确定PER值每= pktLost / pktCnt;

光谱可视化

创建并配置一个频谱分析仪,并根据接收机性能测试显示最后发送的需要信号和干扰信号的频谱。

%设置频谱查看器spectrumScope = dsp。简介(...“SampleRate”, interpFactor * Fs,...“SpectralAverages”10...“YLimits”(-160 0),...“标题”“通缉及干扰信号频谱”...“SpectrumUnits”dBm的...“NumInputPorts”2,...“ChannelNames”, {“想要的信号”干扰信号的},...“ShowLegend”,真的,...“FrequencySpan”“启动和停止频率”...“StartFrequency”2400 e6,...“StopFrequency”2485 e6,...“RBWSource”“属性”...“RBW”1 e5,...“PlotAsTwoSidedSpectrum”、假);如果比较字符串(rxPerformanceTest“C /我”) spectrumScope(α* wantedWaveformUp betaRep(结束)* interferenceWaveform1Up(:,结束)elseif比较字符串(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传输模式的参考PER值[1].

berTable = [0.1 0.064 0.034 0.017]*0.01;如果(payloadLength <= 37) refBER = berTable(1);elseif(payloadLength <= 63) refBER = berTable(2);elseif(payloadLength <= 127) refBER = berTable(3);其他的refBER = berTable (4);结束accessAddLen = 4;%访问地址的字节长度crcLengthBytes = 3;% CRC长度,以字节为单位pduHeaderLen = 2;%报头长度,以字节为单位refPER = 1 - (1-refBER) ^ ((payloadLength + accessAddLen + pduHeaderLen + crcLengthBytes) * 8);流('对于%d字节的有效负载长度,测量的PER和参考PER分别为%f, %f .\n',每payloadLength refPER);
37字节有效载荷长度的测量PER和参考PER分别为0.000000、0.308010。
如果per <= refPER fprintf(“%s性能测试通过。\n”, rxPerformanceTest);其他的流(“%s性能测试失败。\n”, rxPerformanceTest);结束
通过互调性能测试。

附录

这个例子使用了以下帮助函数:

选定的参考书目

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

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

相关的话题