主要内容

端到端IEEE 802.15.4物理层仿真

此示例显示了如何为IEEE®802.15.4的不同PHY规范生成波形、解码波形和计算BER曲线™ 标准[1.],使用通讯工具箱™ ZigBee和UWB图书馆。

出身背景

这个IEEE 802.15.4标准规定了物理层雨衣低速无线个人区域网的层次结构(区域网络) [1.]。IEEE 802.15.4物理层和MAC层提供了其他更高层标准的基础,例如齐格比、WirelessHart®、6LoWPAN和MiWi。这些标准适用于家庭自动化和传感器网络,与物联网(IoT)趋势高度相关。

IEEE 802.15.4的物理层实现

最初的IEEE 802.15.4标准及其修订版规定了多个PHY层,这些PHY层使用不同的调制方案并支持不同的数据速率。这些物理层是为特定频带设计的,在一定程度上是为特定国家设计的。本示例提供了生成和解码PHY波形的功能原始IEEE 802.15.4规范(万博1manbetxOQPSK为2.4 GHz,BPSK为868/915 MHz)、IEEE 802.15.4b(OQPSK和ASK为868/915 MHz)、IEEE 802.15.4c(OQPSK为780 MHz)和IEEE 802.15.4d(GFSK和BPSK为950 MHz)中提出的标准层。

这些物理层指定PHY协议数据单元(PPDU)的格式,其中包括前导码、帧起始定界符(SFD)以及MAC协议数据单元(MPDU)的长度和内容.前导码和SFD用于帧级同步。在以下描述中,术语符号表示芯片序列的整数索引(根据IEEE 802.15.4标准),而不是调制符号(即复数)。

  • OQPSK物理:所有OQPSK PHY将每4个PPDU位映射到一个符号。2.4 GHz OQPSK PHY将每个符号扩展到32个码片序列,而其他OQPSK PHY将其扩展到16个码片序列。然后,对码片序列进行OQPSK调制,并将其传递到半正弦脉冲成形滤波器(或780 MHz频段的正常升余弦滤波器).有关详细说明,请参见中的第10条[1.].

  • BPSK物理层:BPSK PHY对PPDU位进行差分编码。每个产生的位被扩展为15个码片序列。然后,对码片序列进行BPSK调制,并传递给普通升余弦滤波器。有关详细说明,请参阅中的第11条[1.].

  • 问菲:ASK PHY仅对前导码和SFD使用BPSK调制。剩余的PPDU位,即PHY头(PHR)和MPDU,首先映射到868 MHz频段的20位符号和915 MHz频段的5位符号。每个符号使用称为并行序列扩频(PSSS)的技术扩展到32码片序列或正交码分复用(OCDM)。然后对芯片序列进行ASK调制,并将其传递给根升余弦滤波器。有关详细说明,请参阅中的第12条[1.].

  • GFSK物理层:GFSK PHY首先使用带PN9序列的模2加法对PPDU位进行白化。然后对白化位进行GFSK调制。有关详细说明,请参阅中的第15条[1.].

波形生成、解码及误码率曲线计算

该代码说明了如何使用不同频带的波形生成和解码功能,并比较了相应的误码率曲线。

EcNo=-25:2.5:17.5;%误码率曲线的Ec/No范围spc=4;%每个芯片的样本数msgLen=8*120;%以位为单位的长度message=randi([0 1],msgLen,1);%传输消息%预分配向量以存储误码率结果:[berOQPSK2450、berOQPSK780、berBPSK、berASK915、,...berASK868,berGFSK]=交易(零(1,长度(EcNo));对于idx=1:长度(EcNo)%在EcNo范围内循环%O-QPSK物理层,2450 MHz波形=lrwpan.PHYGeneratorOQPSK(消息,spc,“2450兆赫”); K=2;%每个符号的信息位信噪比=EcNo(idx)-10*log10(spc)+10*log10(K);接收=awgn(波形,信噪比);bits=lrwpan.PHYDECODROQPSKNOSYNC(已接收,spc,“2450兆赫”);[~,berOQPSK2450(idx)]=位错误(消息,位);%O-QPSK物理层,780MHz波形=lrwpan.PHYGeneratorOQPSK(消息,spc,“780兆赫”);%或“868兆赫”/“915兆赫”信噪比=EcNo(idx)-10*log10(spc)+10*log10(K);接收=awgn(波形,信噪比);bits=lrwpan.PHYDECODROQPSKNOSYNC(已接收,spc,“780兆赫”);%或“868兆赫”/“915兆赫”[~,berOQPSK780(idx)]=位错误(消息,位);%BPSK物理层,868/915/950 MHz波形=lrwpan.PHYGeneratorBPSK(消息,spc);K=1;%每个符号的信息位信噪比=EcNo(idx)-10*log10(spc)+10*log10(K);接收=awgn(波形,信噪比);比特=lrwpan.PHYDecoderBPSK(接收,spc);[~,berBPSK(idx)]=biterr(消息,比特);%询问物理层,915兆赫波形=lrwpan.PHYGENATORASK(消息,spc,“915兆赫”)K=1;%每个符号的信息位信噪比=EcNo(idx)-10*log10(spc)+10*log10(K);接收=awgn(波形,信噪比);比特=lrwpan.phydecodrask(接收,spc,“915兆赫”);[~,berASK915(idx)]=biterr(消息,位(1:msgLen));%询问PHY,868 MHz波形=lrwpan.PHYGENATORASK(消息,spc,“868兆赫”)K=1;%每个符号的信息位信噪比=EcNo(idx)-10*log10(spc)+10*log10(K);接收=awgn(波形,信噪比);比特=lrwpan.phydecodrask(接收,spc,“868兆赫”);[~,berASK868(idx)]=biterr(消息,位(1:msgLen));%GFSK物理层,950兆赫波形=lrwpan.PHYGeneratorGFSK(消息,spc);K=1;%每个符号的信息位SNR=EcNo(idx)-10*log10(spc)+10*log10(K);接收=awgn(波形,SNR);比特=lrwpan.PHYDecoderGFSK(接收,spc);[~,berGFSK(idx)]=比特错误(消息,比特);终止%绘制误码率曲线数字符号学(EcNo,berOQPSK2450,“-o”,EcNo,berOQPSK780,'-*',EcNo,berBPSK,'-+',...EcNo,berASK915,“-x”,EcNo,berASK868,“-s”,埃克诺,伯格夫斯克,“-v”)传奇(“OQPSK,2450 MHz”,“OQPSK,780 MHz”,“BPSK,868/915/950 MHz”,'询问,915兆赫',...'询问,868兆赫',“GFSK,950 MHz”,“位置”,“西南”)头衔(“IEEE 802.15.4物理层误码率曲线”)xlabel(‘芯片能量噪声谱密度,Ec/No(dB)’)伊拉贝尔(“伯尔”)轴([最小(EcNo)最大(EcNo)10^-2 1])网格在…上

进一步探索

您可以进一步了解以下生成器和解码功能:

精选书目

  1. IEEE 802.15.4-2011-局域网和城域网IEEE标准-第15.4部分:低速无线个人区域网(LR WPAN)