中国科技核心期刊      中国指挥与控制学会会刊     军事装备类重点期刊
Engineering & Application

FPGA Implementation of Modified Delay Locked Loop Tracking System

  • WANG Zheng-lei ,
  • ZHOU Xin-li ,
  • SONG Bin-bin
Expand
  • Naval Aeronautical and Astronautical University, Yantai 264001, China

Received date: 2017-03-13

  Revised date: 2017-06-13

  Online published: 2022-05-16

Abstract

Direct Sequence Spread Spectrum (DSSS) is a generally used signal modulation method in the communication data link. The synchronization of pseudorandom-noise code is a precondition for DSSS system’s normal work. The structure of PN code is analyzed and a tracking method using the delay locked loop is studied. It uses modified CORDIC algorithm in NCO to reduce occupation of hardware resources. Based on the least-squares method curve fitting, an algorithm for phase difference between the local PN code and the input DSSS signal is proposed. It could achieve more accurate synchronization. This modified delay locked loop is more simple for hardware implementation and the feasibility is proved by Quartus II and ModelSim simulation.

Cite this article

WANG Zheng-lei , ZHOU Xin-li , SONG Bin-bin . FPGA Implementation of Modified Delay Locked Loop Tracking System[J]. Command Control and Simulation, 2017 , 39(4) : 109 -112 . DOI: 10.3969/j.issn.1673-3819.2017.04.023

通信数据链中广泛采用的一种信号形式为直接序列扩频(DSSS)信号,主要原因是扩频后的信号具有抗干扰能力强、截获概率低、保密性好[1]等优点,对于信息化条件下的现代战场通信具有重要意义。在直接序列扩频通信系统中,实现伪随机码(PN码)的同步是系统正常工作和发挥功能的前提。对DSSS信号的结构进行解调分析时,首先必须进行解扩,而解扩的关键就在于PN码的同步,因此PN码同步系统的设计与实现是数据链自动测试技术中的重要部分。现场可编程门阵列(FPGA)是一种集成度很高的专用集成电路,具有静态可重复编程和动态在线系统重构的特性[2],这些特性对构建和改进PN码同步系统是有利的。

1 伪随机码的产生

信号频谱的扩展是通过伪随机码来实现的,m序列是其中最为常用的一种,这种序列易于产生,并具有良好的随机性、规律性和自相关性[3]。根据本原多项式,可通过构造线性移位寄存器来产生m序列,结构如图1所示。
图1 线性移位寄存器结构图
图中所示结构中,C0Cr必须赋值为1,参与反馈;对于其他各级,若反馈系数赋值为1则参与反馈,若反馈系数赋值为0则不参与反馈。这种r级线性移位寄存器最多有2r种可能的状态,但各级全为0的状态实际上等于工作停止,所以r级线性移位寄存器工作时最多有2r-1种状态,产生周期为N=2r-1的m序列。

2 伪码跟踪的基本原理

伪码跟踪建立在伪码捕获的基础上。伪码捕获是一个粗同步过程,在频率和相位不确定的范围内进行搜索,捕获有用的扩频信号,调整本地PN码相位,使本地PN码与输入扩频信号的相位差小于PN码的一个码元宽度[4]。而伪码跟踪是一个精同步过程,当捕获到有用的扩频信号后,系统转入跟踪状态,采用锁相环调整本地伪码序列相位,使本地PN码与输入扩频信号的相位差进一步缩小[5]。通过监控输入扩频信号的相位变化,调整本地PN码相位,若发现脱离跟踪状态,则重新开始新一轮的捕获和跟踪过程。常用的伪码跟踪方法为延迟锁相环跟踪法。
延迟锁相环跟踪法采用两个独立的相关器,利用扩频序列自相关函数的偶对称特性实现[6]。扩频序列的自相关特性和扩频序列跟踪的鉴相特性分别如图2图3所示。
图2 扩频序列自相关特性图
图3 扩频序列跟踪鉴相特性图
图3所示曲线中,虚线A为扩频序列自相关函数R(τ)左移 T c 2后的自相关函数R τ + T c 2,虚线BR(τ)右移 T c 2后的自相关函数R τ - T c 2,将所得两个移位后的自相关函数进行相减运算,得到扩频序列的S型跟踪鉴相曲线,即图中的实线部分。由所得鉴相曲线可知,当两个序列之间的相位差τ为0时,鉴相器输出也为0;当相位差τ不为0时,鉴相器输出一个带极性的信号,其大小与τ存在比例关系。延迟锁相环跟踪法的工作原理如图4所示。
图4 延迟锁相环跟踪法工作原理图
从图中可以看出,输入信号分别与超前和滞后 T c 2的本地PN码进行相关运算,将鉴相所得结果经环路滤波器传到NCO,从而控制本地PN码发生器不断向减小跟踪误差的方向进行调整。

3 延迟锁相环跟踪的改进方案

3.1 基于CORDIC算法的改进NCO

传统的NCO产生正、余弦信号是利用查表法,为了达到较高的输出精度,将占用大量的硬件存储资源。CORDIC算法可以将较复杂的正、余弦计算分解为一系列简单的加减和移位运算,通过算法结构的优化减少了硬件资源的占用,使之更适用于FPGA实现[7,8]
在正、余弦的计算过程中,CORDIC算法通过一系列固定的、与运算基数相关的角度不断偏摆以逼近预定的旋转角度[9],算法原理如图5所示。
图5 旋转模式CORDIC算法原理图
图5中,向量 A (xi,yi)与向量 B (xi+1,yi+1)存在如下关系式:
x i + 1 = x i c o s θ - y i s i n θ y i + 1 = y i c o s θ + x i s i n θ
式(1)经过变换得到:
x i + 1 = ( x i - y i t a n θ ) c o s θ y i + 1 = ( y i + x i t a n θ ) c o s θ
设每次旋转的角度为θi=arctan2-i,总旋转次数为n,则总的旋转角度θ= i = 0 n - 1aiθi,其中旋转系数ai=±1,符号为正表示沿逆时针方向旋转,符号为负表示沿顺时针方向旋转。
定义变量zi为已旋转角度和目标角度之间的偏差值,则式(2)可变换为:
x i + 1 = K i ( x i - y i a i 2 - i ) y i + 1 = K i ( y i + x i a i 2 - i ) z i + 1 = z i - a i a r c t a n 2 - i
式中,Ki=cos(arctan2-i)= 1 1 + 2 - 2 i定义为模校正因子,从而总校正因子的表达式为:
K= i = 0 n - 1 1 1 + 2 - 2 i
若初始输入x0=K,y0=0,z0=θ,经过n次迭代后xn=cosθ,yn=sinθ,zn→0,这样就可一简单地求出旋转角度的正、余弦值。
基于CORDIC算法的NCO工作原理如图6所示。
图6 基于CORDIC算法的NCO工作原理图
其中的四分圆映射器是利用了正、余弦函数关于象限对称的特性,通过z值的高两位确定所在象限[10]。由正、余弦函数的性质可知,正、余弦函数在同一象限内还关于该象限的角平分线对称,从而可以将圆周划分为八个区域,构建八分圆映射器,使用z值的高三位确定所在区域。

3.2 基于最小二乘法的精确跟踪算法

为了进一步缩小本地PN码与输入扩频信号之间的相位差,实现更加精确的跟踪,根据文献[11]提出S型跟踪鉴相曲线与最小二乘法相结合的精确跟踪算法。
图3中以输入扩频信号为基准的S型跟踪鉴相曲线进行平移,使得曲线以本地PN码为基准,此时平移距离即为本地PN码与输入扩频信号的相位差τ1,平移后的S型跟踪鉴相曲线如图7所示。
图7 平移后的S型跟踪鉴相曲线图
在曲线上的 - T c 2 , T c 2区间内,以 T c 8为间隔对称取出7个鉴相点,当相位差|τ1|< T c 8时这7个鉴相点位于同一条直线附近,设该直线的表达式为 y ˙=a+bx,鉴相点坐标为(xi,yi), 可以得到误差平方和:
S(a,b)= i = 1 7( y ˙ i-yi)2= i = 1 7(a+bxi-yi)2
为了使S(a,b)极小,根据最小二乘法原理有:
S ( a , b ) a = 2 i = 1 7 ( a + b x i - y i ) = 0 S ( a , b ) b = 2 i = 1 7 ( a x i + b x i 2 - x i y i ) = 0
解方程可以得到:
a = i = 1 7 y i i = 1 7 x i 2 - i = 1 7 x i i = 1 7 x i y i 7 i = 1 7 x i 2 - i = 1 7 x i 2 b = 7 i = 1 7 x i y i - i = 1 7 x i i = 1 7 y i 7 i = 1 7 x i 2 - i = 1 7 x i 2
鉴相点横坐标xi关于纵轴对称分布,因此有 i = 1 7xi=0,代入式(7)可得所求相位差:
τ1=- a b= i = 1 7 y i i = 1 7 x i 2 7 i = 1 7 x i y i

4 仿真与分析

在仿真时选用Altera公司生产的Cyclone IV系列EP4CE15F17C8芯片,采用Quartus II和ModelSim软件进行联合仿真。伪码捕获和跟踪过程的仿真结果分别如图8图9所示。
图8 伪码捕获过程仿真结果图
图9 伪码跟踪过程仿真结果图
在仿真结果图中,locked为环路锁定指示信号,低电平表示处于捕获状态,变为高电平表示完成捕获,进入跟踪状态;di[14]为输入扩频信号,pn为本地PN码,从图9中可以看出,在跟踪状态两者能够实现较为精确的同步。

5 结束语

本文从介绍伪随机码结构出发,深入分析伪码同步中的延迟锁相环跟踪原理,结合工程应用提出在结构和算法上的改进方案,最后通过Quartus II和ModelSim软件对设计的伪随机码同步系统进行FPGA仿真,证明了设计的合理性,为数据链检测设备的设计提供了一种新思路。
[1]
朱运航, 张平华, 邓明元. 直接序列扩频通信系统性能研究[J]. 兵工自动化, 2013, 32(2):84-87.

[2]
高亚军. 基于FPGA的数字信号处理[M]. 北京: 电子工业出版社, 2015.

[3]
窦建华, 王守亚, 李刚, 等. PN码滑动相关捕获方法的改进[J]. 电视技术, 2013, 37(15):159-161.

[4]
韩星, 张华冲, 王硕. 基于FPGA的直扩信号同步设计与实现[J]. 无线电工程, 2013, 43(11):53-56.

[5]
潘树国, 安康, 王庆. 伪码测距中码跟踪环的FPGA实现[J]. 电子器件, 2008, 31(6):1847-1849.

[6]
杜勇. 数字调制解调技术的MATLAB与FPGA实现[M]. 北京: 电子工业出版社, 2015.

[7]
胡普华, 赵建龙, 罗炬锋, 等. 高速低功耗CORDIC算法的研究与实现[J]. 电子设计工程, 2016, 24(24): 144-147.

[8]
刘春雅, 冯向莉. 基于改进cordic算法的数控振荡器及其FPGA实现[J]. 自动化与仪器仪表, 2015, 35(8): 131-133.

[9]
景标, 邢维巍, 张燕琴. 基于CORDIC算法的正交信号源实现[J]. 现代电子技术, 2016, 39(7): 57-59.

[10]
彭奇, 习友宝. 基于FPGA和改进CORDIC算法的NCO设计与实现[J]. 微型机与应用, 2013, 32(5): 60-62.

[11]
胡修林, 曾臻, 张俊, 等. 直扩系统伪码精确同步及FPGA实现[J]. 华中科技大学学报(自然科学版), 2005, 33(6):44-46.

Outlines

/