APP下载

基于FPGA的数字滤波器的设计

2015-05-30祝美英彭江英辜润秋刘海琴伍芷娴

科技创新与应用 2015年20期
关键词:现场可编程门阵列

祝美英 彭江英 辜润秋 刘海琴 伍芷娴

摘 要:数字信号系统在数字电子电路等许多领域中的應用十分广泛,设计FIR滤波器时虽然需要的阶数较高,成本高,但它具有很好的线性相位特性,稳定性好,而且信号延迟可以容易调节。文章以FIR数字滤波器的原理结构为基础,先对FIR数字滤波器进行系数设置,进一步借助Quartus II,将整个FIR数字滤波器分为:寄存器、加法器、减法器、乘法器四个模块。在对各个模块进行仿真得出的结果符合设计要求的前提下,再对FIR数字滤波器的整体电路进行仿真。

关键词:FIR数字滤波器;现场可编程门阵列(FPGA);Quartus II;硬件描述语言(VHDL)

1 概述

数字滤波器具有很好的幅度和线性相位特性,在幅度和线性上对信号处理有严格的要求,因此数字滤波器可以做到模拟滤波器所无法克服的温度漂移、电压漂移和噪声等问题[1],利用数字滤波器处理信号时就能做得更完美。比如可以降低信号的噪声、提高信噪比以及可以对信号得频谱进行分析等。

硬件实现的设计方法有以下三种:(1)使用单片通用数字滤波器集成电路实现(2)采用 DSP 器件实现(3)采用可编程逻辑器件(如DSP、ASIC、FPGA 等)实现。DSP 因为要按顺序依次执行所涉及的各个部分,而降低它的设计速度;用ASIC 方法设计时需要的成本又较高;基于FPGA的设计能较好地避免DSP和ASIC设计的缺点;并且利用 FPGA设计DSP 系统时,同时具备 DSP 芯片的灵活性和实时性,此外,FPGA 在许多数字信号处理领域中获得了成功的应用[2]。所以用FPGA 实现数字滤波是一个较好的选择。利用硬件描述语言(VHDL)采用自顶向下的数字系统设计方法,分别给出滤波器的各模块结构,并对各模块扮演的功能以及数字滤波器的关键部分进行了描述。最后在Altera公司推出的QuartusII8.0软件平台上,利用Cyclone系列器件对设计进行综合和仿真,并得出相应的结果。

2 FIR数字滤波器的原理结构

数字滤波器主要是完成数字信号滤波处理的功能,用有限精度算法实现的离散时间线性非时变系统[3]。数字滤波器的滤波功能是通过选定特定频率范围来实现的,其他范围外的频率信号(如噪声)将被滤除,所以可以通过数字滤波器减少对有用信号的干扰。

FIR数字滤波器由于具有线性相位响应的特性,所以在处理信号时可以避免相位失真的负面的影响,保持信号的完整性,从而得到较好的波形输出。而线性相位体现在时域中仅仅是h(n)在时间上的延迟,这个特点在图像信号处理、数据传输等波形传递系统中是非常重要的[4]。所以,FIR滤波器的线性相位特性在数字信号处理过程中带来了很大的好处。

FIR数字滤波器是一个线性时不变系统(LTI),N阶FIR数字滤波器可以用传输函数H(z)来描述[5]:

(1)

时域中,输入输出关系表示为:

(2)

其中,x(n)和y(n)分别是输入和输出序列。

在设计FIR数字滤波器时,乘法运算次数较多。在电路实现中,要用到较多的乘法器。当一个FIR 滤波器具有线性相位响应时,它的脉冲响应具有某种对称条件,在这种情况下,这种对称关系可以把FIR数字滤波器设计时相乘运算的次数减少二分之一,从而减少乘法器的个数[6]。为了突出线性相位滤波器的优点,先来看一下直接型的FIR数字滤波器的结构。(图1)

当冲击响应满足下列条件时: (3)

对n阶滤波器,当n为偶数时,乘法器的个数为n/2个;当n为奇数时,乘法器的个数为(n+1)/2个。N阶线性相位的因果FIR数字滤波器的单位冲激响应可用对称冲激响应

(4)

或者反对称冲激响应

(5)

进行描述。

3 FIR滤波器的设计分析

文章在QuartusⅡ下用VHDL编写滤波器的设计程序,这种方法的优点在于比较灵活、易于修改。设计好之后还可以再利用,只需对它的系数、阶数等参数进行修改即可成为任意阶的滤波器[7]。滤波器的系数通过MATLAB得到。因此,可以采用以下方法,先在MATLAB中用Filter Design计算出系数,再进行VHDL语言编程设计FIR数字滤波器。所以在用硬件描述语言对其进行描述时,先根据所要设计的滤波器阶数的要求,选择 MATLAB 中的窗函数——比较常用的是矩形窗,Bartlet窗,Hanning窗,Hamming窗,Kaiser窗——来求得滤波器的系数,并编写相应的程序来检验所求得的系数是否符合最终的要求,以此来缩短设计周期,减少工作量,提高设计成功率。

3.1 FIR滤波器参数设置

FIR滤波器参数设置采用窗函数法(window)并在filter order中填入16,窗口类型为Kaiser,beta为0.5,Fs为48kHz,Fc为10.8kHz。

FIR滤波器幅频与相频特性的比较如图2所示。

图2 FIR滤波器幅频与相频响应

3.2 分析得出滤波器系数

采用MATLAB中的FDATool分析得出为17阶FIR滤波器的系数,以FDATool分析计算出来的数据是有符号的小数。所以,要进行量化处理,以使FIR数字滤波器的系数为整数。对FIR滤波器的系数进行量化调整,整数化后的系数如下:为[-12 -18 13 29 -13 -52 14 162 242 162 14 -52 -13 29 13 -18 -12]。

4 数字滤波器的设计及仿真

4.1 FIR数字滤波器的各模块设计与仿真分析

设计的FIR滤波器模块电路设计包括寄存器、加法器、减法器、乘法器四个模块[8]。

四个模块在Quartus II平台上进行仿真无误后,再将各个模块按照FIR滤波器的原理将各模块连接起来。得到FIR滤波器的整体电路如图3所示,其整体电路基本与其原理图类似。

4.2 FIR滤波器整体电路(图3)

4.3 FIR滤波器整体电路仿真结果

4.3.1 输出信号仿真值

任意设定输入信号为:X=[54,0,0,0,22,0,0,0,54,0,0,0,22,0,

0,0,54,0,0,0,22,0,0,0,54,0,0,0,22,0,0,0]。仿真结果如图4所示。

4.3.2 输出信号理论值

,由此式可得输出信号的理论值。

图4 FIR滤波器整体电路仿真结果

当仿真通过并符合性能要求后,将程序下载到外围硬件中,完成FIR数字滤波器的设计。

4.4 仿真值与理论值的结果比较

图4 FIR滤波器整体电路仿真结果可以读出结果,其结果见表1。通过比较可知,仿真结果与输出信号理论值基本相吻合,符合设计要求。

5 结束语

文章主要通过系统地介绍数字滤波器,而核心部件FPGA选用高密度、灵活性好的AIXERA公司生产的Cyclone系列EP1C20F400

C8芯片,编程设计仿真无误后将程序下载到芯片中,完成对数字滤波器的设计。文章采用MATLAB中的FDATool以窗函数(window)的Kaiser窗来设置FIR滤波器的系数。最后使用QuartusII的VHDL语言分别对寄存器、加法器、减法器、乘法器四个模块进行编程设计、仿真。再对FIR滤波器仿真分析,得到表1仿真值与理论值的比较得结果,说明文章设计的FIR滤波器功能正确,性能良好。

参考文献

[1]刘畅,孙晶华.基于DSP的FIR数字滤波器研究微型机与应用[J].科技致富向导,2011(15):107+90.

[2]Lee Hanbo,Sobelman Gerad. Performance Evaluation and Optimal Design for FPGA-Based Digit-Serial DSP Functions. Computers and Electrical Engineering,2003,29(2):357-377.

[3]丁玉美,高西全.數字信号处理[M].西安:西安电子科技大学出版社,2004:70-76.

[4]舒麒畅,曹成伯,娄晓光.基于DSP平台的激光二极管控制系统[J].计算机测量与控制,2008(1):80-82.

[5]姚利锋.一种基于FPGA并行流水线的FIR滤波器设计方案[J].电子技术杂志,2009(1).

[6]陈静媛.激光陀螺捷联惯导系统数据采集电路的分析与实现[D].兰州:兰州职业技术学院,2008.

[7]张猛.基于MATLAB的FIR数字滤波器设计[J].长春大学学报,2009(2):47-49.

[8]王学梅.基于FPGA的有限冲击响应数字滤波器的研究及实现[D].中南大学,2005.

猜你喜欢

现场可编程门阵列
D—BLAST基带系统的FPGA实现研究
一种千兆以太网SerDes 接口与电接口的转换方法
基于FPGA的遗传算法在交通控制中的应用
基于FPGA的颜色识别触摸屏系统设计与实现