Fir滤波器简介
FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,又称为非递归型滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。
5位直接型Fir滤波器结构
长度为M的因果有限冲激响应滤波器由传输函数H(z)描述:
它是次数为M-1的z-1的一个多项式。在时域中,上述有限冲激响应滤波器的输入输出关系为: 其中y(n)和x(n)分别是输出和输入序列。
由Matlab得出五位Fir滤波器的Z域函数为:
结构图
各模块设计
设计模块
寄存器
寄存器用于寄存一组二值代码,只要求它们具有置1、置0的功能即可。
本设计中使用带异步复位reset_n端的D触发器,当reset_n=1时,输出信号q_out=d_in,当reset_n=0且上升沿脉冲到达时q_out=0。
1 | module Dff16(reset_n,clk,d_in,q_out); |
加法器
由于本设计只涉及到相加,而没有减法,所以本加法器实现两个32位无符号数的相加运算。
即将输入的两数,在时钟脉冲到来时相加运算,输出结果。
1 | module add32(a,b,out); |
乘法器
从资源和速度考虑,常系数乘法运算可用移位相加来实现。
本设计采用加法树乘法器兼顾了资源与速度,将每个乘数例化了一个数组,然后移位相加得出乘积,这样使得乘法运算可以一个周期内完成。
1 | module mult16(outcome,a,b); |
乘法器测试
Verilog小数乘法实现方法
顶层模块
将3个16位寄存器,4个16位乘法器,3个32位加法器在顶层模块分别实例化。
1 | module Fir(reset_n,clk,x_in,y_out); |
测试数据生成
测试块
1 |
|
仿真及验证
仿真波形
数据验证
参考文献:《高通FIR数字滤波器设计》,电子科技大学,周恒,《ASIC课程设计报告二》
演示PPT:5位Fir高通滤波器.pptx