本文主要是介绍IIR数字滤波器的设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
IIR数字滤波器的设计
FIR与IIR的区别
- 两种滤波器都是数字滤波器。根据冲激响应的不同,将数字滤波器分为有限冲激响应(FIR)滤波器和无限冲激响应(IIR)滤波器。
- 对于FIR滤波器,冲激响应在有限时间内衰减为零,其输出仅取决于当前和过去的输入信号值。对于IIR滤波器,冲激响应理论上应会无限持续,其输出不仅取决于当前和过去的输入信号值,也取决于过去的信号输出值。
- FIR滤波器的设计可以对给定的频率特性直接进行设计,而IIR滤波器可根据已经成熟的模拟滤波器设计。
经典的模拟滤波器
- 巴特沃斯滤波器的特点是通频带内的频率响应曲线最大限度平坦,没有起伏,而在阻频带则逐渐下降为零。 巴特沃斯滤波器的频率特性曲线,无论在通带内还是阻带内都是频率的单调函数。因此,当通带的边界处满足指标要求时,通带内肯定会有裕量。所以,更有效的设计方法应该是将精确度均匀的分布在整个通带或阻带内,或者同时分布在两者之内。这样就可用较低阶数的系统满足要求。这可通过选择具有等波纹特性的逼近函数来达到。
- 切比雪夫滤波器是在通带或阻带上频率响应幅度等波纹波动的滤波器,振幅特性在通带内是等波纹。在阻带内是单调的称为切比雪夫I型滤波器;振幅特性在通带内是单调的,在阻带内是等波纹的称为切比雪夫II型滤波器。采用何种形式的切比雪夫滤波器取决于实际用途。
- 贝赛尔(Bessel)滤波器是具有最大平坦的群延迟(线性相位响应)的线性过滤器。贝赛尔滤波器常用在音频天桥系统中。模拟贝赛尔滤波器描绘为几乎横跨整个通频带的恒定的群延迟,因而在通频带上保持了被过滤的信号波形。贝塞尔(Bessel)滤波器具有最平坦的幅度和相位响应。带通的相位响应近乎呈线性。Bessel滤波器可用于减少所有IIR滤波器固有的非线性相位失真。
matlab实战
下面将通过matlab设计出制定要求的滤波器,并给出相应的频率特性。
1.巴特沃兹低通滤波器
%—————————————————————————–
% 巴特沃兹低通
% 设计要求: fp=100hz, fs=0hz; αp=3db, αs=20db; Fs=1000hz
% 10^(-3/20)=0.707; 10^(-20/20)=0.1
%—————————————————————————–
clear;
close;
clc;fp=100;fs=300;
Fs=1000;
wp=fp*2*pi/Fs;
ws=fs*2*pi/Fs;
Fs=1000;
rp=3;rs=20;
% Firstly to finish frequency prewarping;
[n,wn]=buttord(wp/pi,ws/pi,rp,rs); %wn:buttord得到的自然截至频率 一般>wp
[bz,az]=butter(n,wp/pi) %参数2输入通带截至频率
%
[bz1,az1]=butter(n,wn)[h,w]=freqz(bz,az,128,Fs);
[h1,w1]=freqz(bz1,az1,128,Fs);
plot(w,abs(h), w1,abs(h1),’g.’);grid on;
% plot(w,abs(h));grid on;
2.巴特沃兹带通滤波器
%————————————————————————–
% 巴特沃兹带通
% 设计要求:
% 通带范围:300-400hz; 采样频率Fs=1000hz
% 带边频率衰减<=3db; 200hz以下500hz以上衰减>=18db
% 10^(-3/20)=0.707; 10^(-18/20)=0.125
% to design a Butterworth Bandpass digital filter.
% ————————————————————————-
clear;
close;
clc;fp=[300 400];fs=[200 500];
rp=3;rs=18;
Fs=2000;
wp=fp*2*pi/Fs;ws=fs*2*pi/Fs;
%
% 求出阶次;
[n,wn]=buttord(wp/pi,ws/pi,rp,rs);% 再设计 Butterworth 带通滤波器;
[b,a]=butter(n,wp/pi);
[h,w]=freqz(b,a,256,Fs);
% h=20*log10(abs(h));
plot(w,abs(h));grid;ylabel(‘Bandpass DF’)
xlabel(’ Hz’)
-
- 切比雪夫1型滤波器
%—————————————————————————-
% 切比雪夫1型滤波器设计要求:
% fsl=200hz,fsh=600hz;fl=300hz,fh=500hz;
% 通带衰减<=0.1db,阻带衰减>=30db
% 10^(-0.1/20)=0.9885; 10^(-30/20)=0.0316
% to test cheb1ord,cheby1,
% to design a Chebyshev-I Bandpass DF.
%—————————————————————————-
clear all;f1=300;f3=500;
fsl=200;fsh=600;
rp=0.1;rs=30;
Fs=2000;
%
wp1=2*pi*f1/Fs;
wp3=2*pi*f3/Fs;
wsl=2*pi*fsl/Fs;
wsh=2*pi*fsh/Fs;
wp=[wp1 wp3];ws=[wsl wsh];
%
% 设计切比雪夫滤波器;
[n,wn]=cheb1ord(ws/pi,wp/pi,rp,rs);
[bz1,az1]=cheby1(n,rp,wp/pi)
[h,w]=freqz(bz1,az1,256,Fs);
% h=20*log10(abs(h));
h = abs(h);
4.切比雪夫2型滤波器
%—————————————————————————-
% 切比雪夫2型滤波器设计要求:
% fsl=200hz,fsh=600hz;fl=300hz,fh=500hz;
% 通带衰减<=0.1db,阻带衰减>=30db
% 10^(-0.1/20)=0.9885; 10^(-30/20)=0.0316
% to test cheb1ord,cheby1,
% to design a Chebyshev-I Bandpass DF.
%—————————————————————————-
clear all;f1=300;f3=500;
fsl=200;fsh=600;
rp=0.1;rs=30;
Fs=2000;
%
wp1=2*pi*f1/Fs;
wp3=2*pi*f3/Fs;
wsl=2*pi*fsl/Fs;
wsh=2*pi*fsh/Fs;
wp=[wp1 wp3];ws=[wsl wsh];
%
% 设计切比雪夫滤波器;
[n,wn]=cheb2ord(ws/pi,wp/pi,rp,rs);
[bz1,az1]=cheby2(n,rp,wp/pi)
[h,w]=freqz(bz1,az1,256,Fs);
h=20*log10(abs(h));
% h = abs(h);
plot(w,h);grid on;椭圆滤波器:
%—————————————————————————-
% 椭圆滤波器设计要求:
% fsl=200hz,fsh=600hz;fl=300hz,fh=500hz;
% 通带衰减<=0.1db,阻带衰减>=30db
% 10^(-0.1/20)=0.9885; 10^(-30/20)=0.0316
% to test cheb1ord,cheby1,
% to design a Chebyshev-I Bandpass DF.
%—————————————————————————-
clear all;f1=300;f3=500;
fsl=200;fsh=600;
rp=0.1;rs=30;
Fs=2000;
%
wp1=2*pi*f1/Fs;
wp3=2*pi*f3/Fs;
wsl=2*pi*fsl/Fs;
wsh=2*pi*fsh/Fs;
wp=[wp1 wp3];ws=[wsl wsh];
%
[n,wn]=ellipord(ws/pi,wp/pi,rp,rs);
[bz1,az1]=ellip(n,rp,rs,wp/pi);
[h,w]=freqz(bz1,az1,256,Fs);
h=20*log10(abs(h));
% h = abs(h);
plot(w,h);grid on;
- 当滤波器具有相同阶数时:
巴特沃斯滤波器通带最平坦,阻带下降慢。
切比雪夫滤波器通带等纹波,阻带下降较快。
椭圆滤波器,椭圆滤波器在通带等纹波(阻带平坦或等纹波),阻带下降最快。
贝塞尔滤波器通带等纹波,阻带下降慢。也就是说幅频特性的选频特性最差。但是,贝塞尔滤波器具有最佳的线性相位特性。
这篇关于IIR数字滤波器的设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!