IIR数字滤波器的设计作业流程图.docx
《IIR数字滤波器的设计作业流程图.docx》由会员分享,可在线阅读,更多相关《IIR数字滤波器的设计作业流程图.docx(19页珍藏版)》请在冰豆网上搜索。
IIR数字滤波器的设计作业流程图
序言
1.1数字滤波器介绍
数字滤波器是一个用来过滤时间离散信号数字系统,经过对抽样数据进行数学处理来达成频域滤波目标。
能够设计系统频率响应,让它满足一定要求,从而对经过该系统信号一些特定频率成份进行过滤,这就是滤波器基础原理。
假如系统是一个连续系统,则滤波器称为模拟滤波器。
假如系统是一个离散系统,则滤波器称为数字滤波器。
信号经过线性系统后,其输出信号就是输入信号和系统冲激响应卷积。
从频域分析来看,信号经过线性系统后,输出信号频谱将是输入信号频谱和系统传输函数乘积。
除非为常数,不然输出信号频谱将不一样于输入信号频谱,一些频率成份较大模,所以,中这些频率成份将得到加强,而另外部分频率成份模很小甚至为零,中这部分频率分量将被减弱或消失。
所以,系统作用相当于对输入信号频谱进行加权。
1.2使用数字滤波器原因
数字滤波器含有比模拟滤波器更高精度,甚至能够实现后者在理论上也无法达成性能。
数字滤波器相比模拟滤波器有更高信噪比。
数字滤波器还含有模拟滤波器不能比拟可靠性。
依据其冲击响应函数时域特征可将数字滤波器分为IIR(有限长冲击响应)和FIR(无限长冲击响应)。
1.3设计原理和内容
在windows环境下进行语言信号采集,经过IIR数字滤泼器设计,数字带滤波器就是用软件来实现上面滤波过程,能够很好克服模拟滤波器缺点,数字带滤波器参数一旦确定,就不会发生改变。
IIR型有很好通带和阻带特征,所以,在通常设计中选择IIR型。
IIR型又能够分成Butterworth型滤波器,ChebyshevII型滤波器和椭圆型滤波器等。
IIR数字滤波器设计通常是利用现在已经很成熟模拟滤波器设计方法来进行设计,通常采取模拟滤波器原型有butterworth函数、chebyshev函数、bessel函数、椭圆滤波器函数等。
IIR数字滤波器设计步骤:
(1)根据一定规则把给定滤波器技术指标转换为模拟低通滤波器技术指标;
(2)依据模拟滤波器技术指标设计为响应模拟低通滤波器;
(3)很据脉冲响应不变法和双线性不变法把模拟滤波器转换为数字滤波器;
(4)假如要设计滤波器是高通、带通或带阻滤波器,则首先把它们技术指标转化为模拟低通滤波器技术指标,设计为数字低通滤波器,最终经过频率转换方法来得到所要滤波器。
工程概况
我这次做信号和系统课程设计任务是在MATLAB软件学过相关知识设计简单IIR数字滤波器续系统,此次采取双线性变换法设计IIR滤波器。
在做课程设计中首先是对MATLAB软件了解和认识,掌握部分MATLAB软件基础常见函数使用方法,对MATLAB软件进行程序操作。
同时利用MATLAB软件也能对书本上知识进行验证,在MATLAB软件下编写函数程序,然后运行程序,和书本上信号求解进行对照分析和比较。
对MATLAB软件进行一定了解和利用以后,开始做此次课程设计。
正文
数字滤波器是一个离散时间系统(按预定算法,将输入离散时间信号转换为所要求输出离散时间信号特定功效装置)。
应用数字滤波器处理模拟信号时,首先须对输入模拟信号进行限带、抽样和模数转换。
数字滤波器输入信号抽样率应大于被处理信号带宽两倍,其频率响应含有以抽样频率为间隔周期反复特征,且以折叠频率即1/2抽样频率点呈镜像对称。
为得到模拟信号,数字滤波器处理输出数字信号须经数模转换、平滑。
数字滤波器含有高精度、高可靠性、可程控改变特征或复用、便于集成等优点。
数字滤波器在语言信号处理、图像信号处理、医学生物信号处理和其它应用领域全部得到了广泛应用。
数字滤波器有低通、高通、带通、带阻和全通等类型。
它能够是时不变或时变、因果或非因果、线性或非线性。
应用最广是线性、时不变数字滤波器。
3.1设计目标和意义
我们是通信工程本科生,《信号和系统》是我们关键必修课程。
现代社会学要大学培养出理论扎实,动手实践能力强大学生。
所以,此次课程设计目标就在于经过一次实践性活动加深对这门课程了解,使我们在感性认识上深入升华为理性认识。
为后继课程学习打下坚实基础。
促进对MATLAB认识,加深对数字信号处理理论方面了解,掌握数字信号处理中IIR滤波器设计。
马克思主义唯物辩证法认为,实践是连接客观实在和人主观意识通道和桥梁。
物质对意识作用和意识对物质反作用全部蕴含在实践活动当中。
也就是,实践是检验真理唯一标准。
对这门课学习情况好坏,用一次课程设计便能够检验出来。
而这,就是此次我们进行设计意义之所在。
3.2目标和总体方案
IIR被称为无限长脉冲响应滤波器,结构中有反馈,所以理论上脉冲响应永远不为零。
实现相同指标比IIR滤波器需要阶数较少。
非线性相位,用于对相位不太敏感场所,如语音。
设计时先设计模拟滤波器,再由一定转换标准转换为数字滤波器。
此次设计目标在于将IIR数字滤波器利用MATLAB知识编写对应程序实现高通、带通或带阻滤波功效。
于是特制订了一个总体方案。
因为时间只有十天,故做了以下计划安排,将这项工程分为两大部分:
程序设计和程序调试。
首先在程序设计部分由分为多个步骤:
第一步:
查阅相关IIR数字滤波器设计资料,用三天时间。
第二步:
对设计高通、带通或带阻滤波器时所用到参数作用进行更深层了解,用一到四天时间。
第三步:
设计高通、带通或带阻滤波器代码,两天时间。
其次,进行程序调试。
用一天。
3.3设计方法和内容
“工欲善其事,必先利其器”。
有了总体方案后必需用一个事半功倍设计方法来提升程序设计效率。
IIR数字滤波器含有没有限宽冲激响应,和模拟滤波器相匹配。
所以IIR滤波器设计能够采取在模拟滤波器设计基础上深入变换方法。
IIR通常是非线性,不过现在也有准线性相位设计方法得到IIR数字滤波器系数,其结果是使得通带内相位波动维持在一个工程可接收范围内。
IIR比FIR最大优点是达成一样矩形系数所需阶数少,往往5阶IIR滤波器就能够比拟数十上百阶FIR滤波器。
设计方面,我们将考虑映射为数字滤波器方法。
首先,关键研究由低通滤波器设计数字低统滤波器方法,然后将这些设计转换成更通用频率选择滤波器方法。
3.4硬件环境
微型计算机:
联想台式品牌机
中央处理器:
Pentuim4主频:
3.0GHz
主存容量:
512M
硬盘容量:
80G
3.5软件环境
WindowsXP操作系统
MATBLE软件程序
3.6IIR数字滤波器设计思绪
IIR数字滤波器可用一个n阶差分方程表示
y(n)=Σbrx(n-r)+Σaky(n-k)
不难看出,数字滤波器和模拟滤波器设计思绪相仿,其设计实质也是寻求一组系数{b,a},去迫近所要求频率响应,使其在性能上满足预定技术要求;不一样是模拟滤波器设计是在S平面上用数学迫近法去寻求近似所需特征H(S),而数字滤波器则是在Z平面寻求适宜H(z)。
IIR数字滤波器单位响应是无限长,而模拟滤波器通常全部含有没有限长单位脉冲响应,所以和模拟滤波器相匹配。
因为模拟滤波器设计在理论上已十分成熟,所以数字滤波器设计关键是将H(S)→H(Z),即,利用复值映射将模拟滤波器离散化。
已经证实,冲击响应不变法和双线性变换法能很好地担当此任,则在此基础上,数字滤波器设计就可首先归结为模拟滤波器设计了。
3.7IIR数字滤波器设计步骤图
图3-1数字滤波器设计步骤图
3.8IIR数字滤波器设计思绪
IIR数字滤波器可用一个n阶差分方程表示
或用它Z域系统函数:
对照模拟滤波器传输函数:
不难看出,数字滤波器和模拟滤波器设计思绪相仿,其设计实质也是寻求一组系数{b,a},去迫近所要求频率响应,使其在性能上满足预定技术要求;不一样是模拟滤波器设计是在S平面上用数学迫近法去寻求近似所需特征H(S),而数字滤波器则是在Z平面寻求适宜H(z)。
IIR数字滤波器单位响应是无限长,而模拟滤波器通常全部含有没有限长单位脉冲响应,所以和模拟滤波器相匹配。
因为模拟滤波器设计在理论上已十分成熟,所以数字滤波器设计关键是将H(S)→H(Z),即,利用复值映射将模拟滤波器离散化。
已经证实,冲击响应不变法和双线性变换法能很好地担当此任,则在此基础上,数字滤波器设计就可首先归结为模拟滤波器设计了。
3.9设计IIR数字滤波器两种方法
IIR数字滤波器设计就是在给定了滤波器技术指标后,确定滤波器阶数n和系数{ai,bi}。
在满足技术指标条件下,滤波器结束应尽可能低,因为滤波器阶数越低,实现滤波器成本就越低。
在设计IIR滤波器时,常见方法是利用模拟滤波器来设计数字滤波器。
广泛采取这种方法原因有:
1,模拟滤波器设计技术已很成熟;2,可得闭合形式解;3,相关模拟滤波器设计有完整设计公式和图表能够利用很查阅。
为实现从模拟滤波器到数字滤波器转换,需要从系统描述方法来考虑转单位采样响应h(n)换问题,不管是模拟滤波器还是数字滤波器,描述系统基础方法全部有四种。
滤波器描述系统方法
所以,IIR滤波器设计方法是首先将数字滤波器技术指标转化为对应模拟滤波器技术指标,然后设计满足技术指标模拟滤波器Ha(s),然后将设计出模拟滤波器Ha(s)转换为满足技术指标数字滤波器H(z)。
将Ha(s)转换成H(z)最终目标,是期望数字滤波器频率响应H(ejω)尽可能靠近模拟滤波器Ha(jΩ)。
将系统函数H(z)从s平面转换到z平面方法有很多个,但工程上常见有两种:
一个是使数字滤波器h(n)近似于模拟滤波器ha(t),可导出脉冲响应不变法;另一个使数字滤波器差分方程近似于模拟滤波器微分方程,由此可导出双线性变换法。
3.10双线性变换法基础原理
脉冲响应不变法使得数字滤波器在时域上能够很好模拟模拟滤波器,不过因为从
平面到
平面映射
含有多值性,使得设计出来数字滤波器不可避免出现频谱混迭现象。
为了克服脉冲响应不变法可能产生频谱混跌效应缺点,我们使用一个新变换——双线性变换。
双线性变换法可认为是基于对微分方程积分,利用对积分数值迫近道德。
仿真滤波器传输函数H(s)为
将展开为部份分式形式,并假设无反复几点,则
那么,对于上述函数所表示数字信号处理系统来讲,其仿真输入x(t)和模拟输出y(t)有以下关系
利用差分方程来替换导数,即
同时令
这么,便可将上面微分方程写为对应差分方程形式
两边分别取
变换,可得
这么,经过上述过程,就可得到双线性变换中基础关系,以下所表示
所谓双线性变换,仅是指变换公式中
和
关系不管是分子部份还是分母部份全部是线性。
3.11用双线性变换法设计IIR数字滤波器步骤
MATLAB中设计IIR数字滤波器具体步骤以下:
(1)把给出数字滤波器性能指标转换为模拟低通滤波器性能指标;
(2)依据转换后性能指标,经过滤波器结束选择函数,来确定滤波器最小阶数n和固有频率wn;
(3)由最小阶数n得到低通滤波器原型;
(4)由固有频率wn把模拟低通滤波器转换为模拟低通、高通、带通或带阻滤波器;
(5)利用双线性变换法把模拟滤波器转换成数字滤波器。
3.12程序源代码和运行结果
3.12.1低通滤波器
clear
wp=100*2*pi;%通带截止频率
ws=150*2*pi;%阻带截止频率
rp=0.5;%通带衰减
rs=30;%阻带衰减
fs=;%采样频率
[n,wc]=cheb2ord(wp,ws,rp,rs,'s')%计算阶数,和截止频率
[z,p,k]=cheb2ap(n,rs);%建立切比雪夫2型数字滤波器
%零极点转换到空间状态表示式
[a,b,c,d]=zp2ss(z,p,k);%零极点转换到空间状态表示式
[at1,bt1,ct1,dt1]=lp2lp(a,b,c,d,wc);%低通转换到高通
[at2,bt2,ct2,dt2]=bilinear(at1,bt1,ct1,dt1,fs);%双线性变换
[num,den]=ss2tf(at2,bt2,ct2,dt2)%空间状态表示式转换到传输函数
%绘制幅频、相频图(频率响应特征图)
figure
(1);
freqz(num,den,128,fs);
gridon;
title('幅频、相频图');
%绘制脉冲响应特征图
figure
(2);
impz(num,den,128,fs);
grid;
title('脉冲响应特征图')
%滤波检验
figure(3);
t=0:
0.0005:
0.2;
x=sin(2*pi*50*t)+sin(2*pi*200*t);
y=filter(num,den,x);
plot(t,x,':
',t,y,'-');
grid;
legend('XSignal','YSignal');
title('滤波检验')
运行结果:
n=6
wc=879.2559
num=
0.0287-0.10850.2038-0.24470.2038-0.10850.0287
den=
1.0000-4.44998.4145-8.61765.0302-1.58410.2103
图3-2
图3-3
图3-4
3.12.2高通滤波器
wp=100*2*pi;%通带截止频率
ws=150*2*pi;%阻带截止频率
rp=0.5;%通带衰减
rs=30;%阻带衰减
fs=;%采样频率
[n,wc]=cheb2ord(wp,ws,rp,rs,'s');%计算阶数,和截止频率
[z,p,k]=cheb2ap(n,rs);%建立切比雪夫2型数字滤波器
[a,b,c,d]=zp2ss(z,p,k);%零极点转换到空间状态表示式
[at1,bt1,ct1,dt1]=lp2hp(a,b,c,d,wc)%低通转换到高通
[at2,bt2,ct2,dt2]=bilinear(at1,bt1,ct1,dt1,fs)%双线性变换
[num,den]=ss2tf(at2,bt2,ct2,dt2);%空间状态表示式转换到传输函数
%绘制幅频、相频图(频率响应特征图)
figure
(1);
freqz(num,den,128,fs);
gridon;
title('幅频、相频图')
%绘制脉冲响应特征图
figure
(2);
impz(num,den,128,fs);
grid;
title('脉冲响应特征图')
%滤波检验
figure(3);
t=0:
0.0005:
0.1;
x=sin(2*pi*50*t)+sin(2*pi*200*t);
y=filter(num,den,x);
plot(t,x,':
',t,y,'-');
legend('XSignal','YSignal');
title('滤波检验')
运行结果:
n=6
wc=879.2559
num=0.5365-3.06887.4574-9.85017.4574-3.06880.5365
den=1.0000-4.52158.8272-9.47315.8745-1.99140.2878
图3-5
图3-6
图3-7
3.12.3带通滤波器
clear;
%下通带截止频率wp1=80HZ,上通带截止频率wp2=170HZ,阻带下限频率ws1=100HZ,阻带上限频率ws2=150HZ;解得wp=85HZ,ws=139Hz
wp=85*2*pi;%通带截止频率wp
ws=139*2*pi;%阻带截止频率ws
rp=0.5;%通带衰减rp
rs=30;%阻带衰减rs
fs=;%采样频率
[n,wc]=cheb2ord(wp,ws,rp,rs,'s')%计算阶数n,和截止频率wn
[z,p,k]=cheb2ap(n,rs);%建立切比雪夫2型数字滤波器
[a,b,c,d]=zp2ss(z,p,k);%零极点模型转换到空间状态模型
[at1,bt1,ct1,dt1]=lp2bp(a,b,c,d,wc,50*2*pi);%低通转换到高通
[at2,bt2,ct2,dt2]=bilinear(at1,bt1,ct1,dt1,fs);%用双线性变换法实现模拟滤波器到数字滤波器转换
[num,den]=ss2tf(at2,bt2,ct2,dt2);%空间状态模型转换到传输函数模型
%绘制幅频、相频图(频率响应特征图)
figure
(1);
freqz(num,den,128,fs);
gridon;
title('幅频、相频图')
%绘制脉冲响应特征图
figure
(2);
impz(num,den,128,fs);
grid;
title('脉冲响应特征图')
%滤波检验
figure(3);
t=0:
0.0005:
0.3;
x=sin(2*pi*50*t)+sin(2*pi*150*t);
y=filter(num,den,x);
plot(t,x,':
',t,y,'-');
legend('XSignal','YSignal');
title('滤波检验')
运行结果:
n=5
wc=849.6593
num=0.0100-0.07200.2250-0.37870.32070.0000-0.32070.3787-0.22500.0720-0.0100
den=1.0000-8.773735.4059-86.4271141.2110-161.2926130.4129-73.714527.8888-6.38240.6718
图3-8
图3-9
图3-10
3.12.4带阻滤波器
clear;
%下通带截止频率wp1=80HZ,上通带截止频率wp2=170HZ,阻带下限频率ws1=100HZ,阻带上限频率ws2=150HZ;解得wp=89HZ,ws=225Hz
wp=89*2*pi;%通带截止频率wp
ws=225*2*pi;%阻带截止频率ws
rp=0.5;%通带衰减rp
rs=30;%阻带衰减rs
fs=;%采样频率
[n,wc]=cheb2ord(wp,ws,rp,rs,'s');%计算阶数n,和截止频率wn
%建立切比雪夫2型数字滤波器%计算阶数n,和截止频率wn
[z,p,k]=cheb2ap(n,rs);%建立切比雪夫2型数字滤波器%计算阶数n,和截止频率wn
[a,b,c,d]=zp2ss(z,p,k);%零极点模型转换到空间状态模型
[at1,bt1,ct1,dt1]=lp2bs(a,b,c,d,wc,100*2*pi);%低通转换到高通
[at2,bt2,ct2,dt2]=bilinear(at1,bt1,ct1,dt1,fs);%用双线性变换法实现模拟滤波器到数字滤波器转换
[num,den]=ss2tf(at2,bt2,ct2,dt2);%空间状态模型转换到传输函数模型
%绘制幅频、相频图(频率响应特征图)
figure
(1);
freqz(num,den,128,fs);
gridon;
title('幅频、相频图')
%绘制脉冲响应特征图
figure
(2);
impz(num,den,128,fs);
grid;
title('脉冲响应特征图')
%滤波检验
figure(3);
t=0:
0.0005:
0.1;
x=sin(2*pi*50*t)+sin(2*pi*150*t);
y=filter(num,den,x);
plot(t,x,':
',t,y,'-');
grid;
title('滤波检验')
运行结果:
n=4
wc=1.1017e+003
num=0.6283-4.272113.3917-25.111230.7305-25.111213.3917-4.27210.6283
den=1.0000-6.019616.7013-27.766330.1994-21.988710.4750-2.99190.3947
图3-11
图3-12
图3-13
3.13结论
此次设计进展顺利,准期完成,而且达成了预先设计要求,完全落实和实施了设计总体方案。
对于IIR数字滤波器基础操作描述和实现比较成功。
然而,限于时间和水平,这个设计还有很多不足之处。
3.13.1存在问题
此次数字滤波器设计方法是基于MATLAB数字滤波器设计,是用学过数字信号理论为依据,用MATLAB代码来实现。
课程设计过程中,经过IIR数字滤波器设计实例,说明怎样利用MATLAB来完成数字滤波器设计。
但运行过程中有时会出现函数使用错误,参数设置错误现象。
3.13.2处理方案
查阅更多资料,加深我们对MATLAB知识了解,了解多种参数使用方法及它作用,设计时多注意函数使用方法及参数设置。
确保设计出滤波器每次全部能正确运行。
致谢
参考文件
[1]薛年喜MATLAB在数字信号处理原理及应用(第二版)清华大学出版社
[2]谢平王娜林洪彬信号处理原理及应用机械工业出版社
[3]吴湘淇肖煕郝晓莉信号系统和信号处理软硬件实现电子工业出版社
[4]周浩敏.王睿.测试信号处理技术北京航空航天大学出版社
[5]程佩青《数字信号处理教程》北京清华大学出版社2月
[6]赵知劲、刘顺兰《数字信号处理试验》浙江大学出版社
[7]胡良剑、孙晓君《MATLAB数学试验》高等教育出版社