我在调试costas的代码时发现常常会发生“倒pi”现象,我在百度上找了很久都没有相关解答。
这是我的代码某个地方有错误?还是说costas环无法解决这个问题?
如果能解决,请问是怎么处理的?谢谢!
以下为代码:
for i=2:L
Signal_PLL(i)=CS_bpsk(i)*exp(-j*mod(NCO_Phase(i-1),2*pi));
%得到环路滤波器前的相乘器的输入
I_PLL(i)=real(Signal_PLL(i));
%环路滤波器前的相乘器的I路输入信息数据
Q_PLL(i)=imag(Signal_PLL(i));
%环路滤波器前的相乘器的Q路输入信息数据
Discriminator_Out(i)=atan(Q_PLL(i)/I_PLL(i));
%鉴相器的输出误差电压信号
PLL_Phase_Part(i)=Discriminator_Out(i)*C1;
%环路滤波器对鉴相器输出的误差电压信号处理后得到锁相环相位响应函数
Freq_Control(i)=PLL_Phase_Part(i)+PLL_Freq_Part(i-1);
%控制压控振荡器的输出信号频率
PLL_Freq_Part(i)=Discriminator_Out(i)*C2+PLL_Freq_Part(i-1);
%环路滤波器对鉴相器输出的误差电压信号处理后得到锁相环频率响应函数
NCO_Phase(i)=NCO_Phase(i-1)+Freq_Control(i);
%压控振荡器进行相位调整
end
代码来源:https://blog.csdn.net/weixin_41683971/article/details/103844756