《电子技术应用》
您所在的位置:首页 > 通信与网络 > 设计应用 > 直接序列扩频系统匹配滤波器的FPGA实现
直接序列扩频系统匹配滤波器的FPGA实现
岳 晨 莫 玮
桂林电子工业学院电子工程系(541004)
摘要: 根据直接序列扩频系统相关解扩中的匹配滤波器的特点,提出了一种结构简单、基于FPGA实现匹配滤波器的方法,阐述了设计要点和关键部分的实现。
Abstract:
Key words :

摘   要: 根据直接序列扩频系统相关解扩中的匹配滤波器的特点,提出了一种结构简单、基于FPGA实现匹配滤波器的方法,阐述了设计要点和关键部分的实现。
关键词: 直接序列扩频  匹配滤波  FIR滤波器  FPGA

  解扩过程对扩频通信至关重要,正是这一过程大大提高了系统的抗干扰能力。在直接序列扩频(直扩)系统中通常采用匹配滤波器来解扩直扩信号[1]。解扩可分为模拟解扩和数字解扩。模拟解扩中传统的SAW匹配滤波器由抽头延迟线和加法累加器构成。通常根据扩频码序列结构做成固定的抽头,不能适应码序列需要改变的情况。如果在输出端加上控制电路,也可以做成可编程的SAW匹配滤波器,应用起来更加方便,但工艺制作困难。本文主要讨论基于FPGA设计N阶数字匹配滤波器实现直扩系统的数字解扩[2]。该结构不仅可以适应码序列变化的情况,而且与采用通用的FIR数字滤波器实现匹配滤波的设计相比,大大简化了设计结构。
1  直扩系统的原理
  直接序列扩频就是直接用具有高码率的扩频码序列在发端去扩展信号的频谱,而在收端用相同的扩频码序列进行解扩,把展宽的扩频信号恢复成原来的信号。
  可采用m序列做扩频码序列。m序列是由多级移位寄存器或其他延迟元件通过线性反馈产生的最长的码序列。在二进制移位寄存器发生器中,若n为移位寄存器的级数,则能产生的最大长度的码序列为2n-1位。N阶匹配滤波器实现信号解扩则需要N位长的m序列,故m序列发生器由log2(N+1)级移位寄存器构成。
2  直扩系统匹配滤波器的结构
  如果用通用FIR滤波器实现N阶匹配滤波,则N阶FIR滤波器的传递函数可用差分方程表示为:,其典型结构如图1所示[3]。该结构的实现需要N个乘法器、N-1个加法器和N级延迟锁存器。若N很大,直接利用上述结构实现匹配滤波将会导致高度消耗资源甚至于不可能实现。


  在直扩系统中,匹配滤波的m序列均由0和1构成,即滤波器系数h(i)为-1或1[4]。由此提出一种结构简单且易于实现的匹配滤波器方法,如图2所示。该结构不需要乘法器,并只用1个累加器实现了N个样本数据的累加,有效地降低了资源的消耗。

2.1  缓冲器的设计

  缓冲器可以使用单口RAM或双口RAM来实现。双口RAM数据的输入端口和输出端口独立,有利于数据流控制。但缓冲器在同样的容量条件下,使用双口RAM比单口RAM会消耗更多的资源。所以在本设计中采用了单口RAM作为样本数据的缓冲。
  每来一个新的样本数据,都需要对RAM读取N 个样本数据以完成一次匹配滤波输出。因此RAM采用的工作时钟频率为数据采样频率的(N+1)倍,其中1个节拍用于更新采样数据,另外N个节拍用来读取用于运算的N个样本数据。
  由缓冲器的长度可知,RAM的地址线的宽度应为  。RAM的数据线的宽度即为缓冲器的宽度,由计算所需的精度决定。
2.2  移位寄存器的设计
  移位寄存器用来保存m序列,故移位寄存器的长度为N。移位寄存器也采用(N+1)倍数据采样频率的工作时钟,其中1个节拍用于移位寄存器读取m序列,在另外的N个节拍内,每个节拍都使移位寄存器循环移动1位。取出该移位寄存器的最高或最低位作为控制累加器做加法还是减法的控制信号。
2.3 累加器的设计
  累加器用来实现样本数据的N次累加和,采用一个带有累加和反馈的加法器来实现。累加器结构如图3所示。

  累加器采用(N+1)倍数据采样频率的工作时钟。N个节拍用于完成N次累加(数据选择器选择加法器输出时),1个节拍用于完成累加运算后的清零(数据选择器选择‘0’输出时)。
  累加器完成有符号数相加或相减运算,它的一个输入为累加和的反馈,另一个输入则为样本数据。加减法的控制信号由移位寄存器的最高或最低位决定。累加器的宽度由计算精度决定。在要求累加器无精度损失的情况下,累加器的宽度应该保证匹配滤波的结果不会溢出。
2.4  降采样
  累加器的输出为各次累加结果的输出,输出数据率为(N+1)倍的数据采样频率。其中仅有第N次样本数据累加完成后的结果才是需要的匹配滤波的输出结果。因此,还应对累加器的输出进行(N+1)倍的降采样,以得到有效的匹配滤波输出。若输出数据率刚好等于采样频率,即完成了完整的N阶匹配滤波。直扩系统N阶匹配滤波器的电路结构示意图如图4所示。

3  直扩系统匹配滤波器的时序
  本设计采用了Xilinx公司的ISE集成环境[5]及Spartan2e芯片,用Verilog语言编写了滤波器的设计程序[6],并用Model Technology公司的ModelSim做了时序仿真。N阶匹配滤波器的时序仿真示意图如图5所示。
采用一个频率为(N+1)倍数据采样频率的时钟作为RAM、移位寄存器和累加器的工作时钟。

   对于RAM,其中1个节拍用于更新采样数据x(n)(写操作),另外N个节拍分别从RAM的N个单元取出N个样本数据x(n-N-1)、x(n-N-2)、……x(n)(读操作)。在RAM写操作时,将m序列写入移位寄存器;在RAM读操作的N个节拍内,每个节拍移位寄存器循环移动1位,并取出最高或最低位作为累加器的加、减法控制信号。
  对于累加器,N个节拍用于完成N次累加(数据选择器选择加法器输出时),1个节拍用于完成累加运算后的清零(数据选择器选择‘0’输出时)。
  经与数据采样频率相同的时钟降采样后,得到匹配滤波器运算输出。
4  小  结
  本文提出了基于FPGA中的RAM资源实现高阶匹配滤波器的设计方法。由于该设计采用了串行运算元素,故占用面积小;采用FPGA实现,可以适应扩频码序列变化的任意阶数的匹配滤波,与采用通用FIR数字滤波器实现匹配滤波相比,大大降低了FPGA的资源消耗。通常FPGA中的RAM的访问速度在10M~20MHz。利用本文所述的方法,可有效地实现数据采样率小于1/(N+1)倍RAM最高访问频率的各种N阶匹配滤波。因此,本文的方法非常适合中低速数据率条件下的直扩系统相关解扩的匹配滤波。
参考文献
1   李承恕,赵荣黎.扩展频谱通信.北京:人民邮电出版社,1993
2   杨晖,张凤言.大规模可编程逻辑器件与数字系统设计.北京:北京航空航天大学出版社,1998
3   赖玉强,付民仓,王法能.DS-SS数字匹配滤波器原理及实 现方法.通信技术,2003;133(1)
4   步衍冰,曾兴雯,梁敏超.基于FPGA的快速匹配滤波器.无线电工程,2003;33(6)
5   王诚,薛小刚,钟信潮.FPGA/CPLD设计工具——Xilinx    ISE 5.x使用详解.北京:人民邮电出版社,2003
6   夏宇闻.从算法设计到硬件逻辑的实现——复杂数字逻辑系统的Verilog HDL设计技术和方法.北京:高等教育出版社,2001
 

此内容为AET网站原创,未经授权禁止转载。