在Matlab/Simulink环境下,选用DSP Builder模块树立FIR模型,依据FDATool东西对FIR滤波器进行了规划,然后进行体系级仿真和ModelSim功用仿真,其仿真成果标明其数字滤波器的滤波作用杰出。经过SignalCompiler把模型转化成VHDL言语加入到FPGA的硬件规划中,从QuartusⅡ软件中的虚拟逻辑剖析东西SignalTapⅡ中得到数字滤波器实时的成果波形图,成果契合预期。
0 导言
在信息信号处理过程中,数字滤波器是信号处理中运用最广泛的一种办法。经过滤波运算,将一组输入数据序列转变为另一组输出数据序列,然后完结时域或频域中信号特点的改动。常用的数字滤波器可分为有限脉冲呼应(FIR)滤波器和无限脉冲呼应(IIR)滤波器两种。其间,FIR数字滤波器具有严厉的线性相位,并且非递归结构也确保了运算的稳定性。在实时性要求比较高的运用场合,选用可编程芯片FPGA加以完结,比较于DSP芯片或专用芯片的完结办法,具有高速、高精度、高灵活性的长处。本文在采取了一种依据FPGA和DSP Builder的办法规划FIR数字滤波器时,选用了层次化、模块化的规划思维,遵从DSP Builder的规划开发流程,在Matlab/Simulink 中树立模型并进行体系级仿真,再进行Verilog言语转化,ModelSim仿真验证无误后完结了FIR数字滤波器的实时测验。
1 FIR 数字滤波器的基本原理及结构
关于一个FIR滤波器体系,它的冲击呼应总是有限长的,其体系函数能够记为:
式中:x(n) 是输入采样序列;h(i) 是滤波器系数;k 是滤波器阶数;y(n) 标明滤波器的输出序列。
图1为k 阶FIR数字滤波器的结构框图。
2 FIR 数字滤波器的规划流程
该规划流程首要涉及到Matlab/Simulink、DSPBuilder和Quartus Ⅱ等东西软件的开发规划。整个规划流程,包含从体系描绘直至硬件完结,能够在一个完好的规划环境中完结,如图2所示。
(1)Matlab/Simulink 中规划输入,即在Matlab 的Simulink环境中树立一个扩展名为mdl的模型文件,用图形办法调用Altera DSP Builder 和其他Simulink库中的图形模块(Block),构成体系级或算法级规划框图(或称Simulink规划模型)。
(2)运用Simulink的图形化仿真、剖析功用,剖析此规划模型的正确性,完结模型仿真,也叫体系级仿真。
(3)DSP Builder规划完结的要害一步,经过Signal-Compiler把Simulink的模型文件转化成通用的硬件描绘言语Verilog文件。
(4)转化好的Verilog源代码用ModelSim软件进行功用仿真,验证Verilog文件的正确性。接下来的几个过程是对以上规划发生的Verilog的RTL代码和仿真文件在Quartus Ⅱ东西软件中进行归纳、编译适配,生成扩展名为。sof的文件加载到FPGA硬件体系中。
3 FIR 数字滤波器的具体规划
3.1 FIR数字滤波器模块规划与体系级仿真
依据FIR数字滤波器的原理,在Simulink环境下树立16阶的FIR数字滤波器结构,如图3所示。
在模型的树立过程中,运用了两个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所示为滤波器的阶跃呼应。
因为一切的模块都在同一个Simulink图中,这时的Simulink规划图显得很杂乱,不利于阅览和排错,因而把FIR数字滤波器模型做成一个子体系在规划图中显示出来,如图7所示,这便是Matlab中的层次化规划,在顶层规划图中,滤波器作为名称是SubFIR_533_16js的一个模块呈现。一起,图7中还设置了其他模块,包含仿真信号输入模块、Signal Tap Ⅱ信号实时监测模块、Signal Compiler模块、硬件开发板模块、TestBench模块。
这样整个滤波器的Simulink电路规划模型就完结了,然后要对该模型进行体系级仿真,检查其仿真成果,在频率为533 Hz的波形输入上加入了频率为3 600 Hz的扰动波形,其Simulink仿真成果如图8所示。
图中,上面的波形是533 Hz的输出,中心的波形是533 Hz加上3 600 Hz高频搅扰后的输出,下面的波形是经过滤波后的输出。
3.2 从模型文件到Verilog代码的RTL级转化和编译适配
运用Signal Compiler模块将电路模型文件即Simu-link 模块文件(。mdl)转化成RTL 级的Verilog 代码表述和Tcl(东西指令言语)脚本。这种转化是用来对数字滤波器Simulink模型进行结构化剖析的[5]。取得转化好的VHDL描绘后就能够调用 Verilog归纳器,这儿咱们选用Quartus Ⅱ,用来生成底层网表文件,一起也就能够得到其网表文件对应的RTL电路图。如图9所示。
3.3 数字滤波器的ModelSim功用仿真
ModelSim软件可支撑VHDL和Verilog混合仿真,无论是FPGA规划的RTL级和门级电路仿真,仍是体系的功用仿真都能够用ModelSim来完结[4-5]。由Signal Com-piler生成的Verilog硬件描绘言语模块,在ModelSim中能够直接对Verilog代码进行仿真,检测源代码是否契合功用要求。图 10所示的16阶FIR数字滤波器的功用仿真成果图。与图8的Simulink仿真成果图的波形共同,标明经过转化的Verilog源代码能够完结正常的滤波功用。
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 滤波器功用正确,功能杰出。