主要内容

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

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

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

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

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

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

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

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

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

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

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

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

初始化仿真参数

你可以改变rxPerformanceTestphyModeFC.参数根据接收机性能测试,PHY传输方式和工作频率分别。

rxperformancetest ='intermodulation';%从集合中选择一个{'c / i','阻止','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序列的有效负载类型WaveWaveForm = HelperBletestWaveForm(有效载荷,PayloadLength,SPS,Phymode);%产生干扰信号#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,...'带宽',2e6,...“StopbandAttenuation”44岁的...'passbandropple', 0.5,...“CenterFrequency”、Fc);将基带波形上转换为通带wantedWaveformUp = upConv ([wantedWaveform; 0 (8 * sps, 1)]);

生成测试参数

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

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

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

pktCnt = 10;%包数maxInterfectifaceparams = min(长度(干扰右仪1),pktcnt);用于仿真的%最大干扰参数数重复所有的干扰参数,以便PER可以被平均%所选接收机的整个干扰频率范围% 性能测试。repFact =装天花板(pktCnt / maxInterferenceParams);%重复的因素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性能,只有一个干扰信号,即干扰信号#1。因此,干扰信号#2的比例因子(gamma)为零。

%上转换并基于缓冲区存储干扰波形#1%大小,以便存储的干扰波形可以重复使用%包计数超过缓冲区大小。interferenceWaveform1Up = 0(长度(wantedWaveformUp), maxInterferenceParams);如果任何(strcmp (rxPerformanceTest, {'c / i''intermodulation'}))为了i = 1: maxInterferenceParams释放upConv (upConv)。CenterFrequency = interferenceFreq1Rep(我);interferenceWaveform1Up(:,我)= upConv ([interferenceWaveform1; 0 (8 * sps, 1)]);结尾结尾%初始化可重用干扰波形#1的变量j = rem(1:pktcnt,maxInterfectifaceparams);j(j == 0)= maxInterfectifyParams;%创建数字下变频器系统对象downConv = dsp。DigitalDownConverter (...'decimationfactor'interpFactor,...“SampleRate”Fs * interpFactor,...'带宽',2e6,...“StopbandAttenuation”44岁的...'passbandropple', 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保证了。的幂%正弦信号标准化。干扰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);%应用自动增益控制(有效载荷,accessAddr) = bleIdealReceiver (agcOut,'模式',phymode,...“SamplesPerSymbol”sps,“WhitenStatus”“关闭”);%提取消息信息[CRCFAIL,PDU] = HelperBletestPacketValidate(有效载荷,AccessAddr);%验证BLE测试包pktLost = pktLost + crcFail;结尾确定PER值per = pktlost / pktcnt;

光谱可视化

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

%设置频谱查看器spectrumScope = dsp。简介(...“SampleRate”,interportor * fs,...“SpectralAverages”10...'ylimits',[-160 0],...“标题”'想要和干扰信号的频谱'...'spectrumunits''dbm'...'numinputports'2,...“ChannelNames”, {“想要的信号”'干扰信号'},...'陈旧',真的,...'rusiancyspan'“启动和停止频率”...'Startfice'2400 e6,...“StopFrequency”,2485e6,...'rbwsource'“属性”...“RBW”1 e5,...“PlotAsTwoSidedSpectrum”、假);如果比较字符串(rxPerformanceTest'c / i') spectrumScope(α* wantedWaveformUp betaRep(结束)* interferenceWaveform1Up(:,结束)elseif比较字符串(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传输模式的参考PER值[1]。

BERTABLE = [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 =兼容(4);结尾accessAddLen = 4;%访问地址的字节长度crcLengthBytes = 3;% CRC长度,以字节为单位pduHeaderLen = 2;%报头长度,以字节为单位refPER = 1 - (1-refBER) ^ ((payloadLength + accessAddLen + pduHeaderLen + crcLengthBytes) * 8);fprintf(“每次有效载荷长度为%d字节的每个和参考,分别为%f,%f。\ n',每payloadLength refPER);
37字节有效载荷长度的测量PER和参考PER分别为0.000000、0.308010。
如果per <= RECPT FPRINTF('%s性能测试通过。\ n', rxPerformanceTest);别的fprintf('%s性能测试失败。\ n', rxPerformanceTest);结尾
互调性能测试通过。

附录

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

选定的书目

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

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

相关的话题