原创 【博客大赛】GPS中载波环路鉴相器的设计

2014-5-11 15:24 2821 14 16 分类: 模拟

GPS中载波环路鉴相器

载波环路鉴相器是载波跟踪环中的核心部分,包括模拟部分和数字部分的处理,其实现具有一定的难度,但是其鉴相范围和精度直接决定着GPS接收机的性能。很多模拟部分的信号必须经过A-D转换,然后用数字信号进行近似求职,而鉴相范围和精度直接决定GPS的性能问题。表1给出了几种科斯塔斯环鉴相器算法。

表1 常用的Costas环鉴相器

鉴相器表达式

相位差输出

特性的描述

20140511151228190001.gif

20140511151234923002.gif

当信噪比较高时,鉴相性能接近最佳,且斜率和信号的幅度为正比例关系,需要较少的运算量。

20140511151240415003.gif

20140511151247941004.gif

当信噪比较低时,鉴相性能接近最佳,且斜率和信号幅度的平方为正比例关系,需要适中的运算量。

20140511151253483005.gif

20140511151300883006.gif

反正切,无论信噪比高还是低,鉴相性能都最佳,且斜率与信号的幅度没有关系,需要的运算量最高。

在Costas环鉴相器的算法中,arctan鉴相器是最精确的,但同时也是非常耗时的,其中arctan鉴相器的鉴相范围为[-90°,90°]。因此,本文采用arctan鉴相器可以获得最好的跟踪效果。下面将详细介绍arctan鉴相器的实现方法。

实现arctan鉴相器的方法有很多,例如:多项式近似法、查找表法、逐位法及查找表与多项式结合法等。其中,查找表法虽然简单,但需要消耗大量的硬件资源;多项式近似法降低了可处理数据的范围,且需要消耗相当多的乘法器资源;查找表与多项式结合法一般需要设计专用的加法器和乘法器,这样会增加电路的规模;逐位法容易简单,且可以通过迭代的次数来控制精度。而CORDIC算法本身就是一种逐位逼近算法,且具有硬件实现简单、精度灵活可调、速度快等优点。因此,本文通过CORDIC算法来完成载波环路鉴相器的设计。

CORDIC算法又称坐标旋转数字计算机算法,是一种计算广义矢量旋转的迭代方法。它主要用于对数、指数、双曲函数及三角函数的运算。该算法仅需要简单的加减和移位运算就可以完成矢量的旋转和定向运算,从而避免了乘法、反三角函数和开方等复杂的运算。本文采用流水线方式来实现载波环路鉴相器的功能。流水线的CORDIC结构虽然占用较多的硬件资源,但是它可以提高数据的吞吐量,从而有利于提高跟踪环路的实时性。

假设直角坐标系中存在一个矢量(20140511151306374007.gif,20140511151311499008.gif),将其旋转20140511151318450009.gif角后得到一个新的矢量(20140511151327798010.gif,20140511151332916011.gif),见式(2)及式(3)。

20140511151338507012.gif                            (2)

20140511151344961013.gif                            (3)

将式(2)和式(3)转换为矩阵的形式,见式(4)。

20140511151350474014.gif             (4)

如果20140511151318450009.gif是由n个20140511151356503015.gif叠加而成,那么20140511151318450009.gif可以表示成式(5)。

20140511151401572016.gif                                (5)

为了有利于硬件的数字实现,将式(4)转变成式(6)。

20140511151408278017.gif            (6)

其中,K见式(7),其值最终收敛于0.6073。

20140511151414450018.gif                       (7)

因此,旋转算法中需要一个调整增益,其值为收敛值的倒数。从式(6)中可以看出,每一次的迭代旋转可以表示成式(8)。

20140511151422990019.gif                       (8)

定义每一次迭代后的角度累加和见式(9)。

20140511151428627020.gif                            (9)

在此将式(3-8)中的乘法因子作为常数处理,这样综合式(8)和式(9),即可得到式(10)。

20140511151433866021.gif                          (10)

在CORDIC算法的矢量模式下,将矢量进行多次旋转,使之尽可能地接近x轴。其中,第i次的旋转角度为20140511151440967022.gif,旋转方向由20140511151447467023.gif的符号决定。如果第i次旋转后的矢量坐标是(20140511151455512024.gif,20140511151447467023.gif),旋转角度的总和是20140511151501112025.gif[30]。其中,当20140511151447467023.gif>0时,20140511151508304026.gif=1;当20140511151447467023.gif<0时,20140511151508304026.gif=-1。最后,直至20140511151447467023.gif趋向于0为止。上述迭代的最终结果分别见式(11)、式(12)及式(13)。

20140511151516206027.gif                           (11)

20140511151523624028.gif                                   (12)

20140511151530923029.gif                            (13)

如果令式(13)中的20140511151538842030.gif为0,则20140511151545446031.gif见式(14)。

20140511151551493032.gif                              (14)

当迭代结束时,20140511151545446031.gif的值为初始输入值20140511151306374007.gif20140511151311499008.gif的反正切值。CORDIC算法的流水线结构如图14所示。

20140511151558524033.gif

图14 CORDIC算法的流水线结构

基于CORDIC算法的载波环路鉴相器的仿真波形如图15所示:

20140511151604462034.gif

        图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跟踪环路鉴相的要求
PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

sunyzz 2014-5-18 11:33

你分析的很到位啊,感觉在你面前很低级的感觉!

fanyan_tll_621621837 2014-5-18 09:49

经典环路到处都有,没任何新意写给自己看的而已。要设计出好的跟踪环路首先要明确设计指标,对一般民用GPS的导航信号其动态应力小,带宽固定而且信息速率低,环路设计上没多大难点。然后要有套可供参考的仿真平台,这有助于提高算法的开发效率和性能评估。最后设计实现都是围绕资源和性能指标来权衡方案的利弊。只要搞清楚了环路的设计性能,比如环路收敛时间,稳态误差,环路带宽等等,就可以做到理论指导实践,仿真平台才能发挥提高效率和性能评估的用途。这些点才是环路设计的精髓和难点。别急着实现先写好设计文档是关键。
相关推荐阅读
sunyzz 2017-08-19 10:38
【博客大赛】AVALON总线介绍
1、AVALON总线简介Avalon总线是一种协议较为简单的片内总线,是ALTERA公司定义的片上互联总线,该总线可以将诸如NIOS II的CPU与其他外设连接起来,进而进行数据交换。AVALON总线...
sunyzz 2017-08-17 21:36
【博客大赛】不要轻易做职场滥好人
小A毕业于国内普通高校,但是他聪明,勤奋,能干,动手能力强,可是即便有这些优点也不能让小A轻轻松松找到一份好工作。这不,去年9月份小A好不容易找到一份工作,然后立马就入职了C公司,生怕C公司过两天不要...
sunyzz 2017-08-16 21:15
【博客大赛】IC设计低功耗技术四
五:工艺层面的降低功耗前面几节都是在讨论设计人员如何在前期阶段,中期阶段降低功耗,涉及到软件层面的,硬件层面的,这些技巧基本都是前辈总结出来的,或者根据理论推论出来的。但是到了后期,想降低功耗基本就要...
sunyzz 2017-08-14 22:35
【博客大赛】IC设计之低功耗技术三
四:RTL(寄存器传输)级的低功耗设计4.1 状态机的设计状态机编码中一般有两种方式,普通的二进制编码,特殊的格雷码,格雷码的特点是两个数据之间的跳变时只会有一个bit在toggle,显然比起多bit...
sunyzz 2017-08-12 16:51
【博客大赛】IC设计之低功耗技术二
三、架构层面的降低功耗系统的实现有很多的方式,每种方式对功耗的影响都不相同,本节主要介绍架构对功耗的影响。3.1 高级门口电路 在同步电路系统中,时钟占据了大部分的动态功耗,因而在一些情况下,如果有些...
sunyzz 2017-08-12 10:37
【博客大赛】IC 设计之低功耗技术一
一、前言随着计算机技术和微电子技术的迅速发展,嵌入式系统应用领域越来越广泛。节能是全球化的热潮,如计算机里的许多芯片过去用5V供电,现在用3.3V,1.8V,甚至更低的电压。目前的低功耗设计主要从芯片...
我要评论
2
14
关闭 站长推荐上一条 /4 下一条