FIR滤波器设计


*****该文档为了说明FIR滤波器,IIR滤波器的原理,数学含义,设计方法*****

一、原理
1)FIR有限冲击响应,IIR无限冲击响应。前者无反馈,只与当前和历史输入有关,
后者有反馈,不仅与当前和历史输入有关,还与历史输出有关。FIR输出相位线性,
设计简单,但是阶数更高;IIR输出相位不线性,设计困难,但相同性能,阶数更比
FIR低。
2)滤波其实就是对输入信号(图像/音频/其他信号)的某种加权叠加,结果表现为
对想要信息的增强,对不想要信息的弱化。上述加权系数,就是滤波器的
系统传递函数(单位冲击响应)。
3)以下主要针对FIR展开说明,IIR后续补充。

二、数学含义
1)卷积公式:

                           N-1
                          ——
y(k)= x(k)*a(k) = \ x(n)a(k-n) k=0,1,2,... 且 N-1 ≤ k 。
                           /
                          ——
                          n=0
2)k表示滤波器阶数,也即滤波器系数长度。
3)N表示将输入信号,及其历史N-1个输入信号,输入滤波器做卷积运算。
4)卷积运算,是将输入信号(上述N点数据)先扩充为k点数据(N-1<k时,
在历史数据之前添0),然后翻转,并与系数相乘,最后累加。
5)最后的累加和作为该点输入信号的优化值(滤波输出结果)。

三、设计方法(系数求解)
1)关键在于设计出滤波器系数,FIR方法有窗函数、内插值等等。
2)工具可用matlab的Filter Designer。

四、FPGA实现
1)IP核实现法,设置好IP核参数,并用系数文件(coe文件)初始化IP核,
然后调用IP即可。
2)代码实现法,根据卷积公式,设计逻辑代码,将输入数据与系数做卷积和。

猜你喜欢

转载自www.cnblogs.com/zuilangsanshu/p/12958416.html