matlab中COSTAS锁相环时怎么解决bpsk调制的倒pi现象?

我在调试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

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y

发射机和接收机使用的两个独立振荡器是同步的,电磁波在信道中的传播也会引起对接收机来说是未知的相位变化。比如电磁波的行程相位(一个波长的距离对应2π相移),绕射、反射、散射引起的附加相移等,另外多普勒现象也会引起频率抖动。通常 θ ( t ) \theta (t) θ(t)相对于信息信号是缓慢变化的,因此经常写成 的形式。这里虽然 θ \theta θ 不为0,但却是固定的,如果接收端已知其数值,则这两个载波在实质上是同步的。不过做相干解调时,需要对本地载波做相移以消除这个 θ \theta θ 。