基于数控振荡器在FPGA中实现伪码跟踪算法的改进设计

可编程逻辑

1366人已加入

描述

1、 引言

直接序列扩频技术在通信、导航、测控等领域得到了广泛的研究和应用。扩频调制系统要求在收发两端用完全相同的伪随机码进行扩频和解扩,因此接收机本地参考伪码序列与接收码序列之间的精确同步是对期望信号实现解扩的关键,伪码相位的跟踪性能直接影响着扩频测距的精度。码相位跟踪通常采用延迟锁定环方法,即利用本地发生器产生相位超前、滞后码信号,与输入的扩频信号相关,对相关结果进行比较,获得码相位误差信号,以控制码NCO产生与输入码相位一致的本地信号。常用延迟锁定有相干型DLL、非相干型DLL。随着大规模集成电路的快速发展,非相干型DLL在全数字伪码跟踪环中的应用日益广泛。文献中对非相干跟踪环进行了深入的研究,提出了与常规方法相比更适合数字实现的伪码跟踪环,其结构如图1所示。

振荡器

图1 GPS信号接收的码跟踪环结构

在图1所示跟踪环路结构中,为了使码跟踪环同时具有大跟踪范围和高跟踪精度,可以采用多个具有不同相关间距的DLL,初始跟踪采用宽相关间距,稳定跟踪后为了提高精度采用窄相关间距。上述改善码跟踪环性能的方法,都要求产生多个不同延时关系的伪码序列。

2 、常规方法

码跟踪环中使用的超前、滞后伪码发生器多采用移位寄存器的方式产生不同延时的伪码序列。不同伪码序列的最小延时间隔由移位寄存器的最大工作时钟决定。直扩信号接收机的一个基本准则就是采样率不能是伪码速率的整数倍,不同伪码序列间的延时基本由采样率决定。为了得到较窄的延时间隔,不得不对采样频率进行倍频作为移位寄存器的工作时钟。

采用移位寄存器生成伪码序列的方式,延时问隔的修改、调整很不灵活。当伪码速率较高(》80Mcps)时,移位寄存器的移位时钟必然受列FPGA器件的最大一1:作能力(Virtex5最高时钟频率为550MHz)的限制,无法满足0.1chip延时的窄相关的要求。

3、 新的延时控制方法

3.1 算法原理

在实现数字锁相环时。普遍运用数控振荡器(NCO)代替模拟器件VCO,NCO易于在FPGA中实现。NCO采用DDS原理设计,其工作过程如下:相位累加器在NCO时钟的作用下以频率控制字为步长在N位累加器中作加法运算,其中,码累加器的低L位对应着一个码片,取结果相位码的高位去寻址查找表,输出查找表存储的数据。借鉴数控NCO思想,本文提出一种新型全数字化伪码序列产生方法,只需改变相位累加器中初始相位的设置即可完成任意精度的延时控制。降低了对工作时钟频率的要求,而且易于在FPGA、CPLD等数字器件中实现,为伪码跟踪算法的改进提供了有力保障。

遵循NCO算法原理,伪码序列产生方法的逻辑框图如图2所示,主要由频率字寄存器、相位累加器以及伪码存储表组成。

振荡器

图2新型伪码序列产生方法逻辑框图

设码跟踪环滤波器输入更新的码频率为fc,则输出码频率字:fw=Kf x fc其中,转换系数Kf=2L/f3,f3为相位累加器的参考时钟。当设定所需的初始相位θ0后,在f3的上升沿以θ0为初值进行循环累加:

振荡器

其中,θk为相位累加器进行第K次累加后输出的伪码相位。

假设伪码序列长度为1023,则要查询一个完整的伪码周期,查表地址至少要取1O位(210=1024),因此取累加器的高10位作为码表的地址。控制伪码存储表输出伪码序列。当相位累加器累加完一个周期,为保证前后两周期的伪码序列相位连续,可按式(3)进行取模运算。

振荡器

至此完成了伪码序列产生的整个过程。下面着重介绍通过相位累加器中初始相位的不同来得到不同延时的伪码序列

3.2 不同延时序列的产生

根据上述分析可知累加器的2L对应一个伪码码片,因此,通过对相位累加器设置不同的初值便可得到需要的伪码延时序列。例如,为了提高码跟踪环的跟踪范围,在初始跟踪时选择1/2码片的延时间隔;锁定后为了提高跟踪精度,采用1/4码片的延时间隔,采用本文方法得到的再生伪码发生器(取N=42)如图3所示。

振荡器

图3不同延时伪码序列产生方法流程图

图3中,通过42位累加器模1023x232来实现对伪码序列的输出控制,232对应一个伪码码片。1023个伪码码片按顺序存储组成码表。用42位累加器的高10位作为码表的地址,查表输出对应的伪码序列。不同延时的伪码序列通过对多个伪码累加器设置不同的初值来区别。初值为0的是滞后1/2码片的伪码序列,即滞后码片最大的伪码序列;设置初值为230的是滞后1/4码片的伪码序列;设置初值为231的是即时伪码序列;设置初值为231+230的是超前1/4码片的伪码序列;设置初值232为超前1/2码片的伪码序列。再生伪码周期时钟通过判断伪码序列的码片来产生,对即时伪码支路模1023x232的结果进行判断,伪码地址对应起始位时输出高电平,其他时刻输出低电平,如此产生再准伪码周期时钟。采用这种方法可以方便实现各种延时的伪码序列.而且延时精度最高达到1/232码片。可以灵活生成不同码片延时的超前、滞后伪码序列。

4、 设计实现及仿真验证

4.1 FPGA设计实现

依据图4所示逻辑框图的结构,利用Xilinx公司的ISE设计软件,采用自顶向下的模块化设计方法,用VHDL对伪码序列产生方法中各部分分别进行编程设计,然后用ModelSim对该模块做综合仿真。最终得出如图4所示结果。

振荡器

图4基于VHDL的仿真波形图

其中,1_1_2_phase、1_1_4_phase、pm_phase、e_1_4_phase、e_l_2_phaae分别表示滞后、即时和超前伪码所对应的伪码相位;l_l_2_code、l_1_4_code、pm_code、e_l_4_code、e_l_2_code分别表示生成的滞后、即时和超前的伪码序列。

以在xc4vsx35—12ff668中的实现为例,经仿真发现,本模块消耗Slice资源242,占整个FPGA全部Slice资源的2%,消耗4 input LuTs资源393,仅占l%,消耗较小,复杂度低,易于在FPGA、CPLD等数字器件中实现。

4.2 MATLAB仿真验证

设置仿真参数如下:采样率为55MHz,码速率为10.23Mcps。在不同载噪比情况下,对二阶码跟踪环分别采用常规移位寄存器方法和本文方法进行Matlab仿真。在不考虑多普勒频率的情况下,统计码跟踪环的均方根误差,结果如图5所示。结果表明本文提出的方法能够保证F码跟踪环的性能。

振荡器

图5本文方法和常规方法的码跟踪环跟踪误差对比

5 、结束语

本文提出的方法已应用于某空间测控系统,该方法采用类似NCO的方式控制输出伪码序列,通过初始相位的设置产生不同延时的伪码序列,方便进行窄相关的调整;而且本方法对单个累加模块和码表进行复制即可得到多个伪码延时序列,方便完成不同码跟踪环的算法。实践证明,它可以实现任意精度的窄相关延R寸要求,适用范围广。

本文的创新点:提出一种新型基于FPGA的伪码序列产生方法,可产生不同延时的伪码序列。突破了采样率的限制,可满足不同码跟踪环算法的要求。通过设计实现,表明了该方法所耗资源较低,仿真验证了采用该方法的伪码跟踪环路跟踪性良好。

责任编辑:gt

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分