主要内容

802.15.4(ZigBee®)系统的EVM测量

此示例显示了如何使用comm.EVM系统对象™测量模拟IEEE®802.15.4的误差矢量大小(EVM) [1发射机。IEEE 802.15.4是ZigBee规范的基础。

误差矢量幅度(EVM)

误差矢量幅值(EVM)是基准波形(即无误差调制信号)与实际传输波形之间的差值的量度。EVM用于量化发射机的调制精度。[1]要求802.15.4发射器不得具有比35%更差的RMS EVM值。

系统参数

868 MHz频段的802.15.4系统采用直接序列扩频(DSS),其中用于用于数据符号编码的芯片调制和差分编码的二进制相移键控(BPSK)。

Datarate = 20e3;%比特率,单位为Hzm = 2;调制顺序(BPSK)ChipValues = [1; 1; 1; 1; 0; 1; 0; 1; 1; 0; 0; 1; 0; 0; 0];位0的%芯片值。%芯片值1是相反的。

[的第6.7.3条1]规定了在1000多个I和Q基带输出样本中执行测量。为了考虑到滤波器延迟,我们在传输符号的模拟中增加了1位。我们选择将发射信号过采样4倍。我们假设信噪比为60分贝,以考虑发射机和测试硬件的缺陷。

numSymbols = 1000;一个EVM值所需的符号数量numframes = 100;%帧数nSamps = 4;%表示一个符号的样本个数filtSpan = 8;%过滤器跨度在符号中增益长度= (chipValues);%展开增益(每个符号的芯片数量)chipRate =获得* dataRate;%芯片率sampleRate = nSamps * chipRate;最终抽样率numBits =装天花板((numSymbols) /增益)+ 1;一个EVM值所需的百分比数信噪比= 60;DB中的模拟信噪比%

初始化

我们可以使用0到+1和1至-1的简单映射获取BPSK调制符号。如果我们还映射芯片值,那么我们可以在位对转换之前调制,并使用矩阵数学来编写高效的Matlab®代码。ZigBee规范还将脉冲整形过滤器定义为具有带升降倍压因子的升高余弦脉冲形状。

映射芯片值chipValues = 1 - 2*chipValues;%设计带升降系数1的凸起的余弦滤波器rctfilt = comm.raisedcosinetransmitfilter(“RolloffFactor”,1...“OutputSamplesPerSymbol”nSamps,...'filterspaninsymbols', filtSpan);rcrFilt = comm.RaisedCosineReceiveFilter (“RolloffFactor”,1...“InputSamplesPerSymbol”nSamps,...'filterspaninsymbols'filtSpan,...“DecimationFactor”,nsamps);

维生素与测量

Communications Toolbox™提供comm.EVM来计算RMS EVM、Maximum EVM和Xth百分位EVM值。[的第6.7.3条1]定义了EVM计算方法,其中测量的I和Q样本的平均误差按符号的幂归一化。对于BPSK系统,两个星座符号的力量是相同的。因此,我们可以使用“星座功率峰值”的归一化选项。其他可以与其他通信系统标准一起使用的归一化选项是平均星座功率和平均参考信号功率。

维生素与= comm.EVM ('正常化'“星座功率峰值”
evm = comm.EVM具有以下属性:归一化:“峰值星座功率”PeakConstellationPower: 1 ReferenceSignalSource:“输入端口”MeasurementIntervalSource:“输入长度”AveragingDimensions: 1 maximummevmoutputport: false XPercentileEVMOutputPort: false

模拟

我们首先生成随机数据位,用comm.differentialencoder.系统对象,并使用BPSK调制。我们通过使用映射芯片值的矩阵乘法来扩展调制符号。然后通过脉冲整形滤波器通过扩展符号。EVM对象假定接收的符号,RD和参考符号C,同步,并以相同的速率进行采样。我们将接收信号r缩小并与参考信号同步C。

1]要求在一个RMS EVM计算中使用1000个符号。为了确保我们有足够的平均值,我们模拟了100帧1000个符号,并使用这100个RMS EVM测量值的最大值作为测量结果。我们看到,模拟发射机满足中提到的标准误差矢量幅度部分上面。

% Tx和Rx滤波器延迟是相同的,等于滤波器跨度的一半。%总延迟等于两个过滤器延迟的总和,这是过滤器一个过滤器的% span。Refsigdelay = rctfilt.filterspaninsymbols;%一帧中模拟的符号数simnumsymbols = numbits *增益;%初始化峰值RMS EVMpeakRMSEVM =无穷;%创建comm.DifferentialEncoder对象来对数据进行差异编码diffenc = comm.DifferentialEncoder;%创建comm.awgnchannel系统对象并设置其Noisemethod属性%与“信噪比”陈= comm.AWGNChannel (“NoiseMethod”'信噪比(SNR)'...“信噪比”,SNR);%循环爆发p = 1:numframes%生成随机数据b = randi([0 M-1], numBits, 1);%不同编码d = diffenc(b);%调制x = 1 - 2 * d;%将符号转换为芯片(传播)c =重塑(chipValues*x', simNumSymbols, 1);%脉冲形状杯= rctfilt(c);%计算并设置通道对象的“signalPower”属性Chan.SignalPower = Sum(杯。^ 2)/长度(杯子);%添加噪声r = chan(杯);%倒下的信号。帐户有关过滤器延迟。RD = Rcrfilt(R);使用EVM系统对象的%测量RMSEVM = EVM(复杂(RD(Refsigdelay +(1:NumSymbols))),...复杂的(c (1: numSymbols)));更新峰值RMS计算如果(peakrmsevm 结束结束%显示结果流(最坏情况RMS EVM (%%): %1.2f\n',peakrmsevm)
最坏情况RMS EVM(%):0.19

注释

我们展示了如何利用Comm.evm测试ZigBee发送器是否符合标准指定的EVM值。我们使用了一个粗略的模型,只会引入添加剂白色高斯噪音,并显示测量的EVM小于指定35%的标准。

选定的书目

  1. IEEE标准802.15.4,低速率无线局域网的无线介质访问控制(MAC)和物理层(PHY)规范,2003。