IIR数字滤波器的设计.docx
《IIR数字滤波器的设计.docx》由会员分享,可在线阅读,更多相关《IIR数字滤波器的设计.docx(21页珍藏版)》请在冰豆网上搜索。
IIR数字滤波器的设计
《数字信号处理课程设计报告》
题目:
IIR数字滤波器的设计
学院:
专业:
班级:
姓名:
指导教师:
目录
1.课程设计目的和要求1
1.1设计目的1
1.2设计要求1
2.设计理论基础1
3.MATLAB概述2
4.设计内容3
4.1设计思想3
4.2推导滤波器最小阶数与设计指标的关系4
4.3双线性变换法设计Butterworth低通滤波器6
4.4冲激响应不变法设计Butterworth低通滤波器8
4.5双线性变换法设计Chebyshev1型低通滤波器11
4.6冲激响应不变法设计Chebyshev1型低通滤波器13
5.总结16
参考书目16
1.课程设计目的及要求
1.1设计目的
(1)学会MATLAB的使用,掌握MATLAB的程序设计方法;
(2)掌握数字信号处理的基本概念、基本理论和基本方法,增强我们将理论知识化为实践技巧能力;
(3)加深我们对于在数字信号处理这门学科的印象,巩固我们在课堂上学习到的理论知识和实验方法;
(4)掌握MATLAB设计IIR滤波器;并且让我们进一步熟悉数字信号处理中常用软件Matlab的使用方法;
(5)学会用MATLAB对信号进行分析和处理;
(6)在这个过程中同时培养我们发现问题、分析问题以及解决问题的能力。
1.2设计要求
(1)使用双线性变换法设计一个数字低通Butterworth滤波器;
(2)设计指标是:
;
(3)对信号进行滤波处理;
(4)对滤波前后的信号频谱进行对比分析;
2.设计理论基础
数字滤波器是数字信号处理理论的一部分。
数字信号处理主要是研究用数字或符号的序列来表示信号波形,并用数字的方式去处理这些序列,把它们改变成在某种意义上更为有希望的形式,以便估计信号的特征参量,或削弱信号中的多余分量和增强信号中的有用分量。
具体来说,凡是用数字方式对信号进行滤波、变换、调制、解调、均衡、增强、压缩、固定、识别、产生等加工处理,都可纳入数字信号处理领域。
数字信号处理学科的一项重大进展是关于数字滤波器设计方法的研究。
关于数字滤波器,早在上世纪40年代末期就有人讨论它的可能性问题,在50年代也有人讨论过数字滤波器,但直到60年代中期,才开始形成关于数字滤波器的一整套完整的正规理论。
在这一时期,提出了各种各样的数字滤波器结构,有的以运算误差最小为特点,有的则以运算速度高见长,而有的则二者兼而有之。
出现了数字滤波器的各种通近访法和实现方法,对递归和非递归两类滤波器作了全面的比较,统一了数字滤波器的基本概念和理论。
在数字滤波过程中,我们主要讨论离散时间序列。
设输入序列为x(n),滤波器对单位采样序列δ(n)的响应为h(n)。
因δ(n)在时域离散信号和系统中所起的作用相当于单位冲激函数在时域连续信号和系统中所起的作用。
所以数字滤波器的序列y(n)就是以上两个序列的卷积,即:
(1)
同样,两个序列卷积的z变换等于各自z变换的乘积,即:
(2)
用
代入上式,则可得到时域离散系统的频谱特性:
(3)
式中
和
分别是数字滤波器的输出序列和输入序列的频谱特性,而
则是单位采样序列h(n)的频特性谱,又称为数字滤波器的频域响应。
输入序列
经过滤波后变为
。
因此,只需要按照输入信号频谱
的特点和我们处理信号的目的,选择适当的频域响应
,使得滤波后的输出信号频谱
满足我们设计的要求。
3.MATLAB概述
MATLAB是英文MatrixLaboratory(矩阵实验室)的缩写。
它是由美国Mathworks公司推出的用于数值计算和图形处理的数学计算环境。
在MATLAB环境下,用户可以集成地进行程序设计、数值计算、图形绘制、输入输出、文件管理等各项操作。
它优秀的数值计算能力和卓越的数据可视化能力使其很快在同类
软件中脱颖而出。
MATLAB系统最初是由CleveMoler用FORTRAN语言设计的,现在的MATLAB程序是Mathworks公司用C语言开发的。
它的第一版(DOS版本1.0)发行于1984年;经过20年的不断改进,MATLAB已经成为国际上最流行的科学与工程计算的软件工具,最流行的计算机高级编程语言了,有人称它为“第四代”计算机语言,它在国内外高校和研究部门正扮演着重要的角色。
MATLAB语言的功能也越来越强大,不断适应新的要求提出新的解决方法。
可以预见,在科学运算、自动控制与科学绘图领域MATLAB语言将长期保持其独一无二的地位。
MATLAB语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同其他语言的特点。
无限长单位冲级响应数字滤波器的优点是可以利用模拟滤波器设计的结果,而模拟滤波器的设计有大量图表可查,方便简单。
但是它也有明显的缺点,就是相位的非线性;若需线性相位,则要采用全通网络进行相位校正[3]。
IIR滤波器可以代替对非线性相位没有要求的FIR滤波器,同样幅度特性,IIR滤波器所需阶数比FIR滤波器的阶数少很多。
IIR数字滤波器的设计借助模拟滤波器原型,再将模拟滤波器转换成数字滤波器,这些过程已经成为一整套成熟的设计程序。
模拟滤波器的设计已经有了一套相当成熟的方法,它不但有完整的公式,而且还有较为完整的图表查询,因此,充分利用这些已有的资源将会给数字滤波器的设计带来很大的方便。
已知数字低通滤波器的设计要求,首先设计一个等效的模拟滤波器,然后再将它映射为所期望的数字滤波器来确定
。
在信号处理中,软件实现大多使用BASIC、FORTRAN和C语言,这在处理FFT等复杂的数学问题和输出图形时有许多不便。
MATALAB是一种可视化的功能强大的系统分析和仿真工具,其工具箱中丰富的函数和作图功能正是其他语言所缺乏的。
本文在分析IIR滤波器设计法的基础上,用MATALAB语言实现了IIR滤波器的设计,通过修改某些参数和比较结果,提出了IIR滤波器设计中应注意的问题。
4.设计内容
4.1设计思想
IIR滤波器是无限脉冲响应滤波器,具有非线性的特点,它的设计方法与FIR滤波器的设计有很大的不同[1]。
本文使用双线性变换法设计和冲激响应不变法设计IIR数字滤波器的基本设计思路是:
首先确定相关的技术参数;其次,设计模拟滤波器(Butterworth滤波器),得到其传输函数
;第三,将模拟滤波器的
从s平面转换到z平面,得到数字滤波器系统函数
;最后通过对
的处理,输出幅频特性等曲线图[2]。
图1平面转换图
4.2推导滤波器最小阶数与设计指标的关系
滤波器阶数就是其系统函数的极点个数。
为了避免滤波器的复杂程度与我们的要求不匹配,造成不必要的成本浪费,我们在滤波器设计前先需要确定其合适的阶数,即满足设计要求的最小阶数。
下面就分别以Butterworth滤波器Chebyshev1型滤波器为例,推导其阶数的数学模型。
①对于Butterworth滤波器,若给出滤波器的设计指标为:
通带截止频率
,阻带截止频率
,通带最大纹波
,阻带最小纹波
。
因为滤波器幅频特性为:
(4)
其中
为3dB截止频率,N为滤波器阶数。
所以当
以及
时,可得到:
(5)
然后由
与
的关系式可得到:
(6)
由上面的(5)式和(6)式可以联立求得:
(7)
通过上面的结果我们就可以求得滤波器阶数N为:
(8)
所以滤波器的最小阶数就是大于上式所求得的值的最小整数。
②对于Chebyshev1型滤波器,推导方式和上面类似,同样的给出滤波器的设计指标为:
通带截止频率
,阻带截止频率
,通带最大纹波
,阻带最小纹波
。
因为滤波器幅频特性为:
(9)
又因为通带内起伏的等纹波参数
,系数
,所以可以得出滤波器阶数为:
(10)
式中
。
滤波器的最小阶数就是取大于上式的值的最小整数。
4.3双线性变换法设计Butterworth低通滤波器
双线性变换法是在完成模拟系统设计后,再进行反变换,从模拟系统函数得到数字系统函数。
它没有采样过程,不存在频率混叠问题,适应于各类滤波器的变换,但是变换在高频区域会出现强烈的非线性。
下面就是基于Butterworth模拟原型滤波器,使用双线性变换法设计数字低通滤波器的过程。
设计指标为:
通带截止频率
=0.2π,阻带截止频率
=0.3π,通带最大纹波Rp=1dB,阻带最大纹波Rs=15dB,采样频率Fs=20000Hz。
同时,为了检测滤波器的性能,我们假定一个输入信号
,其中f1=1000Hz,f2=4000Hz,将该信号与通过滤波器之后产生的输出信号进行比较以测试滤波器的性能。
Matlab程序如下:
Wp=0.2*pi;
Ws=0.3*pi;
fs=20000;
T=1/fs;
Rp=1;
Rs=15;
wp=2*tan(Wp/2)/T;
ws=2*tan(Ws/2)/T;
[N,Wn]=buttord(wp,ws,Rp,Rs,'s');
[z,p,k]=buttap(N);
[Bap,Aap]=zp2tf(z,p,k);
[b,a]=lp2lp(Bap,Aap,Wn);
[bz,az]=bilinear(b,a,fs);
figure
(1);
[h,w]=freqz(bz,az,N,fs);
subplot(2,1,1),plot(w,abs(h));
title('ButterworthLPF幅频特性');
xlabel('频率(Hz)');ylabel('幅值(dB)');gridon;
subplot(2,1,2),plot(w,angle(h));
title('ButterworthLPF相频特性');
xlabel('频率(Hz)');ylabel('相位(degree)');gridon;
figure
(2);
f1=1000;f2=4000;
N1=100;
dt=1/fs;n=0:
N1-1;t=n*dt;
x=sin(2*pi*f1*t)+0.5*cos(2*pi*f2*t);
subplot(2,1,1),plot(t,x);
title('输入信号'),gridon;
y=filter(bz,az,x);
subplot(2,1,2),plot(t,y,'r-');
title('输出信号'),gridon;
得到的Butterworth低通滤波器幅频特性和相频特性曲线为:
由语句[N,Wn]=buttord(wp,ws,Rp,Rs,'s')我们可以用Matlab得出滤波器的最小阶数N=6。
再利用上面我们推导出的式(8),将滤波器各项指标代入可以算出N=4.7433,取大于它的最小整数得到滤波器的最小阶数为5。
二者并不一致,但差距只有1,说明我们推导出的计算Butterworth滤波器最小阶数的数学模型存在误差,但误差不大。
又因为Matlab计算滤波器的最小阶数也是估算出来的,所以这个这个误差在接受范围之类,我们推导出的数学模型可以认为是正确的。
输入信号和经过滤波后的输出信号图像为:
4.4冲激响应不变法设计Butterworth低通滤波器
冲激响应不变法是对模拟滤波器的单位冲激响应h(t)等间距采样获得数字滤波器的单位冲激响应,由此得到数字滤波器的系统函数。
这次我们设定与上面不同的设计指标:
通带截止频率
=2000π,阻带截止频率
=3000π,通带最大纹波Rp=3dB,阻带最小纹波Rs=18dB,采样频率Fs=10000Hz。
为了方便比较,我们设定一样的输入信号
。
Matlab程序如下:
wp=2000*pi;
ws=3000*pi;
fs=10000;
Rp=3;
Rs=18;
[N,wn]=buttord(wp,ws,Rp,Rs,'s');
[z,p,k]=buttap(N);
[Bap,Aap]=zp2tf(z,p,k);
[b,a]=lp2lp(Bap,Aap,wn);
[bz,az]=impinvar(b,a,fs);
figure
(1);
[h,w]=freqz(bz,az,N,fs);
subplot(2,1,1),plot(w,abs(h));
title('ButterworthLPF幅频特性');
xlabel('频率(Hz)');ylabel('幅值(dB)');gridon;
subplot(2,1,2),plot(w,angle(h));
title('ButterworthLPF相频特性');
xlabel('频率(Hz)');ylabel('相位(degree)');gridon;
figure
(2);
f1=1000;f2=4000;
N1=100;
dt=1/fs;n=0:
N1-1;t=n*dt;
x=sin(2*pi*f1*t)+0.5*cos(2*pi*f2*t);
subplot(2,1,1),plot(t,x);
title('输入信号'),gridon;
y=filter(bz,az,x);
subplot(2,1,2),plot(t,y,'r-');
title('输出信号'),gridon;
得到的Butterworth低通滤器幅频特性和相频特性曲线为:
通过比较两组幅频特性和相频特性曲线我们可以发现,其实双线性变换法和冲激响应不变法在设计较为简单的Butterworth低通滤波器时差别并不大,并且都拥有不错的设计效果。
同样的,[N,wn]=buttord(wp,ws,Rp,Rs,'s')可以得到Matlab估算出的滤波器最小阶数为N=6,和上一个滤波器一样。
输入信号和经过滤波后的输出信号图像为:
4.5双线性变换法设计Chebyshev1型低通滤波器
为了和Butterworth滤波器进行对比,我们采用和双线性变换法设计Butterworth低通滤波器时一样的设计指标:
通带截止频率
=0.2π,阻带截止频率
=0.3π,通带最大纹波Rp=1dB,阻带最大纹波Rs=15dB,采样频率Fs=20000Hz。
输入信号同样为:
。
Matlab程序如下:
Wp=0.2*pi;
Ws=0.3*pi;
fs=20000;
T=1/fs;
Rp=1;
Rs=15;
wp=2*tan(Wp/2)/T;
ws=2*tan(Ws/2)/T;
[N,Wn]=cheb1ord(wp,ws,Rp,Rs,'s');
[z,p,k]=cheb1ap(N,Rp);
[Bap,Aap]=zp2tf(z,p,k);
[b,a]=lp2lp(Bap,Aap,Wn);
[bz,az]=bilinear(b,a,fs);
figure
(1);
[h,w]=freqz(bz,az,N,fs);
subplot(2,1,1),plot(w,abs(h));
title('Chebyshev1LPF幅频特性');
xlabel('频率(Hz)');ylabel('幅值(dB)');gridon;
subplot(2,1,2),plot(w,angle(h));
title('Chebyshev1LPF相频特性');
xlabel('频率(Hz)');ylabel('相位(degree)');gridon;
figure
(2);
f1=1000;f2=4000;
N1=100;
dt=1/fs;n=0:
N1-1;t=n*dt;
x=sin(2*pi*f1*t)+0.5*cos(2*pi*f2*t);
subplot(2,1,1),plot(t,x);
title('输入信号'),gridon;
y=filter(bz,az,x);
subplot(2,1,2),plot(t,y,'r-');
title('输出信号'),gridon;
得到的Chebyshev1型低通滤波器幅频特性和相频特性曲线为:
输入信号和经过滤波后的输出信号图像为:
4.6冲激响应不变法设计Chebyshev1型低通滤波器
同样的为了和冲激响应不变法设计的Butterworth低通滤波器进行对比,我们还是采用和它一样的设计指标:
通带截止频率
=2000π,阻带截止频率
=3000π,通带最大纹波Rp=3dB,阻带最小纹波Rs=18dB,采样频率Fs=10000Hz。
依然使用一样的输入信号:
。
Matlab程序如下:
wp=2000*pi;
ws=3000*pi;
fs=10000;
Rp=3;
Rs=18;
[N,wn]=cheb1ord(wp,ws,Rp,Rs,'s');
[z,p,k]=cheb1ap(N,Rp);
[Bap,Aap]=zp2tf(z,p,k);
[b,a]=lp2lp(Bap,Aap,wn);
[bz,az]=impinvar(b,a,fs);
figure
(1);
[h,w]=freqz(bz,az,N,fs);
subplot(2,1,1),plot(w,abs(h));
title('Chebyshev1LPF幅频特性');
xlabel('频率(Hz)');ylabel('幅值(dB)');gridon;
subplot(2,1,2),plot(w,angle(h));
title('Chebyshev1LPF相频特性');
xlabel('频率(Hz)');ylabel('相位(degree)');gridon;
figure
(2);
f1=1000;f2=4000;
N1=100;
dt=1/fs;n=0:
N1-1;t=n*dt;
x=sin(2*pi*f1*t)+0.5*cos(2*pi*f2*t);
subplot(2,1,1),plot(t,x);
title('输入信号'),gridon;
y=filter(bz,az,x);
subplot(2,1,2),plot(t,y,'r-');
title('输出信号'),gridon;
得到的Chebyshev1型低通滤波器幅频特性和相频特性曲线为:
输入信号和经过滤波后的输出信号图像为:
4.总结
在整个课程设计完成后,总的感觉是有收获。
以前上课都是学一些基本的东西,现在运用学到得的东西做出有实际应用价值的东西,对所学知识点进一步的理解,并进行系统化。
了解到数字信号处理学科的一项重大进展是关于数字滤波器设计方法的研究。
在这个过程中,学到了很多在书本上学不到的东西,了解更多有关于Matlab软件的知识,对Matlab软件的操作更加熟练。
了解了数字滤波器的发展过程和应用领域,。
进一步掌握了IIR滤波器与FIR滤波器的优缺点,对有限长序列和无限长序列区别及相互转换更加明确,而且更好地理解了S平面与Z平面的转换过程。
IIR数字滤波器的设计借助模拟滤波器原型,再将模拟滤波器转换成数字滤波器,这些过程已经成为一整套成熟的设计程序。
在做设计的过程中,犯了很多的错误,有时是手误,但更多对知识理解的不透彻,自以为平时理解的很好,实则都是浅尝则止,体会到自己很多不足,在以后的学习过程中会更加认真努力,提高自己的学习能力。
用学到的知识做出有实际应用价值的东西非常高兴。
参考书目
[1]楼顺天.《基于MATLAB的系统分析》.西安.西安电子科技大学出版社.2000
[2]程卫国.《MATLAB5.3精要编程及高级应用》.北京.机械工业出版社.2000
[3]丁玉美.高西全.《数字信号处理第二版》.西安.西安电子科技大学出版社.2001
[4]高西全.《数字信号处理(第二版)学习指导书》.西安.清华大学出版社.2001
[5]孙洪.《数字信号处理实验指导书(MATLAB版)》.北京.电子工业出版社.2003
[6]楼顺天.《基于MATLAB的系统分析与设计——信号处理》.西安.西安电子科技大学出版社.2002
[7]丁玉美.高西全等编著.《数字信号处理》.西安.西安电子科技大学出版社.2000
[8]R.W.谢弗.《数字信号处理》.北京.科学出版社.2002
[9]胡广书.《数字信号处理——理论、算法与实现(第二版)》.北京.电子工业出版社.2003
《数字信号处理》课程设计指导教师评语
评语:
指导教师:
(签字)
年月日