摘 要: 根据直接序列扩频系统相关解扩中的匹配滤波器的特点,提出了一种结构简单、基于FPGA实现匹配滤波器的方法,阐述了设计要点和关键部分的实现。
解扩过程对扩频通信至关重要,正是这一过程大大提高了系统的抗干扰能力。在直接序列扩频,直接序列扩频(Direct Sequence Spread Spectrum)工作方式,就是用高速率的扩频序列在发射端扩展信号的频谱,而在接收端用相同的扩频码序列进行解扩,把展开的扩频信号还原成原来的信号。 直接序列扩频方式是直接用伪噪声序列对载波进行调制,要传送的数据信息需要经过信道编码后,与伪噪声序列进行模2和生成复合码去调制载波。
系统中通常采用匹配滤波器,是指滤波器的性能与信号的特性取得某种一致,使滤波器输出端的信号瞬时功率与噪声平均功率的比值。 来解扩直扩信号[1]。解扩可分为模拟解扩和数字解扩。模拟解扩中传统的SAW匹配滤波器由抽头延迟线和加法累加器构成。通常根据扩频码序列结构做成固定的抽头,不能适应码序列需要改变的情况。如果在输出端加上控制电路,也可以做成可编程的SAW匹配滤波器,应用起来更加方便,但工艺制作困难。本文主要讨论基于FPGA,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。设计N阶数字匹配滤波器实现直扩系统的数字解扩[2]。该结构不仅可以适应码序列变化的情况,而且与采用通用的FIR数字滤波器实现匹配滤波的设计相比,大大简化了设计结构。
1 直扩系统的原理
直接序列扩频就是直接用具有高码率的扩频码序列在发端去扩展信号的频谱,而在收端用相同的扩频码序列进行解扩,把展宽的扩频信号恢复成原来的信号。
可采用m序列做扩频码序列。m序列是由多级移位寄存器或其他延迟元件通过线性反馈产生的长的码序列。在二进制移位寄存器发生器中,若n为移位寄存器的级数,则能产生的长度的码序列为2n-1位。N阶匹配滤波器实现信号解扩则需要N位长的m序列,故m序列发生器由log2(N+1)级移位寄存器构成。
2 直扩系统匹配滤波器的结构
如果用通用FIR滤波器,是数字信号处理系统中基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,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阶匹配滤波。因此,本文的方法非常适合中低速数据率条件下的直扩系统相关解扩的匹配滤波。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。