IIR数字滤波器的结构与设计.docx
- 文档编号:24029426
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:15
- 大小:54.53KB
IIR数字滤波器的结构与设计.docx
《IIR数字滤波器的结构与设计.docx》由会员分享,可在线阅读,更多相关《IIR数字滤波器的结构与设计.docx(15页珍藏版)》请在冰豆网上搜索。
IIR数字滤波器的结构与设计
4.3 IIR数字滤波器的结构与设计
IIR滤波器系统函数的极点可以在单位圆内的任何位置,实现IIR滤波器的阶次较低,所用的存储单元较少,效率高,又由于IIR数字滤波器能够保留一些模拟滤波器的优良特性,因此应用很广。
设计IIR数字滤波器的方法主要有基于冲激响应不变法的IIR数字滤波器设计,基于双线性Z变换法的IIR数字滤波器设计,数字高通、带通及带阻IIR滤波器设计,基于MATLAB函数直接设计IIR数字滤波器。
4.3.1 基于冲激响应不变法的IIR数字滤波器设计
冲激响应不变法的设计原理是利用数字滤波器的单位抽样响应序列H(z)来逼近模拟滤波器的冲激响应g(t)。
按照冲激响应不变法的原理,通过模拟滤波器的系统传递函数G(s),可以直接求得数字滤波器的系统函数H(z),其转换步骤如下:
1) 利用ω=ΩT(可由关系式
推导出),将
,
转换成
,Ω,而
不变;
2)求解低通模拟滤波器的传递函数G(s);
3) 将模拟滤波器的传递函数G(s)转换为数字滤波器的传递函数H(z)。
尽管通过冲激响应不变法求取数字滤波器的系统传递函数比较方便,并具有良好的时域逼近特性,但若G(s)不是带限的,或是抽样频率不高,那么在
中将发生混叠失真,数字滤波器的频率响应不能重现模拟滤波器的频率响应。
只有当模拟滤波器的频率响应在超过折叠频率后的衰减很大时,混叠失真才很小,此时采样脉冲响应不变法设计的数字滤波器才能满足设计的要求,这是冲激响应不变法的一个严重的缺点。
【例4-1】设模拟低通巴特沃斯滤波器,通带纹波为
=1dB,通带上限角频率
=0.2π,阻带下限角频率
=0.3π,阻带最小衰减
=15dB,根据该低通模拟滤波器,利用冲激响应不变法设计响应的数字低通滤波器,并绘出设计后的数字滤波器的特性曲线。
实现例4-1的MATLAB程序如例程4-1所示,程序的运行结果如图4-1所示。
例程4-1 利用冲激响应不变法设计数字低通滤波器
%利用模拟巴特沃斯滤波器设计数字低通滤波器
%冲激响应不变法
wp=0.2*pi;
ws=0.3*pi;
Rp=1;
As=15;
T=1;
%性能指标
Rip=10^(-Rp/20);
Atn=10^(-As/20);
OmgP=wp*T;
OmgS=ws*T;
[N,OmgC]=buttord(OmgP,OmgS,Rp,As,'s'); %选取模拟滤波器的阶数
[cs,ds]=butter(N,OmgC,'s'); %设计出所需的模拟低通滤波器
[b,a]=impinvar(cs,ds,T); %应用脉冲响应不变法进行转换
%求得相对、绝对频响及相位、群迟延响应
[db,mag,pha,grd,w]=freqz_m(b,a);
%下面绘出各条曲线
subplot(2,2,1);
plot(w/pi,mag);
title('幅频特性');
xlabel('w(/pi)');
ylabel('|H(jw)|');
axis([0,1,0,1.1]);
set(gca,'XTickMode','manual','XTick',[00.2 0.3 0.5 1]);
set(gca,'YTickMode','manual','YTick',[0AtnRip1]);
grid
subplot(2,2,2);
plot(w/pi,db);
title('幅频特性(db)');
xlabel('w(/pi)');
ylabel('dB');
axis([0,1,-40,5]);
set(gca,'XTickMode','manual','XTick',[00.20.30.51]);
set(gca,'YTickMode','manual','YTick',[-40-As-Rp0]);
grid
subplot(2,2,3);
plot(w/pi,pha/pi);
title('相频特性');
xlabel('w(/pi)');
ylabel('pha(/pi)');
axis([0,1,-1,1]);
set(gca,'XTickMode','manual','XTick',[00.20.30.51]);
grid
subplot(2,2,4);
plot(w/pi,grd);
title('群延时');
xlabel('w(/pi)');
ylabel('Sample');
axis([0,1,0,12]);
set(gca,'XTickMode','manual','XTick',[00.2 0.30.5 1]);
grid
%所使用的M文件函数
function[db,mag,pha,grd,w]=freqz_m(b,a)
%滤波器的幅值响应(相对、绝对)、相位响应及群延迟
%Usage:
[db,mag,pha,grd,w]=freqz_m(b,a) %500点对应[0,pi]
%w 采样频率;b系统函数H(z)的分子项(对FIR,b=h)
%a系统函数H(z)的分母项(对FIR,a=1)
[H,w]=freqz(b,a,500); %500点的复频响应
mag=abs(H); %绝对幅值响应
db=20*log10(mag/max(mag)); %相对幅值响应
pha=angle(H); %相位响应
grd=grpdelay(b,a,w); %群延迟响应
图4-1 利用冲激响应不变法设计的数字低通滤波器的特性曲线
4.3.2 基于双线性Z变换法的IIR数字滤波器设计
由于
的频率映射关系是根据
推导的,所以使jΩ轴每隔2π/Ts便映射到单位圆上一周,利用冲激响应不变法设计数字滤波器时可能会导致上述的频域混叠现象。
为了克服这一问题,需要找到由s平面到z平面的另外的映射关系,这种关系应保证:
1) s平面的整个jΩ轴仅映射为z平面单位圆上的一周;
2)若G(s)是稳定的,由G(s)映射得到的H(z)也应该是稳定的;
3)这种映射是可逆的,既能由G(s)得到H(z),也能由H(z)得到G(s);
4)如果G(j0)=1,那么
。
双线性Z变换满足以上4个条件的映射关系,其变换公式为
(4-10)
双线性Z变换的基本思路是:
首先将整个s平面压缩到一条从–π/Ts到π/Ts的带宽为2π/Ts的横带里,然后通过标准的变换关系
将横带变换成整个z平面上去,这样就得到s平面与z平面间的一一对应的单值关系。
在MATLAB中,双线性Z变换可以通过bilinear函数实现,其调用格式为:
[Bz,Az]=bilinear(B,A,Fs);
其中B,A为模拟滤波器传递函数G(s)的分子分母多项式的系数向量,而Bz,Az为数字滤波器的传递函数H(z)的分子分母多项式的系数向量。
【例4-2】使用双线性Z变换法设计一个低通数字滤波器,给定的数字滤波器的技术指标为fp=100Hz,fs=300Hz,αp=3dB,αp=20dB,抽样频率为Fs=1000Hz。
实现例4-2的MATLAB程序如例程4-2所示,程序的运行结果如图4-2所示。
例程4-2 基于双线性Z变换法设计数字滤波器
clear all;
fp=100;
fs=300;
Fs=1000;
rp=3;
rs=20;
%
wp=2*pi*fp/Fs;
ws=2*pi*fs/Fs;
Fs=Fs/Fs;
%Firstlytofinishfrequencyprewarping;
wap=tan(wp/2);
was=tan(ws/2);
[n,wn]=buttord(wap,was,rp,rs,'s')
%Note:
's'!
[z,p,k]=buttap(n);
[bp,ap]=zp2tf(z,p,k)
[bs,as]=lp2lp(bp,ap,wap)
%Note:
s=(2/Ts)(z-1)(z+1);Ts=1,that is2fs=1,fs=0.5;
[bz,az]=bilinear(bs,as,Fs/2)
[h,w]=freqz(bz,az,256,Fs*1000);
plot(w,abs(h));
gridon;
【运行结果】
n=
2
wn=
0.4363
bp=
0 0 1
ap=
1.0000 1.4142 1.0000
bs =
0.1056
as =
1.0000 0.4595 0.1056
bz=
0.0675 0.1349 0.0675
az=
1.0000 -1.1430 0.4128
图4-2 基于双线性Z变换法设计的数字滤波器的特性曲线
4.3.3 数字高通、带通及带阻IIR滤波器设计
除了低通数字滤波器之外,实际中还常常需要高通、带通及带阻数字滤波器,这三种数字滤波器的设计步骤如下:
步骤1:
将数字滤波器H(z)的技术指标ωp和ωs,通过Ω=tan(ω/2)转变为模拟滤波器G(s)的技术指标Ωp和Ωs,作归一化处理后,得到ηp=1,ηs=Ωs/Ωp;
步骤2:
化解为模拟原型滤波器G(s)的技术指标;
步骤3:
设计模拟原型滤波器G(p);
步骤4:
将G(p)转换为模拟滤波器的转移函数G(s);
步骤5:
将G(s)转换成数字滤波器的转移函数H(z),s=(z–1)(z+1)。
所谓原型滤波器是指归一化的低通滤波器。
本节主要讨论通过IIR数字滤波器的原型转换设计法和IIR数字滤波器的直接设计方法来设计数字高通、带通及带阻滤波器其转换方法主要有3种:
一是直接由模拟低通滤波器转换成数字高通、带通或带阻滤波器;二是先由模拟低通滤波器转换成模拟高通、带通或带阻滤波器,然后再把它转换成相应的数字滤波器;三是将模拟低通滤波器先转换成数字低通滤波器,再通过变量代换变换成高通、带通或带阻滤波器。
1.直接由模拟低通滤波器转换成数字高通、带通或带阻滤波器
(1) 模拟低通滤波器转换成数字高通滤波器
【例4-3】 利用巴特沃斯模拟滤波器设计数字高通滤波器,要求通带截止频率为0.6π,通带内衰减不大于1dB,阻带起始频率为0.4π,阻带内衰减不小于15dB,采样周期Ts=1。
该例的MATLAB实现如例程4-3所示,该数字滤波器的幅频特性曲线如图4-3所示。
例程4-3 基于巴特沃斯模拟滤波器设计数字高通滤波器
Wp=0.6*pi;
Ws=0.4*pi;
Ap=1;
As=15;
[N,wn]=buttord(Wp/pi,Ws/pi,Ap,As); %计算巴特沃斯滤波器阶次和截止频率
[b,a]=butter(N,wn,'high'); %频率变换法设计巴特沃斯高通滤波器
[db,mag,pha,grd,w]=freqz_m(b,a); %数字滤波器响应
Plot(w/pi,mag);
Title('数字滤波器幅频响应|H(ejOmega)|')
图4-3 基于巴特沃斯模拟滤波器设计的数字高通滤波器幅频响应曲线
(2) 模拟低通滤波器转换成数字带通滤波器
【例4-4】利用巴特沃斯模拟滤波器设计数字带通滤波器,要求通带上下截止频率为0.4π、0.3π,通带内衰减不大于3dB,阻带上下起始频率为0.5π、0.2π,阻带内衰减不小于18dB。
该例的MATLAB实现如例程4-4所示,该数字滤波器的幅频特性曲线如图4-4所示。
例程4-4 基于巴特沃斯模拟滤波器设计数字带通滤波器
Wp=[0.3*pi,0.4*pi];
Ws=[0.2*pi,0.5*pi];
Ap=3;
As=18;
[N,wn]=buttord(Wp/pi,Ws/pi,Ap,As); %计算巴特沃斯滤波器阶次和截止频率
[b,a]=butter(N,wn,'bandpass'); %频率变换法设计巴特沃斯带通滤波器
[db,mag,pha,grd,w]=freqz_m(b,a); %数字滤波器响应
Plot(w/pi,mag);
Title('数字滤波器幅频响应|H(ejOmega)|')
图4-4 基于巴特沃斯模拟滤波器设计的数字带通滤波器的幅频响应曲线
(3)模拟低通滤波器转换成数字带阻滤波器
【例4-5】利用巴特沃斯模拟滤波器设计数字带阻滤波器,要求通带上下截止频率为0.8π和0.2π,通带内衰减不大于1dB,阻带上下起始频率为0.7π和0.4π,阻带内衰减不小于30dB。
该例的MATLAB实现如例程4-5所示,该数字滤波器的幅频特性曲线如图4-5所示。
例程4-5 基于巴特沃斯模拟滤波器设计数字带阻滤波器
Wp=[0.4*pi,0.7*pi];
Ws=[0.2*pi,0.8*pi];
Ap=1;
As=30;
[N,wn]=buttord(Wp/pi,Ws/pi,Ap,As); %计算巴特沃斯滤波器阶次和截止频率
[b,a]=butter(N,wn,'stop'); %频率变换法设计巴特沃斯带通滤波器
[db,mag,pha,grd,w]=freqz_m(b,a); %数字滤波器响应
plot(w/pi,mag);
Title('数字滤波器幅频响|H(ejOmega)|')
图4-5 基于巴特沃斯模拟滤波器设计数字带阻滤波器
2.先由模拟低通滤波器转换成模拟高通、带通或带阻滤波器,然后再把它转换成ﻫ 相应的数字滤波器
首先由频率变换将模拟低通原型滤波器变换成模拟高通、带通或带阻滤波器,然后根据双线性Z变换将模拟高通滤波器变换成相应的高通、带通或带阻数字滤波器。
其模拟低通原型滤波器变换成模拟高通、带通或带阻滤波器的关系式如表4-1所示。
表4-1 模拟低通原型滤波器变换成模拟高通、带通或带阻滤波器频率变换
模拟滤波器类型
频率变换公式
高通
带通
带阻
3.将模拟低通滤波器先转换成数字低通滤波器,再通过变量代换变换成高通、带通
或带阻滤波器
该方法中的模拟低通滤波器先转换成数字低通滤波器,可以利用冲激响应不变法和双线性变换法来实现,再通过变量代换变换成数字高通、带通或带阻滤波器。
【例4-6】试用双线性变换法设计一个带通椭圆滤波器使其幅频特性逼近于一个具有如下技术指标的模拟带通滤波器:
Wp1=10Hz,Wp2=20Hz,在通带内的最大衰减为0.5dB,在阻带内的最大衰减为50dB,抽样频率为100Hz。
MATLAB实现如例程4-6所示,该数字滤波器的幅频特性曲线如图4-6所示。
wp1=10;
wp2=20;
Fs=100;
rp=0.5;
rs=50;
wp1=2*pi*wp1;
wp2=2*pi*wp2;
Bw=wp2-wp1;
Wo=sqrt(wp2*wp1);
[z,p,k]=ellipap(7,rp,rs);
[A,B,C,D]=zp2ss(z,p,k);
[At,Bt,Ct,Dt]=lp2bp(A,B,C,D,Wo,Bw);
[At1,Bt1,Ct1,Dt1]=bilinear(At,Bt,Ct,Dt,Fs);
[num,den]=ss2tf(At1,Bt1,Ct1,Dt1);
[H,W]=freqz(num,den);
plot(W*Fs/(2*pi),abs(H));grid;
xlabel('频率/Hz');
ylabel('幅值');
图4-6 椭圆滤波器的频率响应
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IIR 数字滤波器 结构 设计