主要内容

联合采样时钟和载波频偏跟踪

该示例演示了无线局域网接收器中的联合采样时钟和载波频偏跟踪。

简介

无线局域网无线电通常使用一个振荡器来获得采样和调制的时钟。发射机和接收机无线电中的振荡器并不以完全相同的频率工作。由于这种不匹配,接收机和发射机之间存在载波频率偏移(CFO)以及接收机相对于发射机移位处的采样瞬间。接收机和发射机之间采样瞬间的偏移被称为采样时钟偏移(SCO)。当接收机的采样时钟运行速度比发射机慢时,这将导致更大的采样周期和正的采样时钟偏移。IEEE®802.11™标准中包含的先导子载波允许跟踪和纠正SCO和CFO损伤。

在OFDM系统中,SCO表现为依赖于子载波和符号的相位旋转和载波间干扰[1].当SCO较大,且数据包较长时,远离DC的子载波将遭受重大损害。CFO表现为ICI和所有子载波共同的依赖符号的相位旋转。该图说明了由于这些损伤,子载波上从一个OFDM符号到下一个符号的相位旋转。 Φ k 相位误差是子载波指数吗 k K 是子载波数, ζ 就是上海合作组织 Δ f 为载频偏置, T u 是符号的周期, δ 为相位误差梯度(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。numtransmitantenna = 1;cfgVHT。NumSpaceTimeStreams = 1;cfgVHT。MCS = 4;% 16-QAM和3/4编码率cfgVHT。APEPLength = 500;%字节

创建一个随机PSDU。

S = rng(10);为随机数生成器提供种子psdu = randi([0 1],cfgVHT。PSDULength 8 * 1“int8”);

生成VHT报文。

tx = wlanWaveformGenerator(psdu,cfgVHT);

模型的缺陷

型号-百万分之一百(PPM)采样时钟偏置之间的发射机和接收机使用comm.SampleRateOffset

Sco = -100;采样时钟偏移量,单位:PPM

使用comm.SampleRateOffset通过指定所需的采样率偏移量。采样率偏置是发射机和接收机采样率之间的相对偏置。采样时钟偏置是发射机和接收机采样周期之间的相对偏置。

Sro = -sco/(1+sco/1e6);以PPM为单位的采样率偏移量

模型采样时钟偏移,附加零波形,以允许滤波器延迟。

samplingClockoffset = com . samplerateoffset (sro);rx = samplingClockoffset([tx;0(100年,cfgVHT.NumTransmitAntennas)]);

在波形中添加剩余载波频率偏移。本例假设使用相同的振荡器进行采样和调制,因此CFO取决于SCO和载波频率。

Fc = 5.25e9;载频,赫兹Cfo = (sco*1e-6)*fc;载频偏移,赫兹fs = wlanSampleRate(cfgVHT);基带采样率rx = frequencyOffset(rx,fs,cfo);添加频率偏移

在波形中添加30 dBW方差的噪声。

awgnChannel = com . awgnChannel (“NoiseMethod”“方差”“方差”10 ^ (-30/10));rx = awgnChannel(rx);

前端同步与接收机处理

为了同步数据包,为恢复数据字段做准备,示例执行以下处理步骤。

  1. 检测报文

  2. 执行粗载波频偏估计和校正

  3. 建立符号定时同步

  4. 执行精细的载波频偏估计和校正

  5. 解调L-LTF并估计噪声功率

  6. 解调VHT-LTF并估计信道响应

生成字段索引并进行报文检测。

ind = wlanFieldIndices(cfgVHT);tOff = wlanPacketDetect(rx,cfgVHT.ChannelBandwidth);

执行粗频偏校正。

lstf = rx(tOff+(ind.LSTF(1):ind.LSTF(2)),:);coarseCFOEst = wlanCoarseCFOEstimate(lstf,cfgVHT.ChannelBandwidth);rx = frequencyOffset(rx,fs,-coarseCFOEst);

执行符号定时同步。

nonhtPreamble = rx(tOff+(ind.LSTF(1):ind.LSIG(2)),:);symOff = wlanSymbolTimingEstimate(nonhtPreamble,cfgVHT.ChannelBandwidth);tOff = tOff+symOff;

执行精细的频率偏移校正。

lltf = rx(tOff+(ind.LLTF(1):ind.LLTF(2)),:);fineCFOEst = wlanFineCFOEstimate(lltf,cfgVHT.ChannelBandwidth);rx = frequencyOffset(rx,fs,-fineCFOEst);

执行信道估计。

vhtltf = rx(设备+ (ind.VHTLTF (1): ind.VHTLTF (2)),:);vhtltfDemod = wlanVHTLTFDemodulate(vhtltf,cfgVHT);chanEst = whtltfchannelestimate (vhtltfDemod,cfgVHT);

获得单流通道估计。

chanEstSSPilots = vhtSingleStreamChannelEstimate(vhtltfDemod,cfgVHT);

恢复没有采样时钟偏移或剩余CFO跟踪

粗频偏和细频偏估计和校正去除了大部分CFO,但由于波形中存在损伤,残余CFO仍然存在。接收机必须跟踪并纠正这个偏移量。

disp (前端减值修正:);
前端减值矫正:
frontEndCFOEst =粗森林+细森林;disp ([“预计首席财务官:”num2str (frontEndCFOEst“% .1f”“赫兹”]);
估计CFO: -525209.0 Hz
residualCFO = cfo-frontEndCFOEst;disp ([“最初调整后的剩余CFO:”num2str (residualCFO“% .1f”“赫兹”]);
初始校正后的剩余CFO: 209.0 Hz

使用trackingVHTDataRecover功能恢复VHT数据字段与可选的先导跟踪,以纠正由于SCO和CFO的时间和相位错误。控制先导跟踪使用trackingRecoveryConfig对象。

首先,恢复数据场是无导频跟踪的。从波形中提取数据字段,使用基带速率字段的开始和结束抽样指数。如果接收机的采样率高于发射机的采样率,则接收机需要的样本比发射机产生的样本多。要考虑到这一点,请提取从波形中提取额外的样本并传递给恢复函数。所需的最大额外采样数取决于预期的SCO、基带采样率和最大数据包持续时间。

创建一个禁用先导跟踪的恢复配置。

cfgRec = trackingRecoveryConfig;cfgRec。PilotTracking =“没有”

提取数据字段额外的样品,以允许负SCO。

maxDuration = 5.484e-3;最大报文持续时间(以秒为单位)maxSCO = 120;% PPMNe = ceil(fs*maxDuration*maxSCO*1e-6);%额外样本数dataInd = tOff+(ind.VHTData(1):ind.VHTData(2)+Ne);dataInd = dataInd(dataInd<=length(rx));仅在波形内使用索引data = rx(dataInd,:);

执行解调和解码。

[rxPSDUNoTrack,~,eqSymNoTrack] = trackingVHTDataRecover(data,chanEst,chanEstSSPilots,cfgVHT,cfgRec);

绘制均衡星座。该图显示了剩余CFO引起的所有星座点的旋转,以及SCO引起的星座点的扩散。尽管在波形中添加了适度的AWGN,但损伤在解码的PSDU中引起了误码。

ConstNoTrack = com . constellationdiagram;ConstNoTrack。Title =“无导频跟踪的均衡符号”;ConstNoTrack。ReferenceConstellation = wlanReferenceSymbols(cfgVHT);ConstNoTrack (eqSymNoTrack (:));发行版(ConstNoTrack)

[~,berNoTrack] = biterr(rxPSDUNoTrack,psdu);disp (误码率:);
误码率:
disp ([“没有跟踪:”num2str (berNoTrack)]);
无跟踪:0.066964

恢复与采样时钟偏移跟踪和残余CFO跟踪

现在用联合计时和相位导频跟踪恢复数据字段,以纠正SCO和剩余CFO。

本例中的跟踪算法估计的绝对值 δ 而且 ω 并对解调后的符号应用每个子载波和符号相位校正,以扭转由SCO和CFO引起的相位误差。该算法计算每个接收到的导频子载波之间的相位误差和每个符号平均的期望值PilotTrackingWindowOFDM符号。从这个值,算法计算的最小二乘估计 δ 而且 ω ,并使用这些估计对每个符号和子载波应用相位校正[3.4]。

创建启用先导跟踪的恢复配置。

cfgRec = trackingRecoveryConfig;cfgRec。PilotTracking =“联合”%关节定时和相位跟踪cfgRec。PilotTrackingWindow = 9;OFDM符号的平均窗口

执行解调和解码。

[rxPSDU,~,eqSymTrack,cpe,peg] = trackingVHTDataRecover(data,chanEst,chanEstSSPilots,cfgVHT,cfgRec);

绘制均衡星座。这显示了一个清晰的16-QAM星座,没有扩散或旋转。解码后的PSDU不包含比特错误。

ConstTrack = com . constellationdiagram;ConstTrack。Title =“带联合导频跟踪的均衡符号”;ConstTrack。ReferenceConstellation = wlanReferenceSymbols(cfgVHT);ConstTrack (eqSymTrack (:));发行版(ConstTrack)

[~,berTrack] = biterr(rxPSDU,psdu);disp ([“带有跟踪功能:”num2str (berTrack)]);
带跟踪:0

trackingVHTDataRecover函数返回残余CFO和SCO的测量值:

  • cpe-每个符号的共同相位误差(弧度)

  • 挂钩-每个符号的相位误差梯度(每个子载波的弧度)

使用变化率的线性最小二乘拟合,从这些测量中估计SCO和剩余CFO。的trackingPlotSCOCFOEstimates函数执行这些测量并绘制结果。

[residualCFOEst,scoEst] = trackingPlotSCOCFOEstimates(cpe,peg,cfgVHT);

图中包含2个轴对象。轴对象1,标题为测量相位误差梯度,包含2个类型为直线的对象。这些对象代表测量PEG,线性拟合。带有标题的坐标轴对象2包含2个类型为line的对象。这些对象代表测量CPE,线性拟合。

流(“跟踪障碍:\ n”);
跟踪缺陷:
流('估计剩余CFO: %3.1f Hz(%。1f Hz误差)\n'...residualCFOEst residualCFOEst-residualCFO);
估计剩余CFO: 198.9 Hz (-10.1 Hz误差)
流(预估SCO: %3.1f PPM(%。1f PPM误差)\n'上海合作组织,scoEst-sco);
预估SCO: -98.3 PPM (1.7 PPM误差)
cfoEst = frontEndCFOEst+residualCFOEst;%最初+跟踪CFO估计流('预估CFO(初始+跟踪):%。1f Hz(%。1fHz error)\n'首席财务官,cfoEst-cfo);
估计CFO(初始+跟踪):-525010.1 Hz (-10.1 Hz误差)
rng(年代);恢复随机数生成器的状态

结论

本示例展示了如何在恢复WLAN波形的数据字段时跟踪和纠正采样时钟和载波频率偏移。

本例使用VHT、HT-MF和非ht格式的联合导频跟踪数据字段恢复函数,以及配置恢复算法的对象。

要查看HE格式包的先导跟踪示例,请参阅802.11ax报文的恢复过程的例子。

参考文献

  1. 斯佩思,M., S.A.费克特尔,G.福克和H.迈尔。基于OFDM的无线宽带系统接收机优化设计。我”。IEEE通讯汇刊47岁的没有。11(十一月1999):1668-77。https://doi.org/10.1109/26.803501。

  2. IEEE Std 802.11™-2020。IEEE信息技术标准。系统间的电信和信息交换。局域网和城域网。特殊要求。第11部分:无线局域网介质访问控制(MAC)和物理层(PHY)规范。

  3. 赵子达,蔡佩云,赖。I-Wei和Tzi-Dar Chiueh。无线MIMO-OFDM通信的基带接收机设计.第二版。霍博肯,新泽西州:J. Wiley & Sons, 2012。

  4. 霍林,François和André布尔杜。模拟前端的数字补偿:无线收发器设计的新方法.西萨塞克斯郡奇切斯特 ;霍博肯,新泽西州:J. Wiley & Sons, 2008。