一、前言
Gardner时钟恢复算法是数字通信中的一种同步技术。当两个设备一起工作并对时间有精确要求时,就需要在它们之间进行同步。同步是在两个设备或系统之间规定一个共同的时间参考,是通信系统中非常重要的技术。一般情况下,通信的收、发双方不在同一地方,要使它们能步调一致地协调工作,就需要同步系统来保证。
一般来讲,数字通信系统中的同步技术,按功能划分主要有载波同步、位同步、群同步和网同步。Gardner时钟恢复算法则属于位同步。
位同步又称为码元同步,是数字通信系统特有的一种同步,无论是基带传输还是频带传输都需要位同步。在数字通信系统中,任何消息都是通过一连串码元序列传送的,那接收端必须知道每个码元的起始位置,这就要求接收端必须提供一个作为取样判决用的位定时脉冲序列。那么把提取这种定时脉冲序列的过程称为位同步,只有定时脉冲正确,才谈得上正确的取样判决,因此位同步是正确取样判决的基础。
图1 相位偏差示意图
图2 频率偏差示意图
如果发送端和接收端没有同步,则会出现相位偏差或频率偏差。相位偏差是指接收机知道隔多长采一个点,但不知道从什么时候开始采。而频率偏差是指接收端采样的间隔与原来的不一样,会出现周期性地插入一个采样或丢失一个采样的情况。
那如何实现同步呢?同步技术的实现方法主要有两种,一种是外同步,一种是内同步。
这里介绍一下外同步法。外同步法是指由发送端发送专门的同步信息(常被称为导频),接收端把这个导频提取出来作为同步信号的方法。由于导频本身不包含所要传送的信息,对频率和功率有限制,要求导频尽可能小地影响信息传送,且便于提取同步信息。外同步法主要在载波同步以及位同步系统中应用。
在采用外同步法的载波同步系统中,对导频有如下要求:①为避免信号与导频的相互干扰,要在信号频谱为零的位置插入;②采用正交插入,避免对信号解调产生影响;③尽可能插入便于提取的载频。
位同步的外同步法有插入位定时导频法和包络调制法。采用插入位定时导频方法时,插入的导频必须在基带信号的频谱零点插入,且用反向相消来消除对取样判决的影响。
通过上面的介绍,你明白了位同步是什么,以及同步的技术的两种实现方法。
二、Gardner时钟恢复算法
前面只讲到了外同步的实现方法,那如何实现位同步呢?
位同步技术也是主要分为两种:
(1)传统锁相环技术:利用反馈控制原理改变时钟的频率和相位,从而实现符号同步的调制。原理简单,但存在本地时钟频率要求较高,不符合宽带速率范围的基带码元同步等不足。
(2)插值算法同步技术:不需要改变本地时钟即可实现位同步时刻调整,通过内插器得出最佳采样点的相位和值。实现框图如下图所示。
图3 基于插值算法的位同步环路
图中的插值滤波器其实是一种插值算法,作用是根据输入的信号,通过插值获得最佳时刻的采样值信号,这里的插值不是指在原有的数据上插入其他点,而是通过原来的数据点算出最佳采样时刻的值,这些值称为插值。
由于接收端的采样时钟与发送端不同步,因此接收端时钟采样点的值可能没有所需的最佳采样值,但图中的插值滤波器可以根据采样信号值,以及数控振荡器送出的两个参数,通过插值算法获取最佳采样值;定时误差检测器作用是检测本地时钟采样时刻与最佳采样时刻之间的相位差;检测出的相位差经过环路滤波器后,送到数控振荡器产生下一个内插值。
换句话说,根据采样定理,当采样速率大于或等于两倍信号带宽时,信号所有样点值都可以由采样值恢复出来。为了实现正常解调,需要采样值位于码元的“中点”,即判决点和码元转换点。所以只要知道定时相位误差,就可以计算出最佳判决点的采样值,从而实现码元同步,这也就是为什么需要同步的原因。
现在重新回到图3中,x(t)是接收机接收到的信号,x(mTs)是由于收发端没能正确时钟同步而在非最佳采样时刻采样的值。后面的环形结构,就是时钟恢复算法的框图。
1、插值滤波器
插值滤波器实际上实现的是速率转换的功能,也就是如何通过非最佳采样时刻的采样值x(mTs)得到我希望的最佳采样时刻的采样值y(kTi). 这相当于一个信号通过系统获得输出的过程,这个过程的计算公式为:
(1)
由上面这个公式可知,若已知输入序列x(m),内插滤波器的冲击相应hI(t)、输入信号的采样时间Ts,以及输出的采样时间Ti,那么就可以利用此公式计算出内插点。简单分析一下,容易知道关键问题是找到输出的采样时刻Ti和滤波器冲击响应hI(t).
那么经过数学运算及变换,式(1)可以重新写为:
(2)
也就是把输出的采样时间Ti分解成了另外两个参数mk和uk。因此,问题就转变为设法得到这两个参数的值。这是插值滤波器的原理,那还要找到可实现这种功能的结构以及相应的滤波器系数。而使用最广泛的是具有Farrow结构的立方插值器。
图4 基于Farrow结构的插值滤波器
Farrow结构的插值器是一个类似于FIR结构的滤波器,计算一个插值只需要一个符号周期内的4个采样点,或者说,输入采样信号只需要为符号速率的4倍。
2、定时误差检测
定时误差检测的作用是检测出环路的位定时误差,类似于锁相环路中的鉴相器。在基于反馈型的定时恢复算法中,Gardner提出的定时误差检测器,由于其结构简单,且能独立于未知载波相位进行的优点,得到了广泛的应用。Gardner定时误差算法通常用于同步的二进制基带信号或BPSK、QPSK信号,通过简单的改进就可以应用于QAM等多进制基带信号中。
有人可能会问,都还没检测出定时误差,一开始如何用uk和mk这两个参数做插值呢?这是一个环路,系统最初都会有一个初始化的设定值,这个值一般是经验值。由于环路的存在,循环数圈之后,便会趋于稳定,这就是环路的魅力所在。
图5 Gardner定时误差检测
所谓Gardner算法,就是指定时误差检测这个环节。具体来说,图5给出的采样点定时关系所示,对符号I(n)的两次采样时刻分别为当前符号I(n)时刻以及I(n)与相邻符合I(n-1)间的中间时刻I(n-1/2).
显然地,当相邻两个符号I(n)和I(n-1)间存在跳变时,若不存在定时误差(如图5(a)所示),相邻符号中间时刻采样I(n-1/2)的幅值为零;若存在定时误差(如图5(b)(c)所示),无论超前或滞后,相邻符号中间时刻的采样I(n-1/2)的幅值都不为零。因此通过中间时刻采样值的幅值可简便地判断是否存在定时误差以及采样时刻相比对准时刻是超前[I(n-1/2)>0]还是滞后[I(n-1/2)<0]。
(3)
此外,中间时刻采样值I(n-1/2)幅值的大小也在一定程度上反应了定时误差的大小,可以通过监测前后两个存在跳变现象的符号采样值I(n)和I(n-1)间的幅度插值来确定原始信号的斜率信息,将所得斜率信息与中间时刻采样值I(n-1/2)相乘即可得到最终的定时误差大小。
3、环路滤波器
定时误差uk得到之后,应该根据uk做多大程度的调整呢?这就涉及到整个时钟恢复环路中增益参数的设定问题了。
图6 环路滤波器的z域图
假设输入的定时误差timing error,简称te(k),output是w(k+1)。那么由图6可以得到:
(4)
环路滤波器可以完成增益参数的设定问题。其中C1,C2就是考虑了系统环路而得到的参数,这个器件的技术背景在此不作过多介绍,只需知道通过这个器件就可以将uk转化为可以使用的定时误差了。
4、数控振荡器
数控振荡器NCO相当于一个相位寄存器,它的作用是溢出产生时钟,即确定内插基点mk,同时完成分数间隔uk的计算,将这两个参数传递给插值滤波器进行计算。其差分方程为:
(5)
η(m)是第m个工作时钟的NCO寄存器的内容,w(m)是NCO的控制字,两者都是正小数。
图7 数控振荡器工作原理图
从上图可得,
(6)
总结来说,首先给η(1)和 w ( 1 ) 赋初始值,然后得到插值的位置以及相应的时钟定时误差,将这个误差通过环路滤波器后,转化为对w ( 2 ) 的更新,所以w的计数比te的计数大一,随后数控振荡器又使得te发生变化。
周而复始,不断进行反馈,最后使得整个环路趋于稳定,由此,我们便解决了最初的问题,实现了时钟恢复。
三、参考资料
1、Gardner的三篇论文:
(1)《Interpolation in Digital Modems-Part I: Fundamentals 》
(2)《Interpolation in Digital Modems-Part II: Implementation and Performance 》
(3)《A BPSK/QPSK Timing-Error Detector for Sampled Receivers 》
2、杜勇的《数字通信同步技术的MATLAB与FPGA实现——Xinlinx/VHDL版》
3、余建军的《基于数字信号处理的相干光通信技术》
最后,欢迎读者朋友就相关技术问题与我交流,一起学习,共同进步。