主要内容

使用粗糙和精细的补偿来补偿频率偏移

使用载体同步器在嘈杂的QAM信号中纠正相位和频率偏移。然后使用载体同步器和粗频薪补偿器校正偏移量。

设置示例参数。

FS = 10000;%符号率(HZ)sps = 4;每个符号样本%M = 16;%调制顺序k = log2(m);每个符号的%位EBNO = 20;%EB/NO(DB)snr = convertsnr(ebno,“ ebno”,bitpersymbol = k,samplespersymbol = sps);

创建一个星座图对象,以可视化偏移补偿技术的影响。指定星座图仅显示最后4000个样本。

constdiagram = comm.constellationdiagram(...“参考结构化”,Qammod(0:M-1,M),...“ Samplespersymbol”,sps,...“符号StodisPlaySource”,,,,'财产',,,,...'符号播放',4000,...'xlimits',[-5 5],,...'ylimits',[-5 5]);

引入400 Hz的频率偏移和30度的相位偏移。

phasefreqoffset = comm.phasefrequencyoffset(...“频率offset”,400,...“阶段”,30,...'采样率',fs);

生成随机数据符号并应用16 QAM调制。

data = randi([0 M-1],10000,1);modsig = qammod(data,m);

创建一个凸起的余弦过滤对象,并过滤调制信号。

txfilter = Comm。...“输出采样符号”,sps,...'获得',SQRT(SPS));txsig = txfilter(modsig);

应用相位和频率偏移,然后通过AWGN通道传递信号。

freqoffsetsig = apeasfreqoffset(txsig);rxsig = awgn(freqoffsetsig,snr);

通过使用载体同步器对信号进行良好的频率校正。

finesync = comm.carriersynchronizer(...'阻尼因子',0.7,...“标准化卢比窗口”,0.005,...“ Samplespersymbol”,sps,...'调制',,,,'qam');rxData = finesync(rxsig);

显示最后4000个符号的星座图。

constdiagram(RXDATA)

即使有时间收敛,该图的螺旋性也表明载体同步器尚未补偿大频率偏移。400 Hz偏移量是样本率的1%。

用载体同步器之前插入粗频率补偿器重复该过程。

创建一个粗频率补偿器,以将频率偏移降低到可管理的水平。

coarsync = comm.coarsefrequencyCompensator(...'调制',,,,'qam',,,,...“频率分辨”,1,...'采样率',fs*sps);

将接收的信号传递给粗频率补偿器,然后将其传递给载体同步器。

syncoarse = coarsync(rxsig);rxData = finesync(Synccoarse);

在粗糙和良好的频率补偿后绘制信号的星座图。现在,收到的数据与参考星座保持一致。

constdiagram(RXDATA)

也可以看看

|