正确的符号定时和多普勒偏移

使用。来纠正符号定时和频率偏移误差comm.SymbolSynchronizercomm.CarrierSynchronizer系统对象。

配置

初始化仿真参数。

M = 16;%调制顺序nSym = 2000;数据包中的符号数sps = 2;每个符号百分比样本spsFilt = 8;每符号%的样品过滤器和信道spsSync = 2;用于同步器的每个符号%采样lenFilt = 10;% RRC滤波器长度

为发射机和接收机创建一对匹配的根凸起余弦(RRC)滤波器系统对象。

txfilter = comm.RaisedCosineTransmitFilter ('FilterSpanInSymbols'lenFilt,“OutputSamplesPerSymbol”spsFilt,“获得”、sqrt (spsFilt));rxfilter = comm.RaisedCosineReceiveFilter ('FilterSpanInSymbols'lenFilt,“InputSamplesPerSymbol”spsFilt,“DecimationFactor”spsFilt / 2,“获得”、sqrt (1 / spsFilt));

创建一个相频偏移系统对象来引入100 Hz的多普勒频移。

多普勒= comm.PhaseFrequencyOffset (“FrequencyOffset”, 100,“PhaseOffset”45岁的“SampleRate”1 e6);

创建一个可变延迟系统对象来引入时间偏移量。

varDelay = dsp.VariableFractionalDelay;

创建载波和符号同步器系统对象,以分别校正多普勒频移和定时偏移。

carrierSync = comm.CarrierSynchronizer (“SamplesPerSymbol”, spsSync);symbolSync = comm.SymbolSynchronizer (“TimingErrorDetector”,早期的后期(non-data-aided)”,“SamplesPerSymbol”, spsSync);

创建星座图系统对象以查看结果。

refConst = qammod (0: M - 1 M,“UnitAveragePower”,真正的);cdReceive = comm.ConstellationDiagram (“ReferenceConstellation”refConst,“SamplesPerSymbol”spsFilt,“标题”,接收信号的);cdDoppler = comm.ConstellationDiagram (“ReferenceConstellation”refConst,“SamplesPerSymbol”spsSync,“标题”,“频率校正信号”);cdTiming = comm.ConstellationDiagram (“ReferenceConstellation”refConst,“SamplesPerSymbol”spsSync,“标题”,“的频率和定时同步信号”);

主要处理循环

主处理回路:

  • 生成随机符号并应用QAM调制。

  • 滤除调制信号。

  • 应用频率和时间偏移。

  • 将发送的信号通过AWGN信道。

  • 过滤接收到的信号。

  • 校正多普勒频移。

  • 校正定时偏移。

数据= randi([0 M-1],nSym,1);modSig = qammod(数据、米“UnitAveragePower”,真正的);txSig = txfilter (modSig);txDoppler =多普勒(txSig);txDelay = varDelay (txDoppler k / 15);rxSig = awgn (txDelay 25);rxFiltSig = rxfilter (rxSig);rxCorr = carrierSync (rxFiltSig);rxData = symbolSync (rxCorr);结束

可视化

绘制所接收的信号的星座图,频率校正的信号,以及频率和定时同步信号。特定星座点不能在所接收的信号被识别,并且可以仅部分地确定在所述频率校正的信号。然而,时序和频率同步信号对准与预期QAM星座点。

cdReceive (rxSig)

cdDoppler (rxCorr)

cdTiming (rxData)

另请参阅

|