锁相环有很多应用,之前讲过在时频领域中的应用,用于产生极低相位噪声的正弦波信号。本文讲讲锁相环在导航领域中的应用,主要涉及 GPS 接收机中的信号跟踪。对于一个在导航领域研究信号处理算法超过二十多年的工程师而言,写本文充满乐趣,有种“回家”的感觉。
GPS信号跟踪通常包括伪码跟踪和载波跟踪。载波跟踪的目的是消除多普勒频移和相位噪声,恢复载波相位。常用的载波跟踪方法包括:1. 锁相环(PLL)2. 频率锁定环(FLL)3. FLL辅助PLL。
在PLL中,鉴相器是关键组件,用于提取相位误差。鉴相器算法有多种,选择哪一种呢?
本人一直用图中的第一种,但后来发现网上公开的接收机代码用了 atan2 算法,于是就想了解两者的差异,这样也能让大家在使用的时候做到心中有数。针对BPSK信号,如果鉴相器能够去除判决比特的符号影响,是不是会让环路入锁更快呢?这方面的内容会在后续文章中进行研讨。如果针对的是正弦波呢?那就用仿真来说话!
本人读研究生那会应该搞过这方面(不同鉴相器对于载波锁定的影响)的研究,但我已经不记得仿真程序放在哪里,于是就又写了代码来验证比较。每次有些想法,都想用仿真来验证一下是否正确,这就是一名工程师的工作方法,费力但不失严谨。本文超过三千字,不是专业人士莫入!
atan2算法可以作为鉴相器的一种实现方式。atan2算法确实可以用于载波跟踪,尤其是在高精度和高动态范围的场景中。
atan2算法在GPS载波跟踪中如何使用呢?看看 AI 的回答!
GPS接收机通过下变频将信号转换到基带,生成同相(I路)和正交(Q路)信号。
使用atan2(Q, I)计算相位误差,该相位误差用于调整本地振荡器的频率和相位,实现载波跟踪。
atan2能够处理所有象限的相位,输出范围在-pi到pi之间,避免了普通反正切函数的相位模糊问题。特点如下:
1. 精度高
atan2提供高精度的相位误差测量,适合GPS信号的高精度载波跟踪。
2. 抗噪声能力
通过正交信号处理,atan2对噪声有较好的抑制能力,适合低信噪比环境。
3. 动态范围大
atan2能够处理较大的相位误差,适合高动态场景(如高速移动的接收机)。
4. 计算复杂度较高
相比简单的鉴相器(如乘法鉴相器),atan2的计算量较大,需要较强的处理能力。
1. 硬件实现
在FPGA或DSP中,atan2通常通过查找表(LUT)或CORDIC算法实现,以优化计算效率。
2. 与其他方法的结合
在高动态场景中,atan2算法可以与FLL结合使用,先用FLL快速捕获频率,再用PLL进行精确相位跟踪。
3. 性能优化
为了降低计算复杂度,可以在低信噪比环境下使用简化的鉴相器(如极性鉴相器),而在高精度场景下切换到atan2。
总结:在GPS信号跟踪中,atan2算法可以作为载波跟踪的鉴相器,提供高精度和抗噪声能力,尤其适合高动态和高精度场景。尽管计算复杂度较高,但在现代GPS接收机中,通过硬件优化(如FPGA或DSP),atan2算法的计算量已经不足为虑,使其得到了广泛应用。
c1 = 8*index*wn*ts/para;
c2 = 4*(wn*ts)^2/para;
%%% 外部信号源
n = 10000; % n/fs s的数据
nn = 1:n;
signal = cos(2*pi*(f0+fdop)*nn*ts+phi0);
% 1ms data
% 加噪
snr = 5; % dB
signal = awgn(signal,snr,'measured');
% Add white Gaussian noise
% 低通滤波器设计
lp_fir = fir1(50,0.25);
spll=zeros(1,n);
phase=zeros(1,n);
e=zeros(1,(n-25));