使用载波同步器校正有噪声QAM信号中的相位和频率偏移。然后使用载波同步器和粗频率补偿器校正偏移量。
设置示例参数。
fs = 10000;符号率(Hz)sps = 4;每个符号百分比样本M = 16;%调制顺序k = log2 (M);每符号%位元
创建一个QAM调制器和一个AWGN通道。
频道= comm.AWGNChannel (“EbNo”,20岁,“BitsPerSymbol”、钾、“SamplesPerSymbol”, sps);
创建星座图对象以可视化偏移补偿技术的效果。指定星座图,只显示最后4000个样本。
constdiagram = comm.ConstellationDiagram (…“ReferenceConstellation”, qammod (0: M - 1 M),…“SamplesPerSymbol”sps,…“SymbolsToDisplaySource”,“属性”,“SymbolsToDisplay”, 4000,…“XLimits”, 5 [5],“YLimits”5 [5]);
引入400hz的频率偏移和30度的相位偏移。
phaseFreqOffset = comm.PhaseFrequencyOffset (…“FrequencyOffset”, 400,…“PhaseOffset”30岁的…“SampleRate”fs);
生成随机数据符号并应用16-QAM调制。
数据= randi([0 M-1],10000,1);modSig = qammod(数据,M);
创建一个凸起的余弦滤波器对象并对调制信号进行滤波。
txfilter = comm.RaisedCosineTransmitFilter (“OutputSamplesPerSymbol”sps,…“获得”、sqrt (sps));txSig = txfilter (modSig);
利用相位和频率偏移,将信号通过AWGN信道。
freqOffsetSig = phaseFreqOffset (txSig);rxSig =通道(freqOffsetSig);
利用载波同步器对信号进行精细的频率校正。
fineSync = comm.CarrierSynchronizer (“DampingFactor”, 0.7,…“NormalizedLoopBandwidth”, 0.005,…“SamplesPerSymbol”sps,…“调制”,“QAM”);rxData = fineSync (rxSig);
显示最后4000个符号的星座图。
constdiagram (rxData)
即使与时间收敛,螺旋性质的阴谋表明,载波同步器尚未补偿的大频率偏移。400hz偏移是采样率的1%。
在载波同步器前插入一个粗频率补偿器,重复此过程。
创建一个粗糙的频率补偿器,以减少频率偏移到一个可管理的水平。
coarseSync = comm.CoarseFrequencyCompensator (“调制”,“QAM”,“FrequencyResolution”,1“SampleRate”fs * sps);
将接收到的信号送到粗频补偿器,然后送到载波同步器。
syncCoarse = coarseSync (rxSig);rxData = fineSync (syncCoarse);
经过粗、精频率补偿后,绘制信号星座图。
constdiagram (rxData)
接收到的数据现在与参考星座对齐。