新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于FPGA 的FIR 数字滤波器设计方案

基于FPGA 的FIR 数字滤波器设计方案

作者:时间:2015-01-06来源:网络收藏

  模型搭建好之后,需要确定16阶的系数,在这使用Matlab中的FDATool滤波器设计工具来确定。确定好滤波器的指标:

本文引用地址:http://www.eepw.com.cn/article/267746.htm

  (1)设计一个16阶的滤波器;

  (2)低通滤波器;

  (3)采样频率fs为16 384 Hz,截频点频率fs为533 Hz;

  (4)输入序列位宽为16位。

  在设计滤波器界面中,如图4所示,进行下列选择:

  (1)滤波器类型(Filter Type)为低通(Lowpass);

  (2)设计方法(Design Method)为,采用窗口法(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混合仿真,无论是设计的RTL级和门级电路仿真,还是系统的功能仿真都可以用ModelSim来实现[4-5].由Signal Com-piler生成的Verilog硬件描述语言模块,在ModelSim中可以直接对Verilog代码进行仿真,检测源代码是否符合功能要求。图10所示的16阶FIR数字滤波器的功能仿真结果图。与图8的Simulink仿真结果图的波形一致,表明经过转换的Verilog源代码可以实现正常的滤波功能。

  

 

  3.4 FIR数字滤波器的硬件实现

  FIR数字滤波器一般是嵌入在采集器的采集板卡中进行工作的,把由数字滤波器的Verilog源代码生成的模块嵌入到采集板卡的逻辑中,如图11所示。

  

滤波器相关文章:滤波器原理


fpga相关文章:fpga是什么


滤波器相关文章:滤波器原理


电源滤波器相关文章:电源滤波器原理


数字滤波器相关文章:数字滤波器原理


关键词: FPGA FIR 数字滤波器

评论


相关推荐

技术专区

关闭