通信算法之112:载波同步及comm.CarrierSynchronizer
Posted leeshao12
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通信算法之112:载波同步及comm.CarrierSynchronizer相关的知识,希望对你有一定的参考价值。
1.
2.
载波同步是基于锁相环技术使本地获取和载波同频同相的参考信号,用来解调信号。载波同步就是对本地参考信号进行频率和相位偏差的补偿,进而实现本地参考信号和载波信号同频同相。
载波同步只适用于单载波调制系统,载波同步算法对于BPSK、QPSK、OQPSK、8-PSK、PAM和QAM都是兼容的。目前锁相环使用比较多的是Costas环和平方环进行载波同步,但是两者都有相位模糊的特点。
BER比较大,由于星座点已经收敛,说明已经获得同频同相的本地载波信号,造成BER高的原因可能是相位模糊造成的。(就是求初始相位)
相位模糊范围:0、,或者,通常情况下Costas环和平方环的是的相位模糊,具体和调制模式有关;
求出载波同步前后相同barker码的相位角,就求出了相位模糊角;
angle求出的相位角范围,满足相位模糊范围;
%%--------------------------- Phase ambiguity ---------------------------%%
idx = 9000 + (1:barker.Length);
phOffset = angle(modSig(idx) .* conj(syncSignal(idx)));
phOffset = round((2/pi) * phOffset); % -1, 0, 1, +/-2
phOffset(phOffset==-2) = 2; % Prep for mean operation
phOffset = mean((pi/2) * phOffset); % -pi/2, 0, pi/2, or pi
disp(['Estimated mean phase offset = ',num2str(phOffset*180/pi),' degrees'])
求出的相位模糊:Estimated mean phase offset = 180 degrees
补偿相位模糊,将补偿后的数据进行解调并计算BER
%%------------------------------ Phase Shift ----------------------------%%
resPhzSig = exp(1i*phOffset) * syncSignal;
resPhzData = pskdemod(resPhzSig,4,pi/4);%Demodulate the signal after resolving the phase
生成相位和频率偏差
相偏:45° 频偏:10KHz 采样频率:1Mhz,频偏是采样频率的1%
%%------------------- Generate Phase and Frequence Offset ---------------%%
pfo = comm.PhaseFrequencyOffset('PhaseOffset',45, 'FrequencyOffset',1e4,'SampleRate',1e6);
生成载波同步器
SamplesPerSymbol:符号过采样倍数,本例子默认为1;
%%---------------------------- Carrier Synchronizer ---------------------%%
carrierSync = comm.CarrierSynchronizer( 'SamplesPerSymbol',1,'Modulation','QPSK');
添加相偏、频偏和信道噪声
%%-------------------- Add Phase and Frequence Offset -------------------%%
modSigOffset = pfo(modSig);
%%--------------------------- Add Channel Noise -------------------------%%rxSig =
rxSig = awgn(modSigOffset,20);
carrierSync(rxSig )
以上是关于通信算法之112:载波同步及comm.CarrierSynchronizer的主要内容,如果未能解决你的问题,请参考以下文章
通信算法之九十九:载波同步,符号同步,帧同步,科斯塔斯环载波同步