主要内容

端到端IEEE 802.15.4 PHY仿真

这个例子展示了如何生成波形,解码波形和计算IEEE®802.15.4™标准的不同PHY规范的误码率曲线[1],使用ZigBee和UWB的通信工具箱™库。

背景

IEEE 802.15.4标准指定体育而且MAC多层低速率无线个人区域网络(LR-WPANs) [1].IEEE 802.15.4 PHY层和MAC层提供了其他更高层标准的基础,例如无线个域网, WirelessHart®,6LoWPAN和MiWi。这些标准应用于家庭自动化和传感器网络,并与物联网(IoT)趋势高度相关。

IEEE 802.15.4的物理层实现

最初的IEEE 802.15.4标准及其修订规定了多个PHY层,这些层使用不同的调制方案并支持不同的数据速率。金宝app这些物理层是为特定频带设计的,在某种程度上是为特定国家设计的。本例提供了为原始IEEE 802.15.4规范中提出的物理层生成和解码波形的函数(OQPSK在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 PHY:所有OQPSK PHYs每4ppdu位映射到一个符号。2.4 GHz OQPSK PHY将每个符号扩展到32个芯片序列,而其他OQPSK PHY将其扩展到16个芯片序列。然后,对芯片序列进行OQPSK调制,并传递给半正弦脉冲整形滤波器(或780 MHz波段的普通凸起余弦滤波器)。有关详细说明,请参见[1].

  • BPSK PHY: BPSK PHY对PPDU位进行差分编码。每个产生的比特被分成15个芯片序列。然后,对芯片序列进行BPSK调制,并将其传递给一个正常的凸起余弦滤波器。有关详细说明,请参见[1].

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

  • GFSK PHY: GFSK PHY首先白的PPDU位使用模2加法与PN9序列。然后对变白的比特进行GFSK调制。详细说明见[第15条]。1].

波形生成,解码和误码率曲线计算

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

EcNo = -25:2.5:17.5;% Ec/无误码率曲线范围SPC = 4;每片样品百分比msgLen = 8*120;比特长度百分比message = randi([0 1], msgLen, 1);发送报文百分比预分配向量以存储误码率结果:[berOQPSK2450, berOQPSK780, berBPSK, berASK915,...berASK868, berGFSK] = deal(零(1,长度(EcNo)));idx = 1:长度(EcNo)%循环超过EcNo范围% O-QPSK PHY, 2450 MHz波形= lrwpan。PHYGeneratorOQPSK(message, spc,2450 MHz的);K = 2;每个符号的%信息位信噪比= EcNo(idx) - 10*log10(spc) + 10*log10(K);received = awgn(波形,信噪比);Bits = lrwpan。体育DecoderOQPSKNoSync(received, spc,2450 MHz的);[~, berOQPSK2450(idx)] = biterr(message, bits);% O-QPSK PHY, 780MHz波形= lrwpan。PHYGeneratorOQPSK(message, spc,780 MHz的);%或'868 MHz'/'915 MHz'信噪比= EcNo(idx) - 10*log10(spc) + 10*log10(K);received = awgn(波形,信噪比);Bits = lrwpan。体育DecoderOQPSKNoSync(received, spc,780 MHz的);%或'868 MHz'/'915 MHz'[~, berOQPSK780(idx)] = biterr(message, bits);% BPSK PHY, 868/915/950 MHz波形= lrwpan。PHYGeneratorBPSK(message, spc); K = 1;每个符号的%信息位信噪比= EcNo(idx) - 10*log10(spc) + 10*log10(K);received = awgn(波形,信噪比);Bits = lrwpan。PHYDecoderBPSK(received, spc); [~, berBPSK(idx)] = biterr(message, bits);%问PHY, 915 MHz波形= lrwpan。PHYGeneratorASK(message, spc,915 MHz的);K = 1;每个符号的%信息位信噪比= EcNo(idx) - 10*log10(spc) + 10*log10(K);received = awgn(波形,信噪比);Bits = lrwpan。PHYDecoderASK(received, spc,915 MHz的);[~, berASK915(idx)] = biterr(message, bits(1:msgLen));%问PHY, 868兆赫波形= lrwpan。PHYGeneratorASK(message, spc,868 MHz的);K = 1;每个符号的%信息位信噪比= EcNo(idx) - 10*log10(spc) + 10*log10(K);received = awgn(波形,信噪比);Bits = lrwpan。PHYDecoderASK(received, spc,868 MHz的);[~, berASK868(idx)] = biterr(message, bits(1:msgLen));% GFSK PHY, 950 MHz波形= lrwpan。PHYGeneratorGFSK(message, spc); K = 1;每个符号的%信息位信噪比= EcNo(idx) - 10*log10(spc) + 10*log10(K);received = awgn(波形,信噪比);Bits = lrwpan。PHYDecoderGFSK(received, spc); [~, berGFSK(idx)] = biterr(message, bits);结束百分比曲线误码率曲线数字符号学(EcNo, berOQPSK2450,“o”, EcNo, berOQPSK780,“- *”, EcNo, berBPSK,”——+ '...EcNo berASK915,“- x”, EcNo, berASK868,“s”, EcNo, berGFSK,“v”)传说(“OQPSK, 2450 MHz”“OQPSK, 780 MHz”'BPSK, 868/915/950 MHz''ASK, 915 MHz'...'ASK, 868 MHz'“GFSK, 950兆赫”“位置”“西南”)标题('IEEE 802.15.4 PHY误码率曲线')包含(芯片能量与噪声谱密度之比,Ec/No (dB)) ylabel (“方方面面”)轴([min(EcNo) max(EcNo) 10^-2 1])网格

进一步的探索

你可以进一步探索以下生成器和解码函数:

选定的参考书目

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