热度 15
2014-5-11 15:24
2785 次阅读|
2 个评论
GPS中载波环路鉴相器 载波环路鉴相器是载波跟踪环中的核心部分,包括模拟部分和数字部分的处理,其实现具有一定的难度,但是其鉴相范围和精度直接决定着GPS接收机的性能。很多模拟部分的信号必须经过A-D转换,然后用数字信号进行近似求职,而鉴相范围和精度直接决定GPS的性能问题。表1给出了几种科斯塔斯环鉴相器算法。 表1 常用的Costas环鉴相器 鉴相器表达式 相位差输出 特性的描述 当信噪比较高时,鉴相性能接近最佳,且斜率和信号的幅度为正比例关系,需要较少的运算量。 当信噪比较低时,鉴相性能接近最佳,且斜率和信号幅度的平方为正比例关系,需要适中的运算量。 反正切,无论信噪比高还是低,鉴相性能都最佳,且斜率与信号的幅度没有关系,需要的运算量最高。 在Costas环鉴相器的算法中,arctan鉴相器是最精确的,但同时也是非常耗时的,其中arctan鉴相器的鉴相范围为 。因此,本文采用arctan鉴相器可以获得最好的跟踪效果。下面将详细介绍arctan鉴相器的实现方法。 实现arctan鉴相器的方法有很多,例如:多项式近似法、查找表法、逐位法及查找表与多项式结合法等。其中,查找表法虽然简单,但需要消耗大量的硬件资源;多项式近似法降低了可处理数据的范围,且需要消耗相当多的乘法器资源;查找表与多项式结合法一般需要设计专用的加法器和乘法器,这样会增加电路的规模;逐位法容易简单,且可以通过迭代的次数来控制精度。而CORDIC算法本身就是一种逐位逼近算法,且具有硬件实现简单、精度灵活可调、速度快等优点。因此,本文通过CORDIC算法来完成载波环路鉴相器的设计。 CORDIC算法又称坐标旋转数字计算机算法,是一种计算广义矢量旋转的迭代方法。它主要用于对数、指数、双曲函数及三角函数的运算。该算法仅需要简单的加减和移位运算就可以完成矢量的旋转和定向运算,从而避免了乘法、反三角函数和开方等复杂的运算。本文采用流水线方式来实现载波环路鉴相器的功能。流水线的CORDIC结构虽然占用较多的硬件资源,但是它可以提高数据的吞吐量,从而有利于提高跟踪环路的实时性。 假设直角坐标系中存在一个矢量( , ),将其旋转 角后得到一个新的矢量( , ),见式(2)及式(3)。 (2) (3) 将式(2)和式(3)转换为矩阵的形式,见式(4)。 (4) 如果 是由n个 叠加而成,那么 可以表示成式(5)。 (5) 为了有利于硬件的数字实现,将式(4)转变成式(6)。 (6) 其中,K见式(7),其值最终收敛于0.6073。 (7) 因此,旋转算法中需要一个调整增益,其值为收敛值的倒数。从式(6)中可以看出,每一次的迭代旋转可以表示成式(8)。 (8) 定义每一次迭代后的角度累加和见式(9)。 (9) 在此将式(3-8)中的乘法因子作为常数处理,这样综合式(8)和式(9),即可得到式(10)。 (10) 在CORDIC算法的矢量模式下,将矢量进行多次旋转,使之尽可能地接近x轴。其中,第i次的旋转角度为 ,旋转方向由 的符号决定。如果第i次旋转后的矢量坐标是( , ),旋转角度的总和是 。其中,当 0时, =1;当 0时, =-1。最后,直至 趋向于0为止。上述迭代的最终结果分别见式(11)、式(12)及式(13)。 (11) (12) (13) 如果令式(13)中的 为0,则 见式(14)。 (14) 当迭代结束时, 的值为初始输入值 及 的反正切值。CORDIC算法的流水线结构如图14所示。 图14 CORDIC算法的流水线结构 基于CORDIC算法的载波环路鉴相器的仿真波形如图15所示: 图15 基于CORDIC算法的载波环路鉴相器的仿真波形 从上图可以看出,discri_en为载波环路鉴相器的使能信号;I_P和Q_P为载波环路鉴相器的输入信号,其位宽为21bit;arctan_out为载波环路鉴相器的输出信号,且位宽为9bit。其中,输出信号为量化值,且最高位为符号位;clk8184为16.368MHz时钟频率的五倍频,其实现方式是调用了PLL的IP核。当discri_en有效时,载波环路鉴相器进行鉴相运算,其工作频率为81.84MHz。图中输入信号I_P为67091,Q_P为-44472,输出信号arctan_out为-24,将其转换成弧度值为0.58875,而准确的弧度值为0.58536,由此可得其绝对误差为0.0039,从而满足GPS跟踪环路鉴相的要求