主要内容

IEEE 802.15.4 OQPSK信号的恢复

这个例子展示了如何使用ZigBee和UWB的通信工具箱™库实现一个实际的IEEE®802.15.4™PHY接收机解码可能已经从无线电台接收到的OQPSK波形。这个实用的接收器已经解码了从商业ZigBee无线电接收的标准兼容的波形,使家庭自动化在2.4 GHz波段,使用USRP®B200-mini无线电和USRP®无线电插件的通信工具箱支持包。

背景

IEEE 802.15.4标准规定了低速率无线个人区域网络(lr - wpan)的MAC层和PHY层[1].IEEE 802.15.4 MAC层和PHY层提供了其他更高层标准的基础,如ZigBee、WirelessHart®、6LoWPAN和MiWi。这些标准在家庭自动化和传感器网络中得到应用,并与物联网(IoT)趋势高度相关。

接收机体系结构

总的来说,接收方执行以下操作:

  • 匹配滤波

  • 粗频率补偿

  • 精细频率补偿

  • 时间恢复

  • 序言检测

  • 相位模糊分辨

  • Despreading

在这些步骤之间,信号是可视化的,以说明信号损伤和校正。

匹配滤波

负载lrwpanPHYCaptures%负载来自2.4 GHz频段的OQPSK信号SPC = 12;每个芯片12个样品%的帧捕获在12x芯片= 12 MHz

匹配的滤波器提高了信号的信噪比。2.4 GHz OQPSK PHY使用半正弦脉冲,因此需要进行以下匹配滤波操作。

捕获OQPSK信号的匹配滤波器:halfsinpulse = sin(0:pi/spc:(spc)*pi/spc);decimationFactor = 3;%减少SPC到4,更快的处理matchedFilter = dsp.FIRDecimator(decimationFactor, halfsinpulse);filteredOQPSK = matchedFilter(capturedFrame1);%匹配过滤器输出

频率偏移量

在频偏存在的情况下解码信号对任何无线接收器来说都是一个挑战。使用USRP®B200-mini无线电捕获从商业ZigBee无线电传输的信号,并测量了高达30 kHz的频率偏移。

星座图可以说明接收信号的质量,但首先要注意的是,理想OQPSK信号的轨迹遵循一个圆。

绘制理想OQPSK信号星座图msgLen = 8*120;比特长度%message = randi([0 1], msgLen, 1);发送消息百分比idealOQPSK = lrwpan。PHYGeneratorOQPSK(message,spc,2450 MHz的);星座图(...“名字”“理想OQPSK信号”...“ShowTrajectory”,真正的);星座。位置=[星座位置(1:2)300 300];星座(idealOQPSK);

上述星座还包含一个对应于帧开始的半径和一个对应于帧结束的半径。同时,频率偏移使星座圆旋转,形成环状的星座。因此,将OQPSK信号的同相分量延迟半个符号得到的qpsk等效信号的星座观测更有意义。当使用半正弦脉冲滤波,且过采样因子大于1时,理想的QPSK星座类似于一个连接四个QPSK符号(红色叉)与原点的“X”形区域。

绘制理想qpsk等效信号星座图。idealQPSK = complex(real(idealOQPSK(1:end-spc/2)),...图像放大(idealOQPSK (spc / 2 + 1:结束)));对齐I和Q释放(星座);星座。Name =“理想qpsk等效信号”;星座。referenceconsteller = [1+1i 1-1i 1i-1];星座(idealQPSK);

然而,由于频率偏移,捕获帧的样本从这个“X”形区域错位:

qpsk等价的% Plot星座(受损)接收信号百分比qpsk = complex(...真正的(filteredOQPSK (1: end-spc / (2 * decimationFactor))),...图像放大(filteredOQPSK (spc / (2 * decimationFactor) + 1:结束)));% align I/Q星座图(...“XLimits”(-7.5 - 7.5),...“YLimits”(-7.5 - 7.5),...“ReferenceConstellation”5 * qammod (0:3, 4),...“名字”“接收的qpsk等效信号”);星座。位置=[星座位置(1:2)300 300];星座(filteredQPSK);

粗频率补偿

这些频率偏移首先使用基于fft的方法粗略校正[2平方OQPSK信号并显示两个光谱峰值。粗频偏是通过对两个谱峰的频率进行平均和减半得到的。

OQPSK信号的粗频率补偿coarseFrequencyCompensator = com . coarseFrequencyCompensator (...“调制”“OQPSK”...“SampleRate”程控* 1 e6 / decimationFactor...“FrequencyResolution”1 e3);[coarseCompensatedOQPSK, coarseFrequencyOffset] =...coarseFrequencyCompensator (filteredOQPSK);流(“估计频率偏移= %。”3 f kHz \ n”...coarseFrequencyOffset / 1000);
估计频率偏移= 26.367 kHz
绘制qpsk等效粗补偿信号coarseCompensatedQPSK = complex(...真正的(coarseCompensatedOQPSK (...1: end-spc / (2 * decimationFactor)))...图像放大(coarseCompensatedOQPSK (...spc / (2 * decimationFactor) + 1:结束)));对齐I和Q释放(星座);星座。Name =...“粗频率补偿(qpsk等效)”;星座(coarseCompensatedQPSK);

一些样本仍然位于连接原点与QPSK符号(红色叉)的“X”形区域之外,因为还需要精细的频率补偿。

精细频率补偿

细频补偿紧随其后OQPSK载波恢复算法描述于[3.].该算法在行为上与QPSK算法不同,QPSK算法并不适用于OQPSK信号,即使其同相信号分量被延迟了半个符号。

OQPSK信号的精细频率补偿fineFrequencyCompensator = comm.CarrierSynchronizer(...“调制”“OQPSK”...“SamplesPerSymbol”spc / decimationFactor);fineCompensatedOQPSK =...fineFrequencyCompensator (coarseCompensatedOQPSK);绘制qpsk等效精细补偿信号qpsk = complex(...真正的(fineCompensatedOQPSK (...1: end-spc / (2 * decimationFactor)))...图像放大(fineCompensatedOQPSK (...spc / (2 * decimationFactor) + 1:结束)));对齐I和Q释放(星座);星座。Name =“精细频率补偿(qpsk等效)”;星座(fineCompensatedQPSK);

该星座现在接近它的理想形式,但仍然需要定时恢复。

时间恢复

符号同步根据[描述的OQPSK定时恢复算法发生3.].与载波恢复相比,OQPSK定时恢复算法等价于其QPSK对应的QPSK等效信号,该信号是通过将OQPSK信号的同相成分延迟半个符号获得的。

OQPSK信号的%定时恢复,通过其qpsk等效版本symbolSynchronizer = comm.SymbolSynchronizer(...“调制”“OQPSK”...“SamplesPerSymbol”spc / decimationFactor);syncedQPSK = symbolSynchronizer(fineCompensatedOQPSK);%绘制QPSK符号(每个芯片1个样本)释放(星座);星座。Name =“定时恢复(qpsk等效)”;星座(syncedQPSK);

注意,符号同步器的输出为每个符号包含一个示例。在这个阶段,星座真正类似于QPSK信号。逐渐远离原点的少数符号对应于帧的开始和结束。

前导信号的检测、扩展和相位模糊度的消除:

一旦信号已经被同步,下一步是前导检测,如果信号已经被消除,则更成功。值得注意的是,精细的频率补偿会导致一个 π /2相位模糊,表示真实星座可能旋转了0, π / 2, π ,或 3. π / 2弧度。前导探测通过考虑所有四种可能的星座旋转来解决相位模糊问题。下一个函数对同步的OQPSK信号进行操作,进行联合解扩、相位模糊消解和前导检测,然后输出MAC协议数据单元(MPDU)。

MPDU = lrwpan.PHYDecoderOQPSKAfterSync(syncedQPSK);
发现OQPSK PHY的序言。发现OQPSK PHY的帧开始分隔符(SFD)。

进一步的探索

ZigBee和UWB插件的通信工具箱库包含以下对象和函数:

  • lrwpan。PHYDecoderOQPSKNoSync和lrwpan。PHYDecoderOQPSK: Decode an IEEE 802.15.4 OQPSK waveform

这些实用程序没有文档记录,它们的API或功能将来可能会改变。要查看这些实用程序的源代码,请使用编辑函数。例如,输入:

编辑lrwpan。PHYDecoderOQPSK

在MATLAB®命令行打开lrwpan。PHYGeneratorOQPSK

选定的参考书目

1 -“IEEE局域网和城域网标准——第15.4部分:低速率无线个人区域网络(lr - wpan)”,见IEEE Std 802.15.4-2011 (IEEE Std 802.15.4-2006修订版),卷,号。2011年9月5日,pp.1-314, doi: 10.1109/IEEESTD.2011.6012487。

2 -“设计OQPSK解调器”,Jonathan Olds。

3 -赖斯,迈克尔。数字通信-离散时间方法.第1版。纽约,纽约州:普伦蒂斯大厅,2008年。

相关的话题

Baidu
map