IIR滤波器,FIR滤波器
FIR,全称Finite Impulse Response filter,有限脉冲响应滤波器。对于脉冲输入信号,其输出响应是有限的,经特定时间后,输出结果变为零。该类型滤波器的输出表达式,往往只对输入信号及其历史信号进行了包含,一般表达式: y ( k ) = c 0 x ( k ) + c 1 x ( k − 1 ) + c 2 x ( k − 2 ) + . . . + c n x ( k − n ) y(k)=c_0x(k) + c_1x(k-1)+c_2x(k-2)+...+c_nx(k-n) y(k)=c0x(k)+c1x(k−1)+c2x(k−2)+...+cnx(k−n);
IIR,全称Infinite Impulse Response filter,无限脉冲响应滤波器。对于脉冲输入信号,其输出响应是无限延续的。该类型滤波器的输出表达式,不仅对输入信号及其历史信号进行包含,还会对历史输出信号进行包含,一般表达式: y ( k ) = a 0 x ( k ) + a 1 x ( k − 1 ) + a 2 x ( k − 2 ) + . . . + b 1 y ( k − 1 ) + b 2 y ( k − 2 ) + . . . y(k)=a_0x(k) + a_1x(k-1)+a_2x(k-2)+...+b_1y(k-1)+b_2y(k-2)+... y(k)=a0x(k)+a1x(k−1)+a2x(k−2)+...+b1y(k−1)+b2y(k−2)+...。
一阶滤波器、二阶滤波器传递函数
以传递函数的形式,对一滤波器和二阶滤波器进行描述,如需进行离散化处理,请参考:传递函数离散化方法。
类型 | 传递函数 |
---|---|
一阶低通滤波器 | F ( s ) = ω 0 s + ω 0 F\left( s \right) = \frac{{{\omega _0}}}{{s + {\omega _0}}} F(s)=s+ω0ω0 |
一阶高通滤波器 | F ( s ) = s s + ω 0 F\left( s \right) = \frac{s}{{s + {\omega _0}}} F(s)=s+ω0s |
二阶低通滤波器 | F ( s ) = ω 0 2 s 2 + 2 ξ ω 0 s + ω 0 2 F\left( s \right) = \frac{{{\omega _0}^2}}{{{s^2} + 2\xi {\omega _0}s + {\omega _0}^2}} F(s)=s2+2ξω0s+ω02ω02 |
二阶高通滤波器 | F ( s ) = s 2 s 2 + 2 ξ ω 0 s + ω 0 2 F\left( s \right) = \frac{{{s^2}}}{{{s^2} + 2\xi {\omega _0}s + {\omega _0}^2}} F(s)=s2+2ξω0s+ω02s2 |
二阶带通滤波器 | F ( s ) = 2 ξ ω 0 s s 2 + 2 ξ ω 0 s + ω 0 2 F\left( s \right) = \frac{{2\xi {\omega _0}s}}{{{s^2} + 2\xi {\omega _0}s + {\omega _0}^2}} F(s)=s2+2ξω0s+ω022ξω0s |
二阶带阻滤波器 | F ( s ) = s 2 + ω 0 2 s 2 + 2 ξ ω 0 s + ω 0 2 F\left( s \right) = \frac{{{s^2} + {\omega _0}^2}}{{{s^2} + 2\xi {\omega _0}s + {\omega _0}^2}} F(s)=s2+2ξω0s+ω02s2+ω02 |
一阶滤波器、二阶滤波器波特图
一阶滤波器波特图
代码如下:
% 定义截止频率
omega_0 = 10;
% 创建一阶低通滤波器传递函数模型
H_lowpass = tf(omega_0, [1, omega_0]);
% 创建一阶高通滤波器传递函数模型
H_highpass = tf([1, 0], [1, omega_0]);
% 使用 bode 函数绘制频率响应曲线
figure;
bode(H_lowpass, 'b', H_highpass, 'r');
grid on;
legend('Lowpass', 'Highpass');
title('一阶滤波器');
结果如下:
二阶滤波器波特图
代码如下:
% 定义截止频率和阻尼比
omega_0 = 10;
xi = 0.707;
% 创建二阶低通滤波器传递函数模型
H_second_order_lowpass = tf(omega_0^2, [1, 2*xi*omega_0, omega_0^2]);
% 创建二阶高通滤波器传递函数模型
H_second_order_highpass = tf([1, 0, 0], [1, 2*xi*omega_0, omega_0^2]);
% 创建二阶带通滤波器传递函数模型
H_second_order_bandpass = tf([2*xi*omega_0, 0], [1, 2*xi*omega_0, omega_0^2]);
% 创建二阶带阻滤波器传递函数模型
H_second_order_bandstop = tf([1, 0, omega_0^2], [1, 2*xi*omega_0, omega_0^2]);
% 创建第一个图:对比二阶低通和高通滤波器的频率响应曲线
figure;
subplot(1,2,1);
bode(H_second_order_lowpass, 'b', H_second_order_highpass, 'r');
grid on;
legend('Lowpass', 'Highpass');
title('二阶滤波器:低通、高通');
% 创建第二个图:对比二阶带通和带阻滤波器的频率响应曲线
subplot(1,2,2);
bode(H_second_order_bandpass, 'g', H_second_order_bandstop, 'm');
grid on;
legend('Bandpass', 'Bandstop');
title('二阶滤波器:带通、带阻');
结果如下:
巴特沃斯、切比雪夫、贝塞尔滤波器
相比较于理想滤波器,上述一阶、二阶滤波器足以满足大多数应用需求。如对滤波器特性有更高的需求,包括幅频特性或相频特性,可考虑理想滤波器的其他逼近,如巴特沃斯滤波器、贝塞尔滤波器。