IIR数字滤波器的设计流程图DOC.docx
- 文档编号:23099678
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:23
- 大小:224.29KB
IIR数字滤波器的设计流程图DOC.docx
《IIR数字滤波器的设计流程图DOC.docx》由会员分享,可在线阅读,更多相关《IIR数字滤波器的设计流程图DOC.docx(23页珍藏版)》请在冰豆网上搜索。
IIR数字滤波器的设计流程图DOC
目录
目录0
前言1
1.1数字滤波器简介1
1.2使用数字滤波器的原因1
1.3设计的原理和内容1
工程概况1
正文1
3.1设计的目的和意义2
3.2目标和总体方案2
3.3设计方法和内容2
3.4硬件环境2
3.5软件环境3
3.6IIR数字滤波器设计思路3
3.7IIR数字滤波器的设计流程图3
3.8IIR数字滤波器设计思路4
3.9设计IIR数字滤波器的两种方法4
3.10双线性变换法的基本原理4
3.11用双线性变换法设计IIR数字滤波器的步骤6
3.12程序源代码和运行结果6
3.12.1低通滤波器6
3.12.3带通滤波器10
3.12.4带阻滤波器12
3.13结论15
3.13.1存在的问题15
3.13.2解决方案15
致谢15
参考文献15
前言
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=2000;%采样频率
[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=2000;%采样频率
[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=2000;%采样频率
[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=2000;%采样频率
[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在数字信号处理原理及应用(第二版)清华大学出版社2008
[2]谢平王娜林洪彬信号处理原理及应用机械工业出版社2009
[3]吴湘淇肖煕郝晓莉信号系统与信号处理的软硬件实现电子工业出版社2002年
[4]周浩敏.王睿.测试信号处理技术北京航空航天大学出版社2005年
[5]程佩青《数字信号处理教程》北京清华大学出版社2007年2月
[6]赵知劲、刘顺兰《数字信号处理实验》浙江大学出版社
[7]胡良剑、孙晓君《MATLAB数学实验》高等教育出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IIR 数字滤波器 设计 流程图 DOC
![提示](https://static.bdocx.com/images/bang_tan.gif)