主要内容

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

使用该方法修正符号定时和频率偏移错误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));

创建一个相位频率偏移System对象来引入100hz的多普勒频移。

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

创建一个变量delay System对象来引入定时偏移。

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通道传输传输的信号。

  • 过滤接收到的信号。

  • 修正了多普勒频移。

  • 修正了定时偏差。

k = 1:15 data = 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)

另请参阅

|