>
首页 » 技术文章 » 高动态扩频接收机中数字匹配滤波器的FPGA设计

高动态扩频接收机中数字匹配滤波器的FPGA设计

作者:北京航空航天大学电子信息工程学院    陈鹤  邵定蓉  时间:2006-05-31 15:13  来源:本站原创

摘要:本文介绍了一种高动态扩频数字接收机中数字匹配滤波器的原理和其基于FPGA的实现方法。改进的数字匹配滤波器的资源消耗仅为折叠匹配滤波器的一半,本文提出的方法适用于高动态环境下扩频信号的长伪码快速捕获。

针对基于PCM-CDMA-DS/BPSK的扩频系统,采用TI公司的C6000系列DSP和Xilinx公司开发的Virtex-Ⅱ系列FPGA来实现高动态接收机,可以简化系统设计、提高系统的稳定性并缩短开发周期。系统采用的是码长为1023的GOLD码,要求单次捕获时间≤0.2秒。在高动态环境中,由于高速相对运动会引起较大的多普勒频移,扩频伪码的捕获必须同时对信号进行时域和频域的二维搜索,给扩频伪码相位的初始捕获增加了难度,为了满足单次捕获时间≤0.2秒的要求,本系统采用数字匹配滤波器实现扩频伪码的捕获,因为数字匹配滤波器捕获技术能够极大地缩短捕获时间,它搜索每个相位的时间仅为1/N个数据码元。同时,由于采用的是码长为1023的GOLD码,需要占用很多的芯片面积资源,为了减少硬件资源消耗,本系统采用了对数字匹配滤波器进行优化的方法。

数字匹配滤波器的结构

数字匹配滤波器是以本地的扩频码作为数字FIR滤波器的抽头系数,对接收到的信号进行相关滤波,将输出的结果送入门限判决器进行门限判决,如果结果超过了判决门限,表明此时本地的扩频码与接收到的扩频码序列相位同步。


图1 M=4的折叠匹配滤波器

数字匹配滤波器的实现有很多种方法,比较节省资源的是折叠匹配滤波器(Filter Folding)。折叠匹配滤波器是改进的倒置型匹配滤波器。M倍折叠匹配滤波器的工作原理是将整个相关运算分为M段进行, 前段运算结果参与到后一段的运算中,并且采用较高的处理速率,从而减少硬件资源消耗。M倍折叠匹配滤波器的工作时钟为传统数字匹配滤波器的M倍,硬件资源的占用率约为原来的1/M。下面以采用4倍折叠,256个抽头的折叠匹配滤波器实现1023码长、4倍过采样的PN码为例,其硬件实现如图1所示,其中,Tclock为系统时钟周期。

从图1可以看出,加法器和其中的时延单元是整个电路中资源消耗的重要部分。为了进一步减少硬件资源的消耗,本文采用图2所示的方法对数字匹配滤波器进行改进。由于本地码长为1023,不能被4整除,采用本地码序列最后一位进行补“零”处理。这样,匹配滤波器工作时,将1024个采样数据与补零后的本地码进行相关运算。

图2 所示的匹配滤波器是在简单匹配滤波器的基础上进行改进的,它也是由移位寄存器组、乘法器和多输入加法器等组成的。折叠匹配滤波器的延时单元在加法器链中,而改进后,匹配滤波器的延时单元在输入端。另外,改进的匹配滤波器码序列与实际的码序列方向相同,所以它不是倒置型的匹配滤波器,但码序列存放格式仍为折叠式。其系统时钟应为采样数据速率的4倍。


图2 改进的数字匹配滤波器


图3 SRL16中数据的存储格式


改进的匹配滤波器的工作过程如下:处理一个采样数据需要4个系统时钟周期,第1个系统时钟周期,采样数据移入SRL16寄存器组,同时将本地码code1、2、┄、256送到乘法器输入端,与SRL16的输出结果相乘,运算结果移入多输入加法器中。在第2个系统时钟周期,从SRL16寄存器组末端反馈回的数据送入SRL16寄存器组,与送到乘法器输入端的本地code257、258、┄、512,与SRL16的输出相乘,其乘积移入多输入加法器,并与第1个系统工作时钟的多输入加法器的结果进行累加。第3、4个系统时钟周期的情况与第2个相似。在第4个系统时钟周期结束时,将最终的多输入加法器结果送到系统的输出端。

移位寄存器组

图2中移位寄存器组采用Virtex-Ⅱ系列器件中的宏单元结构SRL16实现。SRL16实现的是16位的移位寄存器,其调用采用VHDL语言实现:
srl16 port map (d=> ,clk=> ,q=> ,a3=> ,a2=> ,a1=> ,a0=> );

当每个采样点的量化位数为1时,存储采样数据需要256个SRL16(1024×4/16),经过16384(1024 ×4× 4)个系统时钟周期,可以将1023个扩频码全部存储到256个SRL16中。

由于SRL16只能在首端输入、末端输出,不能在中间任意抽取采样数据,为了确保SRL16输出到乘法器的数据与送到乘法器的本地码序列相对应,采样数据的存储格式如下:第一个系统时钟将采样数据送入移位寄存器组输入端,其余三个系统时钟将从移位寄存器组末端反馈回的数据送入移位寄存器组的输入端。采样数据全部存储到SRL16中的存储格式如图3所示。

从采样数据的存储格式可以看出,4组采样点依次存储在移位寄存器组中。使得在每个系统时钟的上升沿,SRL16输出到乘法器的数据与送到乘法器的本地码序列相对应。

乘法器

乘法器用来实现本地扩频码与接收的采样数据相乘,以判断接收的采样数据相位与本地码的相位是否一致。由于扩频码序列只有+1和-1两个值,可以用加减法来代替乘法。用IF…THEN…ELSE…语句来实现,如下所示:
if(codedata='0')then
result(i)<= register(i,j);
else
result(i)<= -register(i,j);
end if;

多输入加法器

多输入加法器用来实现乘法器输出结果的求和运算,此系统中多输入加法器树由8级加法器树和一个累加器组成。

8级加法器树中每个加法器用半加器实现。为了使加法器不产生溢出,将加法器输出的位数逐级扩展一位,并用VHDL语言实现,如下所示:
add6(i)<=('0'&add5(i))+('0'&add5(7-i));

累加器在4进制计数器(其工作时钟为系统时钟)的控制下,将8级加法器树的连续4个结果进行累加,并在第4个时钟周期输出,以实现码长为1023的扩频码的相关累加。

系统仿真

本系统采用Xilinx公司的Virtex-Ⅱ系列FPGA实现,采用Foundation ISE6.1软件进行VHDL编程,用Modelsim5.7软件进行时序仿真后得到的仿真波形,sysclk为系统的时钟,sysrst为系统复位信号,indata为输入采样数据, zout为累加器输出的扩频码相关累加结果,采样数据输入后,输出相关峰值为1023(1111111111),与理论分析相符。

当扩频码长为1023、过采样率为4、采样点量化位数为4时,折叠匹配滤波器消耗的触发器数目=(1023/4)[4(加减运算)+9(SRL延时)+1(编码位)]+30(控制电路)=3610,而这种改进的数字匹配滤波器的资源消耗量经仿真大约只需1738。由此可见,改进的数字匹配滤波器比折叠匹配滤波器减少了约一半的资源消耗。

结语

本文提出了一种基于FPGA的数字匹配滤波器的实现方法。由于利用了Virtex-Ⅱ系列器件的宏单元SRL16实现数字匹配滤波器,大大降低了FPGA的资源消耗。本文提出的方法适用于高动态环境下扩频信号的长伪码快速捕获。■

相关推荐

没有退路的FPGA与晶圆代工业者

FPGA  晶圆代工  2014-01-03

采用FPGA的可编程电阻的设计结构分析

FPGA  电阻  2013-09-24

从FPGA的制程竞赛看英特尔与Fabless的后续变化

FPGA  Fabless  2013-07-16

物联网融合自动化推动高效生产模式变革

物联网  FPGA  SoC  2013-07-09

14纳米FPGA展现突破性优势

14纳米  FPGA  2013-06-20

高清视频监控FPGA应用迎来小高峰

视频监控  FPGA  2013-06-20
在线研讨会
焦点