IIR型滤波器设计.doc
文本预览下载声明
目 录
1.IIR滤波器的基本原理 1
2.IIR滤波器的设计 2
2.1 直接型滤波器的设计 2
2.1.1 设计原理 2
2.1.2 举例设计一个8阶IIR滤波器 3
2.2 级联型结构的实现 5
2.2.1 设计原理 5
2.2.2 设计一个二阶子系统模块 6
2.2.3 利用二阶子模块系统设计级联型滤波器 7
3.小结 9
IIR型滤波器设计
1.IIR滤波器的基本原理
无限脉冲响应(IIR)滤波器具有很高的滤波效率,所要求的阶数不仅比FIR滤波器低,而且可以利用模拟滤波器的设计成果。
IIR滤波器理论和结构
IIR滤波器是一种递归滤波器,具有反馈结构,一般认为具有无限的脉冲响应。下图给出了具有递归结构的滤波器。
图1 递归结构图
其系统的差分方程可以写成:
(式1)
由此可以得到系统传递函数为:
(式2)
IIR滤波器和FIR滤波器相比,最大的特点就是阻带衰减效率高,相位特性差。正是相位特性非线性这个缺陷限制了IIR的广泛应用。
对于IIR传递函数而言,零级点图是其重要属性,最关键的一条就是所有的极点必须在单位圆内。由于线性相位滤波器所有的零点和极点都关于单位圆对称的,所以只允许极点位于z=0。因此,IIR滤波器(极点)只能实现近似的线性相位。为了达到这一目的,需要采用一种来自模拟滤波器设计的著名原则:全通滤波器具有单位增益,引入非零相位增益,用来实现通带内的线性化。
IIR滤波器的FPGA实现
2.IIR滤波器的设计
对于IIR滤波器的实现有很多种方式,包括直接型、级联型和并联型等。其中直接型是最基本的一种结构,级联型是一种较为容易实现和高效的方式。
直接型结构的实现
2.1 直接型滤波器的设计
2.1.1 设计原理
如前所述,IIR滤波器的差分方程为:
(式3)
由于在硬件中,乘法和加法操作一般只能有两个输入,所以可以得到如下图所示的网络结图。
图2 直接型IIR滤波器的网络结构图
系数组b对应H(z)中的分子多项式,a对应于H(z)中分母多项式,前者实现滤波器的零点,后者实现滤波器的极点。直接型结构的优点是容易实现,但需要比较大的存储空间。
2.1.2 举例设计一个8阶IIR滤波器
//设计一个8阶的IIR滤波器的verilog程序代码
module IIR_Filter_8(Data_out,Data_in,clock,reset);
parameter order = 8;
parameter word_size_in = 8;
parameter word_size_out = 2*word_size_in + 2;
parameter b0 = 4; //前馈滤波器系数
parameter b1 = 22;
parameter b2 = 65;
parameter b3 = 110;
parameter b4 = 110;
parameter b5 = 65;
parameter b6 = 22;
parameter b7 = 6;
parameter a1 = 25; //反馈滤波器系数
parameter a2 = -70;
parameter a3 = 99;
parameter a4 = -85;
parameter a5 = 47;
parameter a6 = -16;
parameter a7 = 4;
parameter a8 = 1;
output [word_size_out-1 : 0] Data_out;
input [word_size_in-1 : 0] Data_in;
input clock,reset;
reg [word_size_in-1 : 0] Samples_in[0 : order-1];
reg [word_size_in-1 : 0] Samples_out[1 : order];
wire [word_size_out-1 : 0] Data_feedforward;
wire [word_size_out-1 : 0] Data_feedback;
integer k;
assign Data_feedforward=b0*Samples_in[1] + b1*Samples_in[2] + b2*Samples_in[3] + b3*Samples_in[4]+ b4*Samples_in[5]
显示全部