YunSDR小课堂-载波同步(第81讲)

7.1 载波偏移

接收节点和发送节点通常是两个不同且空间分离的单元。因此,由于杂质、电噪声以及温度差异等自然因素,它们的本振集合之间会存在相对频率偏移。由于这些差异可能具有动态变化性,本振集合将相互漂移。这些偏移可能包含随机相位噪声、频率偏移、频率漂移以及初始相位失配。然而,为了简化,我们仅将该偏移建模为一个固定值。在射频通信的时间尺度上,这是一个合理的假设。

    考虑商业振荡器时,频率偏移通常以百万分之一(PPM)表示,我们可以将其转换为给定频率下的最大载波偏移。以Pluto软件定义无线电为例,其内部本振标称频率偏移为25PPM [1](校准后为2 PPM),我们可利用式(7.1)将最大载波偏移△f关联到我们的工作载波频率fc。

1.png

  确定fo,max非常重要,因为它为我们的载波恢复设计提供了依据。在超出我们操作范围的频率上纠正频偏的能力毫无意义,属资源浪费。然而,扫描技术可以用于此类情况,但超出本书讨论范围。

2.png

   数学上,我们可以将带有载波频率偏移fo(或ωo)的基带信号s(k)建模为

7.2.png

  其中, n(k)为零均值高斯随机过程,T为符号周期,θ为载波相位,ωo为角频率。

    在文献中,载波恢复有时被定义为载波相位恢复或载波频率恢复。它们的共同目标是在同步器输出端提供一个稳定星座。然而,理解频率与相位之间的关系非常重要,这有助于澄清这些命名规范。角频率ω,或等价地以频率表示为2πf,是对相位θ随时间变化的纯粹度量:

7.3.png

因此,恢复信号的相位实际上就是恢复该信号的频率。基于此关系的频率估计方法非常常用,因为频率无法像相位那样直接测量。我们可以通过代码7.1中展示的一个简单MATLAB脚本演示该技术。脚本生成一个指定频率的连续波(CW)信号,测量信号的瞬时相位,随后通过相位差来估计频率。任意复数信号x(k)的瞬时相位θ可测量为

7.4.png

其中,Re和Im分别表示信号的实部和虚部。在代码7.1中,我们通过对实信号使用函数 hilbert进行希尔伯特变换,实现了复正弦波的生成。希尔伯特变换在生成解析信号或实信号的复数表示时非常有用。

如欲深入了解希尔伯特变换,推荐参考基于信号处理理论的Oppenheim[2]。

    图7.2展示了代码7.1的输出结果。在图7.2(a)中,首先可观察到希尔伯特变换的输出与由我们的正弦(虚部)和余弦(实部)信号生成的连续波音调相同。在图7.2(b)中,可清晰看到基于相位差的估计方法准确地估算了所述信号的频率。在本脚本中,我们还使用了unwrap函数,以防止相位估计值被限制在±π之间。该估计是公式(7.3)中关系的直接应用。另一种方法是在频域中检查频率偏移,但通常仅适用于较大的偏移量。这很有意义,因为仅凭时域信号,特别是包含调制数据和噪声时,难以解释此类频率偏移。图7.3展示了原始信号与偏移信号的功率谱密度(PSD),其中

7.5.png

清晰地展示了这一观点。此处信号相对于原始信号保持10kHz的偏移,完全符合200MHz以上通信的Pluto软件定义无线电25ppm的规格。

    频率移动复数信号是(7.2)的简单应用,图7.3(b)即是这样生成的。示例MATLAB脚本见代码7.2。

演示了如何使用指数函数对复数信号进行频率偏移。

或者,也可直接使用正弦曲线。在所提供的脚本中,首先必须对信号进行上采样或过采样,如代码7.2中由SRRC滤波器所执行的操作。如此,频率偏移才能明显,因为主要信号能量被限制在带宽的一小部分内。

7.2-1.png

7.2 频偏补偿

设计无线接收机的方法多种多样,采用了多种不同的恢复技术和算法组合。本节我们将讨论

7.3-2.png

7.2-3.png

首先进行频率偏移补偿,然后继续完成剩余的同步任务。如第10.3节所述,Pluto软件定义无线电的振荡器标称精度为25PPM。在非授权频段,如2.4GHz发射信号时,无线电之间的最大频率偏移可达120kHz。鉴于该频率范围相当宽广,我们将开发一种分为粗频率校正和细频率校正的两阶段频率补偿技术。该设计具有优势,因为它能够缩短相对载波估计的收敛时间或锁定时间。

7.2.1 粗频率校正

文献中粗频率校正主要分为两类:

数据辅助(DA)和盲校正。DA技术利用相关结构,通常采用预同步码形式的接收信号知识,以估计载波偏移fo。尽管DA方法可以提供准确的估计,但其性能通常受限于预同步码的长度[3],而增加预同步码长度会降低系统吞吐量。

    另外,盲校正或非数据辅助(NDA)方法可在整个信号期间运行,因此在实际系统中,NDA算法有可能优于DA算法。这些粗频率校正技术通常采用开环方法以简化操作。本文将概述并实现一种基于NDA FFT的粗频率补偿技术。此处所应用的概念简单明了,基于图7.3中的初步观察,我们可以对符号偏移进行大致估算。然而,直接取FFT峰值并不十分准确,尤其当信号在频率上不对称时。为了补偿这一情况,我们将通过将信号自身提升至其调制阶数M次,去除调制成分。依据(7.2)中的模型,忽略噪声,可以观察到如下关系:

7.5-2.png

这会将偏移量放大至其原始位置的M倍,并使s(t)成为纯实数或纯虚数。因此,sM(t)项可以忽略,只剩指数项或基频。为估计该基频的位置,我们将对rM(t)进行FFT,并将能量最大的频点与该基频位置相关联。

    图7.4是利用MATLAB代码7.2生成的二进制相移键控信号,在偏移10kHz情况下的频率图示例。峰值如预期明显出现在该频率的两倍处。该频率估计可形式化地用单个方程表示,如文献[4]所示。

7.6.png

图7.4.png

其中K为FFT长度。式(7.6)中的估计被定义为粗略估计,因为所得fˆo只能是FFT产生的K个频点之一。然而,若需要,可以通过对多次估计中固定的FFT频点进行插值,从而提高频率估计的精度。信号每个FFT频点的频率分辨率为

7.7.png

因此,我们可以通过增加FFT大小或降低系统采样率来提升估计器性能。但是,采样率不得低于感兴趣信号的带宽。

Q.png

在MATLAB中实现该方法较为直接,为提高效率,K应始终取为2的幂,以便FFT高效运算。代码7.3中,我们针对每K个数据样本生成一个估计值,并对fft函数返回的频率排列进行补偿。使用该技术时,还应考虑系统的其他方面及该操作可能产生的影响。

从下游算法的角度,它们将观测到一个频率

code7.3.png

每K个样本进行一次校正。理想情况下,fˆo 保持不变,但若偏移接近FFT频点边界,则不太可能如此。导致信号频率相对于先前信号出现 ±fr的跳变。不幸的是,这些突变会干扰下游反馈算法,而这些算法难以应对所估计或校正信号频率或相位的突变。为解决此问题,我们采用两种主要策略。第一,可以利用滤波器对估计值进行时间平均,平滑变化过程。第二,仅在帧起始时应用此校正。因为偏移在合理长度的帧内相对稳定,单次测量即可在该时间段内保持较高准确度。该校正也被称为粗频率校正,因为其精度只能达到fr的范围,这限制了此类校正的间隔。

    然而,这种基于FFT的技术的缺点是需要大量数据才能获得合理的估计。该技术在发射机采用过采样及发射滤波器时,也会产生不纯净的频率成分。但诸如Luise [5]等其他技术是为突发式应用设计的,相比上述FFT方法所需的数据量更少。

遗憾的是,Luise方法是有偏估计,而FFT方法则是无偏估计。