主要内容

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

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

背景

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

简介

蓝牙接收器测试的目的是确保IUT能够在一系列条件下接收数据,其中传输的信号具有高功率,并且存在定义的数据包错误率(PER)的带内和带外干扰。这个例子包括三个BLE RF-PHY接收器测试,根据蓝牙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,然后与参考PER进行比较。

检查支持包是否安装金宝app

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

初始化仿真参数

你可以改变rxPerformanceTestphyMode而且足球俱乐部参数基于接收机性能测试,PHY的传输模式和操作频率分别。

rxPerformanceTest =“互调”从集合中选择一个{'C/I', '阻塞','互调'}%根据蓝牙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 |% Highest | 2476 | - | 2480 | 2480 | - | 2480 |% --------------------------------------------------------------------------------Fc = 2426e6;%操作频率,单位为HzpayloadLength =37%有效负载长度(以字节为单位),必须在[37,255]范围内SPS = 40;%每个符号的样本数目%根据PHY传输方式计算采样率,单位为HzRsym = 1e6;如果比较字符串(phyMode“LE2M”) Rsym = 2e6;结束Fs = Rsym*sps;

生成基带波形

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

产生一个需要的信号,它总是一个调制载波与PRBS9%的有效载荷payloadTypeWanted = 0;% PRBS9序列的有效载荷类型wanted波形= helperbletest波形(payloadTypeWanted,payloadLength,sps,phyMode);产生干扰信号#1,这是一个调制载波与a% PRBS15有效载荷payloadTypeInterference = 3;% PRBS15序列的有效载荷类型interferenceWaveform1 = helperbletest波形(payloadTypeInterference,payloadLength,sps,phyMode);

频率上转换

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

%内插系数用于上转换以覆盖BLE射频频段% (2400e6至2485e6)interpFactor = ceil(2*2485e6/Fs);创建数字上转换器系统对象upConv = dsp。DigitalUpConverter (...“InterpolationFactor”interpFactor,...“SampleRate”Fs,...“带宽”2 e6,...“StopbandAttenuation”44岁的...“PassbandRipple”, 0.5,...“CenterFrequency”、Fc);将基带波形上转换为通带wantedWaveformUp = upConv([wanted波形;零(8*sps,1)]);

生成测试参数

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

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

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

pktCnt = 10;%包数maxInterferenceParams = min(length(interferenceFreq1),pktCnt);用于模拟的最大干扰参数数目重复所有干扰参数,使PER可以平均选定接收机的整个干扰频率范围%性能测试。repFact = ceil(pktCnt/maxInterferenceParams);%重复因子betaRep = repmat(beta,repFact,1);gammaRep = repmat(gamma,repFact,1);干涉efreq1rep = repmat(干涉efreq1,repFact,1);interferenceFreq2Rep = repmat(interferenceFreq2,repFact,1);

测试模拟

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

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

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

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

根据缓冲区上转换并存储干扰波形#1%大小,这样存储的干涉波形可以重复使用数据包计数超过缓冲区大小。干涉波形1up = 0(长度(wantedWaveformUp),maxInterferenceParams);如果任何(strcmp (rxPerformanceTest, {“C /我”“互调”}))i=1:maxInterferenceParams release(upConv) upConv。CenterFrequency = interferenceFreq1Rep(i);interferenceWaveform1Up(:,i) = upConv([interferenceWaveform1; 0 (8*sps,1)]);结束结束初始化一个变量以重用干扰波形#1j = rem(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 = com . agc“DesiredOutputPower”1);创建一个热噪声系统对象Nf = 12;%噪音系数(dB)thNoise = com . thermalnoise (“NoiseMethod”“噪声图”...“SampleRate”, interpFactor * Fs,...“NoiseFigure”、NF);产生正弦非调制干扰信号的时间矢量,即。%干扰信号#2。t = (0:(length(wantedWaveformUp)-1)).'/(interpFactor*Fs);pktLost = 0;初始化计数器我= 1:pktCnt生成一个干扰波形#2,这是一个正弦%未调制信号。根号(2)因子确保%正弦信号归一化。interferenceWaveform2 =√(2*pi*interferenceFreq2Rep(i)*t);将干扰信号加到通缉信号中rx波形= alpha*wantedWaveformUp + betaRep(i)*interferenceWaveform1Up(:,j(i)) + gamma arep (i)*interferenceWaveform2;chanOut = thNoise(复杂(rx波形));为信号添加热噪声downConvOut = downConv(real(chanOut));%执行频率下变频agcOut = agc(downConvOut);%应用AGC[payload,accessAddr] = bleIdealReceiver(agcOut,“模式”phyMode,...“SamplesPerSymbol”sps,“WhitenStatus”“关闭”);提取消息信息[crcFail,pdu] = helperBLETestPacketValidate(payload,accessAddr);验证BLE测试包pktLost = pktLost + crcFail;结束确定PERper = 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 = 30e6;spectrumScope(α* wantedWaveformUp gammaRep(结束)* interferenceWaveform2)其他的spectrumScope。NumInputPorts = 3;spectrumScope。ChannelNames = {“想要的信号”“干扰信号#1”干扰信号2号};spectrumScope(α* wantedWaveformUp betaRep(结束)* interferenceWaveform1Up(:,结束),gammaRep(结束)* interferenceWaveform2)结束

图频谱分析仪包含一个axis对象和其他类型为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为0.000000,参考PER为0.308010。
如果/ <= refPER fprintf('%s性能测试通过。\n', rxPerformanceTest);其他的流('%s性能测试失败。\n', rxPerformanceTest);结束
互调性能测试通过。

附录

本例使用了以下helper函数:

选定的参考书目

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

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

相关的话题