YunSDR小课堂-时序同步(第80讲)

6.3 符号时序补偿

针对发射机与接收机之间的符号时序不匹配,存在多种校正方法。然而,在本章节中我们将探讨三种数字。

1.png

锁相环策略将采用与第7章节相同的方法,用于我们的载波恢复实现。选择这种时序恢复方法是因为它便于与我们未来的恢复方案集成,鲁棒性强,且算法复杂度适中。首先介绍一种基本的锁相环结构,该结构将用于推导我们的反馈时序校正设计。本节将围绕图6.11展开讨论,我们将逐步替换构成最终设计的各个模块,最终实现图6.12所示的设计。在此过程中,先从概念层面概述时序同步原理,随后逐个讲解各模块的设计。文中涉及的探测器包括零交叉探测器、Müller/Mueller探测器和Gardner探测器。但在Mengali [4]、Oerder [5] 等文献中,还有更多相关探测器可供参考。Rice [6] 提供了更深入的分析。

2.png

这些技术涉及纯模拟设计以及模拟与数字混合设计。本文将重点介绍MATLAB实现及相关算法结构特征。

6.3.1 锁相环

    我们采用的时序校正方法基于锁相环理论,是一种反馈闭环方法。该算法结构如图6.11所示,其核心机制是在误差信号驱动至零时实现锁定。

    锁相环存在多种设计与实现方案,本文列举四个基本组成模块,供时序校正及后续载波恢复章节中交替使用。这里展示的全数字锁相环(PLL)算法首先通过误差探测器(ED)测量接收样本中的某些偏移,如时序误差或相位误差,我们称之为误差信号e。 误差探测器的设计基于期望接收的星座/符号结构或序列本身的特性。接着,环路滤波器调节整个锁相环的动态特性。环路滤波器决定锁相环的工作范围、锁定时间以及阻尼性和响应速度。然后是校正生成器。校正生成器负责产生输入信号的校正信号,该信号将反馈至系统内部。最后是校正器,根据校正生成器的输出对输入信号进行调整。这些模块协同工作,最终应随着时间推移将e最小化,并持续适应环境或系统本身的变化。

    校正生成器、误差探测器和校正器均针对锁相环结构的特定用途设计,如时序恢复或载波恢复。然而,环路滤波器可以在不同设计间共享,前提是对其数值配置进行调整。在所有锁相环设计中,环路滤波器是最具挑战性的部分,但它为系统的自适应提供了最大的控制能力。此处我们采用比例-积分(PI)滤波器作为环路滤波器,其传递函数保持简洁:

3.png

其中g1和g2为可调节的增益。PI滤波器构成二阶锁相环,其传递函数仅包含单一极点;因此,分析相对简便。鉴于我们处理的是离散时间信号,采用z域表示更为合适:

4.png

其中G1=g1,G2=g2。式(6.5)中的分数部分可通过二阶滤波器良好表示。增益值(G1,G2)计算采用基于所选阻尼因子ζ和环路带宽的以下公式。

5.png

其中M是与输入信号相关的每符号样本数。注意,B环路是归一化频率,范围为B环路∈[0,1]。 关于ζ的选择:

6.png

其将决定锁相环的响应速度与稳定性。

6.3.2 反馈时序校正

    三种算法中使用的时序同步锁相环由四个主要模块组成:插值器、时序误差检测(TED)、环路滤波器及插值控制器。

    它们的交互和流程如图6.14所示。这些操作首先估计未知的偏移误差,按比例缩放该误差,并对未来待纠正的符号进行更新。为了对时序误差提供必要的视角,我们考虑图6.13中展示的眼图。该眼图经过二十倍上采样,因此可以更细致地检查信号转换,观察到其平滑特性,这与图6.6不同。在最优情况下,我们选择在眼图最宽开口的深灰色时刻采样输入信号。然而,存在一个未知的分数延迟τ,会导致采样时刻偏移。该偏移采样时刻由浅灰色区域表示。

为解决此问题,接收信号通常不会被完全抽取,

7.png

为接收机提供每符号多个样本(但情况并非总是如此)。因此,若如黑色标记所示跨越最优采样位置,则可通过这些点插值以获得所需的采样周期。此插值造成采样上的分数延迟,实质上将采样点移至眼图中的新位置。由于τ未知,必须对该插值正确加权,避免校正出现超调或欠调。此方法类似于第6.2节末提出的思想。

    最后,控制输出时间点或从输入数据采样的功能由插值器控制块实现,其频率为符号率。当该校正环路正确实现时,将使时钟时序不匹配的输入信号的眼图开启。然而,如图6.4和6.9所示,星座图也是评估时序校正的有用工具。

    我们将首先从零交叉(ZC)方法的角度讨论图6.12中块的具体细节,因为该方法最为直观易懂。随后我们将对其他替代方法进行扩展说明。顾名思义,当采样位置之一处于零交叉点时,ZC将产生误差信号e(n)为零。ZC要求每符号至少两个样本数,因此另一个采样位置会出现在接近或达到最优的位置。

8.png

中, Re和Im分别提取样本的实部和虚部,sgn用于处理样本的符号(−1或1)。 在(6.9)中,重要的是要注意这些索引是相对于样本而言,而非符号,具体来说, y(nTs+τ)只是插值器滤波器的最新输出。观察(6.9),它首先给出了相对于sgn运算的误差方向,补偿所需的偏移由中点确定。同相和正交部分独立工作,这是理想的。

    误差计算完成后,将传递给环路滤波器,我们可完全借用第6.3.1节的内容。此处适用相同原理,且我们提供的方程形式更为简洁。

9.png

 这里BLoop是归一化环路带宽,ζ是阻尼因子,N是每符号样本数,且GD是探测器增益。新的变量GD为校正提供了额外的步长缩放。环路滤波器的目标依然是维持校正速率的稳定性。该滤波器可通过一个简单的线性方程实现:

10.png

也可以用二阶滤波器实现。

    接下来要考虑的块是插值控制器,它负责为插值器提供必要的信号。相较于图6.11中的原始锁相环结构,插值控制器取代了校正生成器的位置。由于插值器负责对信号进行分数延迟,因此控制器必须提供该信息,通常还包括起始插值样本。这里所指的起始插值样本是跨越范围左侧的样本,如图6.13中左数第二个黑色采样位置所示。此插值控制器通过基于计数器的机制,有效地在适当符号位置触发。在这些触发位置,插值器接收信号并更新,同时系统输出一个符号。

    基于计数器的控制器的核心思想是维持更新插值器之间特定的触发间隔,平均更新周期等于输入流符号率N的采样数。图6.14展示了插值控制器的逻辑流程图,以便更清晰地理解其复杂流程。

如果定时最优且环路滤波器输出g(n)为零,我们期望每N个采样产生一次触发信号。因此,计数器的加权值或减量应为

11.png

使得计数器c(n)在模1减法下的最大值为1,其中模数每N次减法发生回绕。该模计数器的更新定义为

12.png

13.png

我们基于这些模数回绕发生的时刻,确定一个触发条件,并在计数器更新之前进行检查。我们可以很容易地在更新之前检查该条件,例如

14.png

该触发信号用于定义新符号的起始;

因此,也可用于确保我们在正确的样本上估计误差。当触发发生时,我们将更新µ(n),即对插值点与最优采样位置间隙的估计值。该更新是新计数步长d(n)与当前计数c(n)的函数:

15.png

该µ将被传递至我们的插值器,用以更新其所施加的延迟。

    我们需要避免执行跨越多个符号的时序估计,因为这将导致误差信号和系统更新的不准确。

    通过在TED块中加入条件约束,我们可以规避这一问题。图6.15中详细展示了TED块的附加结构与逻辑,以辅助识别如何高效利用触发信号。根据该TED结构,只有在触发发生时,输出误差e才可能为非零值。由图6.14中TED模块的下游结构可知,由于采用了PI环路滤波器,只有非零输入才能更新输出,进而调整与触发相关的周期d。当系统进入稳态且PLL锁定时,TED输出可在每N个样本间隔出现非零值。

    时序恢复的最后一部分是我们尚未讨论的插值器本身。关于图6.11中原有的锁相环结构,插值器取代了校正器的位置。这里的插值仅为线性插值

16.png

当前输入与过去输入的组合y,本质上可视为滤波器。然而,实现任意延迟τ∈[0, ...,Ts]的有限脉冲响应(FIR)滤波器不可行[7]。 理想插值无限脉冲响应(IIR)滤波器的实现方案虽存在,但其抽头计算在实际系统中不可行[8]。 因此,我们将采用称为分段多项式滤波器(PPF)的自适应有限脉冲响应低通滤波器实现方法[6]。PPF仅能提供多项式阶数的偏移估计。也存在诸如多相滤波器组设计的替代实现方式,但根据所需分辨率,相位数可能会很大。然而,其实现过程可以非常简便[9]。

    PPF的优点在于,通过确定滤波器阶数,我们可以轻松控制插值的形式,该阶数最多相当于用于估计基础接收信号的多项式阶数。此处将采用二阶(即二次)插值,需使用一个四抽头滤波器。插值器输出的一般形式为

17.png

其中hk为时刻k的滤波器系数,依据文献[10]确定:

18.png

其中α=0.5,µ(k)与分数延迟相关,由插值器控制块提供,该控制块将符号周期Ts与估计的偏移量相关联。因此,我们可以估计真实延迟τ为

19.png

  无任何偏移(µ=0)时,插值器在零交叉实现中表现为两采样延迟或单符号延迟。我们可以扩展PPF以利用更多样本,进而实现三次及更高阶的插值,但其实现会更加复杂。在确定插值器的实现方式及所需自由度以准确捕捉波形时,应考虑底层波形特性。

    采用四个样本的二次形式设计可以视为不规则,因为抽头的阶数未达到三阶。然而,奇数长度实现(使用奇数个样本)并不理想,因为我们旨在求取两个已给样本之间的值。考虑到图6.13中眼图的曲率,我们也不倾向于采用两个样本的实现。

    在MATLAB中,我们可用几行代码实现该插值器,代码依赖于输入数据y及插值控制器最后输出µ,详见代码6.2。

20.png

基于该输出filtOut,我们可以根据零交叉方程(6.9)驱动定时误差信号检测器(TED),以生成用于环路滤波器和插值控制器的误差信号。依据图6.14,该TED计算将基于插值控制器的触发信号进行。还会检查历史触发信号,防止定时环路输出速度超过符号率。该逻辑和TED测量已在代码6.3中实现。

    从第13行到22行,向TED添加了额外逻辑以管理符号填充。符号填充本质上是强制同步器例程产生额外的触发信号。当时钟偏差使插值器在目标符号上略有跨越时,这是必要的。为补偿这一点,我们必须插入额外的输出符号。注意,在系统输出端,采样率将等于符号率,当N>1时,信号实际上被降采样。

    在TED之后是环路滤波器,该滤波器已在第6.3.1节中讨论。由于其结构简单,可直接实现,无需滤波器对象。然而,使用二阶节滤波器对象(如代码 6.4所示)可以使代码更为紧凑。

    最后,我们可以在插值器控制块中评估滤波后的误差。在稳态条件下,该块应在每N个输入样本时产生一次触发。该触发信号可视为有效输出信号,与整个算法的输出数据一致。在此编码上下文中,当Trigger在时刻n为真时,应处理插值滤波器在输入n+1处的输出。

21.png

时序同步器的整体设计可能相当复杂,且实现中可能存在不同的相对速率。因此,我们提供了表6.1作为推荐实现的指导。这些速率符合

22.png

如图6.14所示的触发实现。当插值器的输出样本与触发信号对齐时,该系统将产生每符号一个样本(N)。

23.png

文章来源:威视锐科技