直扩系统PN码捕获和跟踪的FPGA实现
扫描二维码
随时随地手机看文章
摘要:在数字匹配滤波器和超前滞后鉴相环路的理论基础上,采用VHDL编程,在FPGA芯片上实现PN码捕获和跟踪的电路。详细讨论了各电路模块的设计实现方法。完成电路的仿真验证,给出了仿真波形。结果表明电路工作正常可靠,系统扩展方便灵活,满足设计要求。
关键词:FPGA;PN码捕获;PN码跟踪;数字匹配滤波器;超前滞后环路
在接收机端,为了接收到正确的信号,必须使得本地PN码与接收信号PN码严格同步。PN码同步的过程分为两个阶段:捕获和跟踪。典型的捕获方法是匹配滤波器法,而跟踪则常用超前滞后鉴相跟踪环路。随着可编程逻辑器件FPGA的大规模使用,数字电路系统的设计变得更加灵活和方便,并且易于系统维护和更新。本设计采用VHDL编程,用FPGA实现了PN码捕获和跟踪的电路。
1 捕获和跟踪的原理
如图1所示,捕获和跟踪环路主要由数字匹配滤波器模块、PN码发生器模块、码时钟发生器模块和鉴相模块组成。捕获和跟踪主要利用PN码的自相关特性和鉴相特性,如图2所示。其中图2(a)是序列的自相关函数R(τ),利用此特性,让接收信号依次划过本地PN码,并进行相关运算,当两者同步时,相关值达到相关峰值,大于预先设定的门限,表明此时完成捕获。图2(b)中虚线①是自相关函数向右移Tc/2之后的自相关函数R(τ-Tc/2),虚线②是自相关函数向左移Tc/2之后的自相关函数R(τ+Tc/2),而实线是R(τ-Tc/2)减去R(τ+Tc/2)之后的S型鉴相曲线D(τ)。当τ=0时,鉴相结果为0,表明本地PN码与接收信号同步。当τ≠0时,鉴相器输出正或负的极性结果,调整PN码时钟提前或者滞后PN码。其中:Tc是PN码片周期。
1.1 捕获
捕获利用PN码的序列自相关特性,如图2(a)所示。捕获常用数字匹配滤波器法。数字匹配滤波器法虽然电路结构较复杂,消耗资源较多,但捕获过程很快,通常可以在一个PN码周期内完成。用数字匹配滤波器法捕获扩频码时,以静止的本地PN码作为滤波器的抽头,接收到的信号序列依次划过本地PN码,每一个时刻都可以产生一个相关结果。当两个序列相位对齐时,相关结果将有一个相关峰值(扩频序列在零相位时的自相关函数值)输出,相关值大于预先设定的门限时表示捕获成功,此时接收信号与本地PN码粗同步,同步在一个PN码元时长,下一步进入跟踪阶段进行精确同步。
1.2 跟踪
跟踪常用超前滞后跟踪环法,利用PN码的鉴相特性,如图2(b)所示。输入扩频信号分别和超前、滞后1/2个码元周期的PN码进行相关运算,两者相关值之差作为鉴相结果输入至码时钟生成器来调整PN码相位,保持本地PN码与接收信号之间的严格同步。同时扩频信号与本地PN码相关之后解扩输出。若连续几次失步,则重新转入捕获阶段,进行粗同步。
2 捕获和跟踪环的各子模块设计
2.1 数字匹配滤波器模块
本文采用的PN码为63位m序列,取数字匹配滤波器的抽头个数和PN码的位数相同,即为63位,在FPGA中就是要用一个63位的存储器。接收数据用一个63位的移位寄存器存储,每一时刻让移位寄存器和存储器的每一位进行相关运算,并将相关值输出。直到输出的相关值大于门限时表示已经产生相关峰值,说明接收信号与本地PN码已经同步在一个码元时长的相位差范围内,并置跟踪信号为高电平,转入捕获进行精确同步。该模块的结构图如图3所示。
2.2 PN码发生器模块
根据PN码时钟利用2位相邻移位寄存器延迟1/2个码片周期,产生三路PN码,本地PN码一路、提前半个周期和延迟半个周期的各一路,共三路PN码。来自数字匹配滤波器模块的输出跟踪信号作为该模块的使能启动信号。
2.3 鉴相器模块
三路PN码与接收信号进行相关运算,中间一路PN码与接收信号相关运算后产生解扩信号并输出;早迟两路PN码与接收信号相关后产生相关值并进行比较,用于控制PN码时钟信号。若早路PN码与接收信号相关值大,则表示本地PN码较接收信号相位提前,需控制PN码时钟信号滞后;若迟路PN码与接收信号相关值较大,则表示本地PN码较接收信号相位落后,需控制PN码时钟信号提前。若连续几个PN码周期相关值都小于设定的门限时,表示PN码失步,需要重新转入捕获阶段。来自数字匹配滤波器模块的输出跟踪信号作为该模块的使能启动信号。
2.4 码时钟发生模块
根据鉴相器的结果滞后或者提前PN码时钟周期,并输出至PN码发生器,用于调整PN码的相位,每次改变1/8个PN码时钟周期。图4示出了该模块的结构图,reset是系统复位信号,高电平有效;cyclk是时钟输入端,时钟频率是PN码频率的8倍;内部设置加法器,记满8则清零;如果没有调整信息,则计数器正常加1;e_clk为超前指示,高电平有效,当e_clk有效时,计数器停止加法,则pnclk滞后1/8个PN码元;l_clk为滞后指示,高电平有效,l_clk为高电平时,计数器在cyclk上升沿加2,则控制pnclk提前1/8个PN码元。
3 捕获和跟踪环在FPGA上的实现
本系统采用Altera公司的系列芯片,用VHDL语言编程,在Quartus 8.0中建模仿真。按照如下步骤完成扩频码的捕获和跟踪,并给出了仿真波形图,进行了结果分析。
接收信号经过A/D变换之后进入FPGA,首先进入捕获模块,每一个PN码片时刻都有一个相关值输出,当相关值大于门限表示捕获成功,转入跟踪阶段。在跟踪阶段,PN码发生模块根据码时钟产生模块的时钟信号产生三路PN码(超前、中间、滞后),接收信号与三路PN码在鉴相模块分别进行相关,中间一路产生解扩码输出,超前、滞后两路的相关值作差并将结果输出至码时钟产生模块,来调整PN码时钟,从而控制PN码的相位,每次调整1/8个码片周期。当连续三次中间一路的相关值小于门限时表示已经失步,需要重新捕获,接下来将转入捕获阶段。沿此环路即可实现本地PN码与接收扩频码的捕获和跟踪,进而完成信号的解扩输出。
3.1 码时钟发生模块仿真结果分析
图5给出了码时钟发生模块的仿真结果。其中cyclk是系统输入时钟;e_clk为超前指示,l_clk为滞后指示,pnclk为输出PN码时钟。当e_clk为高电平时,在左侧黑实线处可看到该模块输出的pnclk滞后了1/8个PN码元;当l_clk为高电平时,在右侧黑实线处可看到输出的pnclk会提前1/8个PN码元。
3.2 捕获仿真结果分析
图6(a)是捕获阶段的仿真结果图。其中cyclk是系统输入时钟;pnclk是捕获阶段产生本地:PN码的PN时钟;reset是复位信号;sigin是输入扩频信号,jiekuo是输出解扩信号;shibuj是捕获模块的启动使能信号,高电平有效;genzong是跟踪环路的启动使能信号,高电平有效;xiangguangzhi是接收信号与本地PN码的相关值累加和。图6(b)中将xiangguanzhi信号放大,门限设置为1 760。在图中右侧黑实线处,此时相关值已经大于门限,表示捕获成功,置genzong信号为高电平,shibuj信号为低电平,启动跟踪环路,终止捕获环路。同时产生三路PN码。
3.3 跟踪环路仿真结果分析
图7是跟踪仿真结果图。其各信号代表的意思同上。人为调整sigin的相位,跟踪环路总是可以跟踪输入扩频信号的变化,并准确解扩输出,上述解扩输出结果为01000010。其中黑色实线处是解扩毛刺,不影响结果的输出。
3.4 连续三次失步之后转入重新捕获仿真结果及分析
图8中cyclk是系统时钟信号,pnclk是捕获模块产生PN码的PN时钟;reset是系统复位信号;sigin是输入扩频信号,genzong是跟踪环路的使能信号,高电平有效;shibuj是捕获的启动使能信号,高电平有效;图中每个黑色实线处是一个PN码周期的结束处,即两道黑色实线之间是一个PN码周期。在第三道黑色实线后genzong信号变为低电平,shibuj信号变为高电平,即跟踪环路终止,捕获环路重新启动。
4 结语
本文介绍了直扩系统中PN码同步捕获和跟踪的方法,用VHDL语言完成了电路各个模块的编程实现,在Quartus 8.0中进行了仿真,并给出了仿真波形,证明电路工作正确可靠,满足设计要求。