这个例子演示了无线局域网接收机的联合采样时钟和载波频率偏移跟踪。
无线局域网无线电通常使用一个振荡器来获得用于采样和调制的时钟。发射机和接收机中的振荡器并不以完全相同的频率运行。由于这种不匹配,接收机和发射器之间存在载波频率偏移(CFO),以及接收机相对于发射器偏移的采样瞬间。这种在接收机和发射机之间的采样瞬间的偏移称为采样时钟偏移(SCO)。当接收机的采样时钟运行比发射机慢时,这将导致更大的采样周期和正的采样时钟偏移。IEEE®802.11™标准中包含的导频子载波允许跟踪和纠正SCO和CFO的损伤。
在OFDM系统中,SCO表现为一种与副载波和符号相关的相位旋转和载波间干扰[1].当SCO较大,数据包较长时,远离DC的子载波将受到严重损害。CFO表现为ICI和所有子载波共同的符号依赖相位旋转。这个图说明了由于这些缺陷,子载波从一个OFDM符号到下一个OFDM符号的相位旋转。 是子载波索引的相位误差 , 为子载波数, 上海合作组织, 为载波频率偏移, 是符号的周期, 是相位错误梯度(PEG),以及 为常见相位误差(CPE)。PEG和CPE可用于估算SCO和剩余CFO。
这个例子展示了如何演示带有固定SCO和CFO损伤的IEEE 802.11ac™VHT波形[2,并显示了具有或不具有联合时序和相位跟踪的解调受损波形的均衡星座,以校正SCO和CFO,以证明跟踪的有效性。
创建VHT配置对象以参数化传输。使用一个只有500字节的数据负载和16点正交振幅调制(16-QAM)来产生少量的OFDM符号,并使损害容易可视化。
cfgVHT = wlanVHTConfig;cfgVHT。ChannelBandwidth =“CBW20”;cfgVHT。NumTransmitAntennas = 1;cfgVHT。NumSpaceTimeStreams = 1;cfgVHT。MCS = 4;%16-QAM和3/4编码率cfgVHT。APEPLength = 500;%字节
创建一个随机的psdu。
s = rng (10);% Seed随机数生成器psdu = randi([0 1],cfgVHT. php);PSDULength 8 * 1“int8”);
生成VHT报文。
tx = wlanWaveformGenerator (psdu cfgVHT);
型号-百万分之一(PPM)采样时钟偏差在发射机和接收机之间使用comm.SampleRateOffset
.
上海合作组织= -100;采样时钟偏移百分比PPM
使用comm.SampleRateOffset
通过指定期望的采样率偏移量。采样率偏移量是发射机和接收机采样率之间的相对偏移量。采样时钟偏差是发射机和接收机采样周期之间的相对偏差。
地面读数=上海合作组织/(1 +上海合作组织/ e6);在PPM中样品率偏移%
模型采样时钟偏移,在波形上附加零以允许滤波器延迟。
“samplingClockoffset = comm.SampleRateOffset (sro”);rx = samplingClockoffset ([tx;0(100年,cfgVHT.NumTransmitAntennas)]);
增加剩余载波频率偏移波形使用helperFrequencyOffset函数。这个例子假设相同的振荡器用于采样和调制,因此CFO依赖于SCO和载波频率。
fc = 5.25 e9;%载波频率,赫兹首席财务官=(上海合作组织* 1 e-6) *俱乐部;载波频率偏移,赫兹fs = wlanSampleRate (cfgVHT);基带采样率%rx = helperFrequencyOffset (rx, fs,首席财务官);%添加频率偏移量
将噪声添加到30 dBW方差的波形中。
awgnChannel = comm.AWGNChannel (“NoiseMethod”,“方差”,“方差”10 ^ (-30/10));rx = awgnChannel (rx);
为了同步数据包,为恢复数据字段做准备,本示例执行以下处理步骤。
检测包
进行粗载波频偏估计和校正
建立符号定时同步
执行良好的载波频偏估计和校正
解调L-LTF并估计噪声功率
解调VHT-LTF并估计信道响应
生成字段索引,进行报文检测。
印第安纳州= wlanFieldIndices (cfgVHT);有钱人= wlanPacketDetect (rx, cfgVHT.ChannelBandwidth);
进行粗频偏校正。
lstf = rx(设备+ (ind.LSTF (1): ind.LSTF (2)),:);coarseCFOEst = wlanCoarseCFOEstimate (lstf cfgVHT.ChannelBandwidth);rx = helperFrequencyOffset (rx, fs -coarseCFOEst);
执行符号定时同步。
nonhtPreamble = rx(设备+ (ind.LSTF (1): ind.LSIG (2)),:);symOff = wlanSymbolTimingEstimate (nonhtPreamble cfgVHT.ChannelBandwidth);有钱人=设备+ symOff;
执行精细的频率偏移校正。
lltf = rx(设备+ (ind.LLTF (1): ind.LLTF (2)),:);fineCFOEst = wlanFineCFOEstimate (lltf cfgVHT.ChannelBandwidth);rx = helperFrequencyOffset (rx, fs -fineCFOEst);
进行信道估计。
vhtltf = rx(设备+ (ind.VHTLTF (1): ind.VHTLTF (2)),:);vhtltfDemod = wlanVHTLTFDemodulate (vhtltf cfgVHT);陈= wlanVHTLTFChannelEstimate (vhtltfDemod cfgVHT);
获得单流信道估计。
chanEstSSPilots = vhtSingleStreamChannelEstimate (vhtltfDemod cfgVHT);
粗糙和精细的频率偏移估计和校正去除了大部分的CFO,但由于波形中存在损伤,剩余的CFO仍然存在。接收器必须跟踪并纠正这个偏移。
disp ('前端减值纠正:');
前端障碍更正:
frontEndCFOEst = coarseCFOEst + fineCFOEst;disp ([预计CFO:num2str (frontEndCFOEst“% .1f”)“赫兹”]);
预计CFO: -525209.0 Hz
residualCFO = cfo-frontEndCFOEst;disp ([最初调整后的剩余CFOnum2str (residualCFO“% .1f”)“赫兹”]);
初始修正后剩余CFO: 209.0 Hz
使用trackingVHTDataRecover功能恢复VHT数据字段与可选的飞行员跟踪纠正时间和相位错误,由于SCO和CFO。控制飞行员跟踪使用trackingRecoveryConfig对象。
首先,恢复数据字段是没有飞行员跟踪的。从波形中提取数据字段,使用字段在基带速率下的开始和结束样本指数。如果接收机的采样率高于发射机的采样率,则接收机需要比发射机产生更多的采样。考虑到这一点,提取不
从波形中提取额外的样本并传递到恢复函数。所需的最大附加样本数量取决于预期SCO、基带采样率和最大分组持续时间。
创建一个禁用飞行员跟踪的恢复配置。
cfgRec = trackingRecoveryConfig;cfgRec。PilotTracking =“没有”;
用下列方法提取数据字段不
额外的样品,以允许负SCO。
maxDuration = 5.484 e - 3;%报文最大持续时间,单位为秒maxSCO = 120;% PPM不=装天花板(e-6 fs * maxDuration * maxSCO * 1);%额外样本数量dataInd =设备+ (ind.VHTData (1): ind.VHTData (2) + Ne);dataInd = dataInd (dataInd < =长度(rx));%只在波形内使用指数data = rx (dataInd:);
解调和解码。
[rxPSDUNoTrack ~, eqSymNoTrack] = trackingVHTDataRecover(数据、陈chanEstSSPilots、cfgVHT cfgRec);
绘制均衡的星座图。这张图显示了由剩余CFO引起的所有星座点的旋转,以及由SCO引起的星座点的扩散。尽管在波形中增加了适度的AWGN,但这些损伤会在解码后的PSDU中导致比特错误。
ConstNoTrack = comm.ConstellationDiagram;ConstNoTrack。Title =“没有飞行员跟踪的均衡符号”;constnotrack.referenceConstellation = wlanrefercessmbols(cfgvht);constnotrack(eqsymnotrack(:));释放(ConstNotrack)
[~, berNoTrack] = biterr (rxPSDUNoTrack psdu);disp (的误比特率:);
误比特率:
disp ([“没有跟踪:”num2str (berNoTrack)]);
没有跟踪:0.066964
现在恢复数据场与联合时间和阶段飞行员跟踪纠正SCO和剩余CFO。
这个例子中的跟踪算法估计的绝对值
和
每个OFDM符号,并对被解调的符号应用每个子载波和符号相位校正,以逆转由SCO和CFO造成的相位误差。该算法计算每个接收的导频子载波之间的相位误差和每个符号平均的期望值PilotTrackingWindow
OFDM符号。从该值,该算法计算最小二乘估计值
和
,并使用这些估计对每个符号和副载波应用相位校正[3.,4]。
创建启用飞行员跟踪的恢复配置。
cfgRec = trackingRecoveryConfig;cfgRec。PilotTracking =“联合”;联合定时和相位跟踪cfgRec。PilotTrackingWindow = 9;% OFDM符号的平均窗口
解调和解码。
[rxPSDU, ~, eqSymTrack、cpe、挂钩)= trackingVHTDataRecover(数据、陈chanEstSSPilots、cfgVHT cfgRec);
绘制均衡的星座图。这显示了一个清晰的16-QAM星座,没有扩展或旋转。解码后的PSDU不包含位错误。
ConstTrack = comm.ConstellationDiagram;ConstTrack。Title =“具有联合驾驶员跟踪的均衡符号”;ConstTrack。ReferenceConstellation = wlanReferenceSymbols (cfgVHT);ConstTrack (eqSymTrack (:));发行版(ConstTrack)
[~, berTrack] = biterr (rxPSDU psdu);disp ([' With tracking: 'num2str (berTrack)]);
跟踪:0
的trackingVHTDataRecover函数返回可估计剩余CFO和SCO的测量值:
cpe
-每个符号的常见相位误差(弧度)
挂钩
-每个符号的相位误差梯度(每子载波的弧度)
利用变化率的线性最小二乘拟合,从这些测量中估计SCO和剩余CFO。的trackingPlotSCOCFOEstimates函数执行这些测量并绘制结果。
[residualCFOEst,上海合作组织]= trackingPlotSCOCFOEstimates (cpe、挂钩、cfgVHT);
流(“跟踪障碍:\ n”);
跟踪缺陷:
流(预计剩余CFO: %3.1f Hz(%。1 f赫兹错误)\ n ',...residualCFOEst residualCFOEst-residualCFO);
估计残差CFO: 198.9 Hz (-10.1 Hz误差)
流(估计SCO: %3.1f PPM(%。1 f PPM错误)\ n '上海合作组织,scoEst-sco);
估计SCO: -98.3 PPM (1.7 PPM误差)
首席财务官= frontEndCFOEst + residualCFOEst;初始+跟踪CFO估计流(预计CFO(初始+跟踪):%。1 f赫兹(%。1fHz error)\n'首席财务官,cfoEst-cfo);
预估CFO(初始+跟踪):-525010.1 Hz (-10.1 Hz错误)
rng(年代);%恢复随机数生成器的状态
这个示例演示了如何在恢复WLAN波形的数据字段时跟踪和纠正采样时钟和载波频率偏移。
此示例使用数据字段恢复功能,具有用于VHT,HT-MF和非HT格式的联合导频跟踪,以及配置恢复算法的对象。
要查看HE格式数据包的先导跟踪示例,请参见802.11ax报文的恢复过程的例子。
s . Speth, M., s . s . Fechtel, G. Fock,和H. Meyr。基于OFDM的无线宽带系统的最佳接收机设计。我”。IEEE通讯汇刊47岁的没有。11(1999年11月):1668-77。https://doi.org/10.1109/26.803501。
IEEE Std 802.11™-2016 (IEEE Std 802.11-2012修订版)。第11部分:无线局域网介质访问控制(MAC)和物理层(PHY)规范信息技术的IEEE标准。系统之间的电信和信息交换。局域网和城域网—具体要求。
邱子达,蔡培云,赖。I-Wei和Tzi-Dar Chiueh。无线MIMO-OFDM通信基带接收机设计.第2版。
Horlin, François,和André Bourdoux。模拟前端的数字补偿:一种新的无线收发器设计方法.奇切斯特,西萨塞克斯郡 ;霍博肯,新泽西州:J. Wiley & Sons, 2008。