基于FPGA 的FIR 数字滤波器设计方案
在Matlab/Simu
0 引言
在信息信号处理过程中,数字滤波器是信号处理中使用最广泛的一种方法。通过滤波运算,将一组输入数据序列转变为另一组输出数据序列,从而实现时域或频域中信号属性的改变。常用的数字滤波器可分为有限脉冲响应(FIR)滤波器和无限脉冲响应(IIR)滤波器两种。其中,FIR数字滤波器具有严格的线性相位,而且非递归结构也保证了运算的稳定性。在实时性要求比较高的应用场合,采用可编程芯片FPGA加以实现,相比于$DSP芯片或专用芯片的实现方法,具有高速、高精度、高灵活性的优点。本文在采取了一种基于FPGA和DSP Builder的方法设计FIR数字滤波器时,采用了层次化、模块化的设计思想,遵循DSP Builder的设计开发流程,在Matlab/Simu
1 FIR 数字滤波器的基本原理及结构
对于一个$FIR滤波器系统,它的冲击响应总是有限长的,其系统函数可以记为:
式中:x(n) 是输入采样序列;h(i) 是滤波器系数;k 是滤波器阶数;y(n) 表示滤波器的输出序列。
图1为k 阶FIR数字滤波器的结构框图。
2 FIR 数字滤波器的设计流程
该设计流程主要涉及到Matlab/Simu
(1)Matlab/Simu
(2)利用Simu
(3)DSP Builder设计实现的关键一步,通过Signal-Compiler把Simu
(4)转换好的Verilog源代码用ModelSim软件进行功能仿真,验证Verilog文件的正确性。接下来的几个步骤是对以上设计产生的Verilog的RTL代码和仿真文件在Quartus Ⅱ工具软件中进行综合、编译适配,生成扩展名为。sof的文件加载到FPGA硬件系统中。
[page]
3 FIR 数字滤波器的详细设计
3.1 FIR数字滤波器模块设计与系统级仿真
根据FIR数字滤波器的原理,在Simu
在模型的搭建过程中,使用了两个8位的Shift Taps移位寄存器模块对输入信号进行分解,然后根据数字滤波器的原理进行算法计算。
模型搭建好之后,需要确定16阶$FIR数字滤波器的系数,在这使用Matlab中的FDATool滤波器设计工具来确定。确定好滤波器的指标:
(1)设计一个16阶的FIR 滤波器;
(2)低通滤波器;
(3)采样频率fs为16 384 Hz,截频点频率fs为533 Hz;
(4)输入序列位宽为16位。
在设计滤波器界面中,如图4所示,进行下列选择:
(1)滤波器类型(Filter Type)为低通(Lowpass);
(2)设计方法(Design Method)为FIR,采用窗口法(Window);
(3)滤波器阶数(Filter Order)定制为15(设置为15 阶而不是16阶,是由于设计的16阶FIR滤波器的常系数项h(0)=0);
(4)滤波器窗口类型为Kaiser,Beta为0.5.
所有的选项确定好后,在FDATool$滤波器设计界面中点击“Design Filter”,Matlab就会计算滤波器系数并作相关分析。图5所示为滤波器的幅频响应,图6所示为滤波器的阶跃响应。
由于所有的模块都在同一个Simu
这样整个滤波器的Simu
图中,上面的波形是533 Hz的输出,中间的波形是533 Hz加上3 600 Hz高频干扰后的输出,下面的波形是经过滤波后的输出。
3.2 从模型文件到Verilog代码的RTL级转换和编译适配
利用Signal Compiler模块将电路模型文件即Simu-
3.3 数字滤波器的ModelSim功能仿真
ModelSim软件可支持VHDL和Verilog混合仿真,无论是FPGA设计的RTL级和门级电路仿真,还是系统的功能仿真都可以用ModelSim来实现[4-5].由Signal Com-piler生成的Verilog硬件描述语言模块,在ModelSim中可以直接对Verilog代码进行仿真,检测源代码是否符合功能要求。图10所示的16阶FIR数字滤波器的功能仿真结果图。与图8的Simu
[page]
3.4 FIR数字滤波器的FPGA硬件实现
FIR数字滤波器一般是嵌入在采集器的采集板卡中进行工作的,把由数字滤波器的Verilog源代码生成的模块嵌入到采集板卡的FPGA逻辑中,如图11所示。
在Quartus Ⅱ环境下,数字滤波器的内部逻辑经过编译适配之后,以。sof文件的形式直接加载到FPGA中。
4 FIR 数字滤波器的FPGA 实时测试
进行实时测试的电路是应用$FPGA和USB的数据采集电路,如图12所示。
测试时把$信号发生器设置好的输入信号输入到A/D,采样得到的数据经过FPGA,再通过USB与PC机相连,应用QuartusⅡ中的SignalTapⅡ工具进行实时检测,结果如图13所示,其中,上面的波形为输入波形,频率为200 Hz,下面的波形为输出波形,由于200 Hz在低通的带通内,所以两者的波形相差不大。当输入波形为频率533 Hz时,由于是在截频点,其输出波形的幅值约为输入波形幅值的71%,如图13和14所示。
5 结束
FIR数字滤波器在数字信号处理领域有着广泛的使用,本文通过仿真和实时验证两种方式实现了一种基于FPGA和DSP Builder的FIR数字滤波器。先根据FIR滤波器的基本原理和结构框图搭建了滤波器的模型,再根据滤波器的性能指标通过FDATool工具对其进行设计,并通过系统级仿真和ModelSim功能仿真进行了简要的可行性分析,最后通过QuartusⅡ软件对FIR数字滤波器进行实时验证,表明本方案所设计的FIR 滤波器功能正确,性能良好。
本文由大比特收集整理(www.big-bit.com)
暂无评论