高阶FIR滤波器的计算机设计与FPGA实现
2 基于Matlab和QuartusⅡ的FIR滤波器设计
2.1 利用Matlab进行滤波器系数设计
设计指标:采样频率为2 MHz,f1=200 kHz,f2=330 kHz,通带衰减1 dB,阻带衰减70 dB。通过参数指标确定所需的阶数和参数值,部分程序如下:
由图6验证设计指标。
如果设计指标不满足,则可通过调整滤波器参数直至满足设计要求。
2.2 利用QuartusⅡ进行设计和仿真
对Matlab产生的FIR滤波器抽头系数,用QuartusⅡ进行仿真。QuartusⅡ软件是Altera公司主推的FGPA设计软件,是集设计输入、编译、综合、仿真、布线、下载于一体的设计软件。由于Matlab产生的滤波器抽头系数为小数,根据工程需要将其转换为18位二进制系数使用。过程如下:
由Matlab产生的FIR数字滤波器系数如下:
按第2.3节提出的方法在QuartusⅡ中完成FIR滤波器的设计,通过编译综合功能对设计文件进行编译和综合,然后生成顶层模块,见图7。
通过QuartusⅡ的波形仿真功能,对其进行波形仿真并进行定量分析。波形仿真如图8所示。其中,cp50为系统时钟,由它控制输入信号xin_data的输入速率(本例为2 MHz)。data_result为滤波器未经取高位处理的乘加结果;data_result_out,为最终滤波输出结果。经验证,data_result与Matlab的运算结果一致,data_result可满足工程精度的要求。
3 结语
本文在结合Matlab和FPGA软件QuartusⅡ的基础上,完成了一种基于LPM参数化宏功能模块的FIR滤波器设计,该法是基于工程实际应用提出的,它对信号处理速率的要求不高,但对滤波器的阶数较高。当设计指标改变,只需调整各模块的参数,即可完成新的设计,该法已应用在实际工程中。
- 用频率采样法设计FIR滤波器(10-07)
- FIR结构IQ串行处理RRC滤波器(04-18)
- 优化FIR数字滤波器的FPGA实现(04-18)
- 基于Matlab的FIR数字滤波器设计(10-07)
- 详解FIR滤波器和IIR滤波器的区别(04-04)
- GreenFire系统:智能电网的核心(08-25)