基于MATLAB的数字滤波器设计_第1页
基于MATLAB的数字滤波器设计_第2页
基于MATLAB的数字滤波器设计_第3页
基于MATLAB的数字滤波器设计_第4页
基于MATLAB的数字滤波器设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、淮北煤炭师范学院2009届学士学位论文基于MATLAB的数字滤波器设计学院、 专业 物理与电子信息学院 电子信息科学与技术 研 究 方 向 基于MATLAB的数字滤波器设计 学 生 姓 名 耿 博 学 号 4 指导教师姓名 邹 锋 指导教师职称 讲 师 2009 年 4 月 18基于MATLAB的数字滤波器设计耿 博(淮北煤炭师范学院物理与电子信息学院 )摘 要 随着信息时代和数字世界的到来,数字信号处理已成为今一门极其重要的学科和技术领域。数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。在数字信号处理应用中,数字滤波器十分重要并已获得

2、广泛应用。数字滤波是数字信号处理的重要内容,数字滤波器可分为IIR和FIR两大类。对于IIR数字滤波器的设计,需要借助模拟原型滤波器,再将模拟滤波器转化为数字滤波器,文中采用的设计方法是脉冲响应不变法、双向性变换法和完全函数设计法;对于FIR数字滤波器的设计,可以根据所给定的频率特性直接设计,文中采用的设计方法是窗函数法。本文根据IIR滤波器和FIR滤波器的特点,在MATLAB坏境下分别用双线性变换法设计IIR和用窗函数设计FIR数字滤波器,并对采集的语音信号进行分析,最后给出了IIR和FIR对语音滤波的效果。关键词 数字滤波器;IIR ;FIR ;MATLABThe Design of Di

3、gital Filter based on MATLABGeng BoSchool of Physics and Electronics Information, Huaibei Coal Industry Teachers College, ABSTRACT Along with the information age and the digital world arrival, the digital signal processing has become a now extremely important discipline and the area of technology.Th

4、e digital signal processing in the correspondence, the multitudinous domains the pronunciation such as the image, the automatic control, the radar, the military, the aerospace, the medical service and the domestic electric appliances and so on have obtained the widespread application.In the digital

5、signal processing application, the digital filter are extremely important and have obtained the widespread application.The digital filter are the digital signal processing important content, the digital filter may divide into IIR and the FIR two main kinds. As for the IIR digital filter design, we n

6、eed the help of analog prototype filter, and then transform analog filter into digital filter. In the paper we use the design of the pulse response invariable method, the bilinear method and full function design; as for the FIR filter, we can design it directly based on the giving frequency, in the

7、paper it uses the design of the window function.This article according to the IIR filter and the FIR filter characteristic, uses the bilinearity method of transformation under the MATLAB bad boundary to design IIR and to design the FIR numeral filter separately with the window box number, and carrie

8、s on the analysis to the gathering pronunciation signal, and finally gives IIR and FIR to the pronunciation filter effect.Keywords Digtial Filter;IIR;FIR;MATLAB 目 次1 引言12 数字滤波器及MATLAB语言概述22.1 数字滤波器的定义和分类22.2 常用滤波器的性能指标32.3 MATLAB概述63 IIR滤波器设计83.1 双线性变换法设计IIR数字滤波器83.2 脉冲响应不变法123.3 完全设计函数法153.4 语音滤波实例

9、164 FIR滤波器设计214.1 窗函数法214.2 FIR滤波器滤波实例255 总结29参考文献30致谢311 引言数字滤波在通信、图像编码、语音编码、雷达等许多领域中有着十分广泛的应用。目前,数字信号滤波器的设计在图像处理、数据压缩等方面的应用取得了令人瞩目的进展和成就。近年来迅速发展起来。MATLAB是美国MathWorks公司推出的一套用于工程计算的可视化高性能语言与软件环境。MATLAB为数字滤波的研究和应用提供了一个直观、高效、便捷的利器。它以矩阵运算为基础,把计算、可视化、程序设计融合到了一个交互式的工作环境中。MATLAB推出的工具箱使各个领域的研究人员可以直观方便地进行科学

10、研究、工程应用,其中的信号处理(signalproeessing)、图像处理(imageproeessing)、小波(wavelet)等工具箱为数字滤波研究的蓬勃发展提供了有力的工具。数字滤波器与模拟滤波器相比,具有精度高、稳定、体积小、重量轻、灵活、不要求阻抗匹配以及能实现模拟滤波器无法进行的特殊滤波等优点。本文主要介绍有限冲激响应数字滤波器(FIR)和无限冲激响应数字滤波器(IIR)的设计原理、方法、步骤以及在MATLAB中的实现,并以实例形式列出设计程序和仿真结果。2 数字滤波器及MATLAB语言概述2.1 数字滤波器的定义和分类数字滤波器是指完成信号滤波处理功能的,用有限精度算法实现的

11、离散时间线性非时变系统,其输入是一组数字量,其输出是经过变换的另一组数字量。因此,数字滤波器本身既可以是用数字硬件装配成的一台完成给定运算的专用的数字计算机,也可以将所需要的运算编成程序,让通用计算机来执行。数字滤波器,输入输出均为数字信号,通过一定的运算关系,改变输入信号中所含频率成分的相对比例,或则滤除某些频率成分的器件。对于数字滤波器而言,若系统函数为H(z),其脉冲响应为h(n),输入时间序列为x(n),则它们在时域内的关系式如下:y(n)=h(n)x(n) (2-1)在Z域内,输入和输出存在如下关系: Y(z)= H(z)X(z) (2-2)式中,X(z)、Y(z)分别为x(n)和y

12、(n)的Z变换。在频域内,输入和输出则存在如下关系:Y(j)=H(j)X(j) (2-3)式中,H(j)是数字滤波器的频率特性;X(j)Y(j)分别为x(n)和y(n)的频谱,而为数字角频率。数字滤波器可以有很多种分类方法,但总体上可分为两大类。一类称为经典滤波器,即一般的滤波器,其特点是输入信号中的有用成分和希望滤除的成分占用不同的频带,通过合适的选频滤波器可以实现滤波。例如,若输入信号中有干扰,信号和干扰的频带互不重叠,则可滤出信号中的干扰得到纯信号。但是,如果输入信号中信号和干扰的频带相重叠,则干扰就不能被有效的滤出。另一类称为现代滤波器,如维纳滤波器、卡尔曼滤波器等,其输入信号中有用信

13、号和希望滤除的成分频带重叠。对于经典滤波器,从频域上也可以分为低通、高通、带通和带阻滤波器。从时域特性上看,数字滤波器还可以分为有限冲激响应数字滤波器(FIR)和无限冲激响应数字滤波器(IIR)。对于有限冲激响应数字滤波器(FIR),其输出y(n)只取决于有限个过去和现在的输入,x(n),x(n-1),x(n-m),滤波器的输入输出关系可表示为y(n)= (2-4)对于无限冲激响应数字滤波器(IIR),它的输出不仅取决于过去和现在的输入,而且还取决于过去的输出,其差分方程为y(n)+= (2-5)该差分方程的单位冲激响应是无限延续的。2.2 常用滤波器的性能指标滤波器性能一般用系统频率特性来说

14、明,常用的性能指标主要有以下三个参数:1. 幅度平方函数 (2-6)该性能指标主要用来说明系统的幅频特性。2.相位函数 (2-7)其中: (2-8)该指标主要用来说明系统的相位特性。3.群延时 (2-9)定义为相位对角频率导数的负值,说明了滤波器对不同的频率成分的平均延时。当要求在通带内的群延迟是常数时,滤波器相位响应特性应该是线性的。实际设计中所能得到的滤波器的频率特性与理想滤波器的频率特性之间存在着一些显著的差别,现以低通滤波器的频率特性为例进行说明。1.理想滤波器的特性:设滤波器输入信号为,信号中混入噪音,它们有不同的频率成分。滤波器的单位脉冲响应为。则理想滤波器输出为: (2-10)即

15、噪音信号被滤除,而信号无失真只有延时和线性放大。对上式作傅里叶变换得: (2-11)假定噪音信号被滤除,即: (2-12)整理得:h(t)t (2-13)图1 理想低通滤波器频率特性 图2 理性滤波器的单位脉冲响应()假定信号频率成分为:,噪音频率成分为。则完成滤波的理想低通滤波器特性是: (2-14)即: (2-15) (2-16)系统的单位脉冲响应为: (2-17)理性低通滤波器的频率特性如图1所示,单位脉冲响应的波形如图2所示。理想滤波器具有非因果、无限长的单位脉冲响应和不连续的频率特性,要用稳定的线性时不变(LTI)系统来实现这样的特性是不可能的。工程上是用脉冲响应为有限长的、因果的、

16、稳定的线性时不变系统或具有连续频率特性的线性时不变系统来逼近理想特性。在满足一定的误差要求的情况下来实现理想滤波特性。因此实际的滤波器的频率特性如图3所示。通 带阻带过渡带图3实际滤波器的频率特性性其中:截止频率 阻带起始频率过渡带宽在通带内幅度响应以的误差接近于1,即: (2-18)为阻带起始频率,在阻带内幅度响应以小于的误差接近于零,即: (2-19)为了使逼近理想低通滤波器的方法成为可能,还必须提供一带宽为的不为零的过渡带。在这个频带内,幅度响应从通带平滑的下落到阻带。2.3 MATLAB概述MATLAB是美国MathWorks公司开发的一种功能极其强大的高技术计算语言和内容极其丰富的软

17、件库,集数值计算、矩阵运算和信号处理与显示于一身。该软件最初是由美国教授Cleve Moler创立的。1980年前后,他在教线性代数课程时,发现用其他高级语言编程时极不方便,便构思开发了MATLAB,即矩阵实验室(Matrix Laboratory)。该软件利用了当时代表数值线性代数领域最高水平的EISPACK和LINPACK两大软件包,并且利用Fortran语言编写了最初的一套交互式软件系统,MATLAB的最初版本便由此产生了。 最初的MATLAB由于语言单一,只能进行矩阵的运算,绘图也只能用原始的描点法,内部函数只有几十个,因此功能十分简单。1984年该公司推出了第一个MATLAB的商业版

18、,并用C语言作出了全部改写。现在的MATLAB程序是MathWorks公司用C语言开发的,第一版由steve Bangert主持开发编译解释程序,Steve Kleiman完成图形功能的设计,John Little和Cleve Moler主持开发了各类数学分分析的子模块,撰写用户指南和大部分的M文件。接着又添加了丰富的图形图像处理、多媒体功能、符号运算和与其它流行软件的接口功能,使MATLAB的功能越来越强大。MTALAB系统主要由以下五个部分组成:(1)MATALB语言体系。 MATLAB是高层次的矩阵数组语言,具有条件控制、函数调用、数据结构、输入输出、面向对象等程序语言特性。利用它既可以

19、进行小规模端程,完成算法设计和算法实验的基本任务,也可以进行大规模编程,开发复杂的应用程序。(2)MATLAB工作环境 。这是对MATLAB提供给用户使用的管理功能的总称。包括管理工作空间中的变量据输入输出的方式和方法,以及开发、调试、管理M文件的各种工具。(3)图形句相系统 。这是MATLAB图形系统的基础,包括完成2D和3D数据图示、图像处理、动画生成、图形显示等功能的高层MATLAB命令,也包括用户对图形图像等对象进行特性控制的低层MATLAB命令,以及开发GUI应用程序的各种工具。(4)MATLAB数学函数库。这是对MATLAB使用的各种数学算法的总称。包括各种初等函数的算法,也包括矩

20、阵运算、矩阵分析等高层次数学算法。(5)MATLAB应用程序接口(API)。这是MATLAB为用户提供的一个函数库,使得用户能够在MATLAB环境中使用C程序或FORTRAN程序,包括从MATLAB中调用于程序(动态链接),读写MAT文件的功能。 除此之外,MATLAB系统还具有如下特点:(1)具有易学易用的语言体系;(2)具有交互式的工作环境;(3)具有多层面的图像处理系统;(4)具有丰富高效的MATLAB工具箱;(5)具有便利的程序接口(API);(6)应用领域广泛;(7)嵌入了面向对象编程语言。3 IIR滤波器设计3.1 双线性变换法设计IIR数字滤波器从S平面到平面是多值的映射关系会造

21、成频率响应的混叠失真。为了克服这一缺点,可以采用非线性频率压缩方法,将整个频率轴上的频率范围压缩到-/T/T之间,再用z=esT转换到Z平面上。也就是说,第一步先将整个S平面压缩映射到S1平面的-/T/T一条横带里;第二步再通过标准变换关系z=es1T将此横带变换到整个Z平面上去。这样就使S平面与Z平面建立了一一对应的单值关系,消除了多值变换性,也就消除了频谱混叠现象,映射关系如图4所示。图4 双线性变换的映射关系为了将S平面的整个虚轴j压缩到S1平面j1轴上的-/T到/T段上,可以通过以下的正切变换实现 (3-1)式中,T仍是采样间隔。当1由-/T经过0变化到/T时,由-经过0变化到+,也即

22、映射了整个j轴。将式(3-1)写成 (3-2)将此关系解析延拓到整个S平面和S1平面,令j=s,j1=s1,则得 (3-3)再将S1平面通过以下标准变换关系映射到Z平面z=es1T从而得到S平面和Z平面的单值映射关系为: (3-4) (3-5)式(3-4)与式(3-5)是S平面与Z平面之间的单值映射关系,这种变换都是两个线性函数之比,因此称为双线性变换式(3-1)与式(34)的双线性变换符合映射变换应满足的两点要求。首先,把z=ej,可得 (3-6)即S平面的虚轴映射到Z平面的单位圆。其次,将s=+j代入式(3-6),得 (3-7)因此 (3-8)由此看出,当0时,|z|0时,|z|1。也就是

23、说,S平面的左半平面映射到Z平面的单位圆内,S平面的右半平面映射到Z平面的单位圆外,S平面的虚轴映射到Z平面的单位圆上。因此,稳定的模拟滤波器经双线性变换后所得的数字滤波器也一定是稳定的。双线性变换法优缺点:双线性变换法,其主要的优点是避免了频率响应的混叠现象。这是因为这里S平面与Z平面是单值的一一对应关系。S平面整个j轴单值地对应于Z平面单位圆一周,即频率轴是单值变换关系。这个关系如式(3-6)所示,重写如下: (3-9)上式表明,S平面上与Z平面的成非线性的正切关系,如图5所示。由图5看出,在零频率附近,模拟角频率与数字频率之间的变换关系接近于线性关系;但当进一步增加时,增长得越来越慢,最

24、后当时,终止在折叠频率=处,因而双线性变换就不会出现由于高频部分超过折叠频率而混淆到低频部分去的现象,从而消除了频率混叠现象。图5 双线性变换法的频率变换关系但是双线性变换的这个特点是靠频率的严重非线性关系而得到的,如式(3-6)及图5所示。由于这种频率之间的非线性变换关系,就产生了新的问题。首先,一个线性相位的模拟滤波器经双线性变换后得到非线性相位的数字滤波器,不再保持原有的线性相位了;其次,这种非线性关系要求模拟滤波器的幅频响应必须是分段常数型的,即某一频率段的幅频响应近似等于某一常数(这正是一般典型的低通、高通、带通、带阻型滤波器的响应特性),不然变换所产生的数字滤波器幅频响应相对于原模

25、拟滤波器的幅频响应会有畸变,如图8所示。图6 双线性变换法幅度和相位特性的非线性映射对于分段常数的滤波器,双线性变换后,仍得到幅频特性为分段常数的滤波器,但是各个分段边缘的临界频率点产生了畸变,这种频率的畸变,可以通过频率的预畸来加以校正。也就是将临界模拟频率事先加以畸变,然后经变换后正好映射到所需要的数字频率上。在MATLAB中,双线性变换法的调用函数是bilinear。其调用格式为:a.zd,pd,kd= bilinear(z,p,k,fs)b.zd,pd,kd= bilinear(z,p,k,fs,fp)c. numd,dend=bilinear(num,den,fs)d. numd,d

26、end=bilinear(num,den,fs,fp)e. Aa,Bb,Cc,Dd=bilinear(A,B,C,D,fs)f. Aa,Bb,Cc,Dd=bilinear(A,B,C,D,fs,fp) zd,pd,kd=bilinear(z,p,k,fs)是把模拟滤波器的零极点模型转换为数字滤波器的零极点模型,fs为采样频率,z,p,k分别为滤波器的零点、极点和增益;numd,dend=bilinear(num,den,fs)是把模拟滤波器的传递函数模型转换为数字滤波器的传递模型; Aa,Bb,Cc,Dd=bilinear(A,B,C,D,fs)是把模拟滤波器的状态方程模型转换为数字滤波器状态

27、方程模型。例如,用双线性变换法设计一个巴特沃思数字低通滤波器,技术指标如下:通带截止频率=24k rad/s,阻带截止频率=28k rad/s,通带波纹系数=0.3dB, 阻带波纹系数=50dB,采样频率fs=20000Hz。 程序如下: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)freqz(bz,az,Nn,fs) 程序在MATLAB环境下的运行及结果如图7所示:结果如下:N =11Wn =1.489

28、2e+004bz = Columns 1 through 6 0.0110 0.1211 0.6055 1.8166 3.6333 5.0866 Columns 7 through 12 5.0866 3.6333 1.8166 0.6055 0.1211 0.0110az = Columns 1 through 6 1.0000 2.7098 4.6379 5.2252 4.3685 2.7207 Columns 7 through 121.2885 0.4561 0.1181 0.0211 0.0023 0.0001图7巴特沃思数字低通滤波器幅频-相频特性3.2 脉冲响应不变法顾名思义,脉

29、冲响应不变法就是要求数字滤波器的脉冲响应序列h(n)与模拟滤波器的脉冲响应的采样值相等,即h(n)= (3-10)式中,T为采样周期。根据模拟信号的拉普拉斯变换与离散序列的Z变换之间的关系,我们知道H(z)= (3-11)此式表明,的拉普拉斯变换在s平面上沿虚轴,按照周期=2/T延拓后,按式z=,进行Z变换,就可以将Ha(s)映射为H(z)。事实上,用脉冲响应不变法设计IIR滤波器,只适合于Ha(s)有单阶极点,且分母多项式的阶次高于分子多项式阶次的情况。将Ha(s)用部分分式表示: Ha(s)=LTh= (3-12)式中,LT代表拉普拉斯变换,为的单阶极点。将Ha(s)进行拉普拉斯反变换,即

30、可得到= (3-13)式中,u(t)是单位阶跃函数。则的离散序列h(n)=对h(n)进行z变换之后,可以得到数字滤波器的系统函数H(z)H(z)= (3-14)对比Ha(s)与H(z),我们会发现:s域中Ha(s)的极点是,映射到z平面之后,其极点变成了,而系数没有发生变化,仍为。因此,在设计IIR滤波器时,我们只要找出模拟滤波器系统函数Ha(s)的极点和系数,通过脉冲响应不变法,代入H(z)的表达式中,即可求出H(z),实现连续系统的离散化。但是脉冲响应不变法只适合于设计低通和带通滤波器,而不适合于设计高通和带阻滤波器。因为,如果模拟信号的频带不是介于之间,则会在的奇数倍附近产生频率混叠现象

31、,映射到z平面后,则会在附近产生频率混叠现象。从而使所设计的数字滤波器不同程度的偏离模拟滤波器在附近的频率特性,严重时使数字滤波器不满足给定的技术指标。为此,希望设计的滤波器是带限滤波器,如果不是带限的,例如,高通滤波器、带阻滤波器,需要在高通滤波器、带阻滤波器之前加保护滤波器,滤出高于折叠频率/T以上的频带,以免产生频率混叠现象。但这样会增加系统的成本和复杂性。因此,高通与带阻滤波器不适合用这种方法。将模拟滤波器转化为数字滤波器,牵涉到一个关键的问题,即寻找一种转换关系,将s平面上的Ha(s)转换成z平面上的H(z)。这里Ha(s)是模拟滤波器的传输函数,H(z)是数字滤波器的系统函数。为了

32、确保转换后的H(z)稳定且满足技术要求,转换关系要满足以下要求:1)将因果稳定的模拟滤波器转换为数字滤波器后,仍然是因果稳定的。我们知道,当模拟滤波器的传输函数Ha(s)的极点全部位于s平面的左平面时,模拟滤波器才是因果稳定的;对于数字滤波器而言,因果稳定的条件是其传输函数H(z)的极点要全部位于单位圆内。因此,转换关系应是s平面的左半平面映射到z平面的单位圆内。2)数字滤波器的频率响应与模拟滤波器的频率响应相对应,S平面的虚轴映射为Z平面的单位圆,而响应的频率之间是线性变换关系。在MATLAB中,脉冲响应不变法的调用函数是impinvar,其调用格式为:a. bz,az=impinvar(b

33、,a,fs)b. bz,az=impinvar(b,a)c. bz,az=impinvar(b,a,fs,tol)该函数的功能是将分子向量为b、分母向量为a的模拟滤波器,转换为分子向量为bz、分母向量为az的数字滤波器。fs为采样频率,单位为Hz,默认值为1Hz。tol指误差容限,表示转换后的离散系统函数是否有重复的极点。例如,用脉冲响应不变法设计一个契比雪夫型数字低通滤波器,指标要求:通带截止频率=1000Hz,阻带截止频率=1200Hz,采样频率fs=5000Hz,通带衰减系数=0.3dB,阻带衰减系数=40dB。程序如下:wp=1000*2*pi;ws=1200*2*pi;fs=2500

34、;Rp=0.3;Rs=40;N,Wn=cheb1ord(wp,ws,Rp,Rs,s); %估计滤波器最小阶数z,p,k=cheb1ap(N,Rp); %模拟滤波器函数引用A,B,C,D=zp2ss(z,p,k); %返回状态转移矩阵形式AT,BT,CT,DT=lp2lp(A,B,C,D,Wn); %频率转换b,a=ss2tf(AT,BT,CT,DT); %返回传递函数形式 bz,az=impinvar(b,a,fs); %调用脉冲相应不变法H,W=freqz(bz,az); %返回频率响应plot(W*fs/(2*pi),abs(H); %画图grid;xlabel(frequency/Hz)

35、; ylabel(magnitude);N,Wn程序在MATLAB环境下的运行及结果如图8所示:图8 契比雪夫型数字低通滤波器幅频特性曲线N =11 Wn =6.2832e+0033.3 完全设计函数法此法是根据设计要求,直接调用函数来设计数字滤波器。所用到的函数有butter、cheby1、cheb2ord、ellipd以及besself等。Butter用来直接设计巴特沃思数字滤波器,cheby1用来直接设计切比雪夫型滤波器,cheb2ord用来设计切比雪夫型滤波器,ellipd用来设计椭圆滤波器,besself用来设计贝塞尔滤波器。例如,用完全设计函数法设计一个巴特沃思数字低通滤波器,技术

36、指标要求为:wp=1000;ws=1200;Rp=0.3;Rs=40;fs=8000;程序如下:wp=1000;ws=1200;Rp=0.3;Rs=40;fs=8000;N,Wn=buttord(wp/(fs/2),ws/(fs/2),Rp,Rs) %估计滤波器最小阶数b,a=butter(N,Wn);H,W=freqz(b,a); %返回频率响应plot(W*fs/(2*pi),abs(H); %画图grid;xlabel(Frequency/Hz);ylabel(magnitude);程序在MATLAB环境下的运行及结果如图9所示:图9巴特沃思数字低通滤波器幅频特性曲线N =29 Wn =

37、0.26113.4 语音滤波实例根据语音信号的特点给出有关滤波器的性能指标:1)低通滤波器性能指标,fp=1000Hz,fc=1200 Hz, As=100dB,Ap=1dB;2)高通滤波器性能指标,fc=2800 Hz,fp=3000 Hz As=100dB,Ap=1dB;3)带通滤波器性能指标,fp1=1200 Hz,fp2=3000 Hz,fc1=1000 Hz,fc2=3200 Hz,As=100dB,Ap=1dB。用IIR对其分析,最后,利用MATLAB中的函数freqz画出各滤波器的频率响应。1语音信号的采集:1)利用windows下的录音机(开始程序附件娱乐录音机,文件属性立即转

38、换8000KHz,8位,单声道),录制一段自己的话音“信号”, 时间控制在1秒左右,然后将音频文件保存“E:耿博.wav”2)在MATLAB软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。z1,fs,bits=wavread(E:耿博.wav)运行结果:fs =44100bits =16wavread函数调用格式:y=wavread(file),读取file所规定的wav文件,返回采样值放在向量y中。y,fs,nbits=wavread(file),采样值放在向量y中,fs表示采样频率(Hz),nbits表示采样位数。y=wavread(file,N),读取前N点

39、的采样值放在向量y中。y=wavread(file,N1,N2),读取从N1点到N2点的采样值放在向量y中。2语音信号的频谱分析首先画出语音信号的时域波形z1=wavread(E:耿博.wav);plot(z1);图像输出如图10对语音信号进行频谱分析,在MATLAB中,可以利用函数fft对信号进行快速付立叶变换,得到信号的频谱特性z1=wavread(E:耿博.wav);y1=z1(1:8192);Y1=fft(y1);n=0:8191;plot(n,Y1);图像输出如图11图10 信号时域波形 图 11 信号频谱分析图根据语音信号的特点,设计出不同性能的数字滤波器,并用MATLAB进行仿真

40、。设计程序及仿真结果如下:1设计IIR低通滤波器滤波程序如下:clear;close allz1,fs,bits=wavread(E:耿博.wav)y1=z1(1:8192);Y1=fft(y1);fp=1000;fc=1200;As=100;Ap=1; ;Fs=8000;wc=2*fc/Fs;wb=2*fp/Fs;n,wp=cheb1ord(wc,wb,Ap,As);b,a=cheby1(n,Ap,wp);figure(1);freqz(b,a);x=filter(b,a,z1);X=fft(x,8192);figure(2);subplot(2,2,1);plot(abs(Y1);axis

41、(0,1000,0,1.0);title(滤波前信号频谱);subplot(2,2,2);plot(abs(X);axis(0,4000,0,0.03);title(滤波后信号频谱);subplot(2,2,3);plot(z1);title(滤波前信号波形);subplot(2,2,4);plot(x);title(滤波后信号波形);sound(x,fs,bits);仿真结果如下:图 12 IIR数字低通滤波器幅频-相频特性 图 13 滤波前后信号频谱和波形对比2设计IIR高通滤波器滤波程序设计如下:clear;close allz1,fs,bits=wavread(E:耿博.wav)y1=

42、z1(1:8192);Y1=fft(y1);fc=2800 ;fp=3000 ;As=100;Ap=1; Fs=8000;wc=2*fc/Fs;wb=2*fp/Fs;n,wp=cheb1ord(wc,wb,Ap,As);b,a=cheby1(n,Ap,wp,high);figure(1);freqz(b,a);x=filter(b,a,z1);X=fft(x,8192);figure(2);subplot(2,2,1);plot(abs(Y1);axis(0,1000,0,1.0);title(滤波前信号频谱);subplot(2,2,2);plot(abs(X);axis(0,4000,0,

43、0.03);title(滤波后信号频谱);subplot(2,2,3);plot(z1);title(滤波前信号波形);subplot(2,2,4);plot(x);title(滤波后信号波形);sound(x,fs,bits);图形分析如图14、图15: 图14 IIR数字低通滤波器幅频-相频特性 图15 滤波前后信号频谱和波形对比3设计IIR带通滤波器滤波程序设计如下:clear;close allz1,fs,bits=wavread(E:耿博.wav)y1=z1(1:8192);Y1=fft(y1);fp1=1200 ;fp2=3000; fc1=1000 ;fc2=3200 ;As=1

44、00;Ap=1; Fs=8000; wc=2*fc1/Fs,2* fc2/Fs;wb=2*fp1/Fs,2*fp2/Fs; n,wp=cheb1ord(wc,wb,Ap,As);b,a=cheby1(n,Ap,wp,stop);figure(1);freqz(b,a);x=filter(b,a,z1);X=fft(x,8192);figure(2);subplot(2,2,1);plot(abs(Y1);axis(0,1000,0,1.0);title(滤波前信号频谱);subplot(2,2,2);plot(abs(X);axis(0,4000,0,0.03);title(滤波后信号频谱);

45、subplot(2,2,3);plot(z1);title(滤波前信号波形);subplot(2,2,4);plot(x);title(滤波后信号波形);sound(x,fs,bits);图形分析如图16、图17:图 16 IIR数字低通滤波器幅频-相频特性 图17 滤波前后信号频谱和波形对比4 FIR滤波器设计FIR滤波器的设计问题在于寻求一系统函数,使其频率响应逼近滤波器要求的理想频率响应,其对应的单位脉冲响应。4.1 窗函数法4.1.1用窗函数设计FIR数字滤波器的基本方法设计思想:从时域从发,设计逼近理想。设理想滤波器的单位脉冲响应为。以低通线性相位FIR数字滤波器为例。一般是无限长的

46、,且是非因果的,不能直接作为FIR滤波器的单位脉冲响应。要想得到一个因果的有限长的滤波器h(n),最直接的方法是截断,即截取为有限长因果序列,并用合适的窗函数进行加权作为FIR滤波器的单位脉冲响应。按照线性相位滤波器的要求,h(n)必须是偶对称的。对称中心必须等于滤波器的延时常数,即用矩形窗设计的FIR低通滤波器,所设计滤波器的幅度函数在通带和阻带都呈现出振荡现象,且最大波纹大约为幅度的9%,这个现象称为吉布斯效应。根据过渡带宽及阻带衰减要求,选择窗函数的类型并估计窗口长度N(或阶数M=N-1),窗函数类型可根据最小阻带衰减As独立选择,因为窗口长度N对最小阻带衰减As没有影响,在确定窗函数类

47、型以后,可根据过渡带宽小于给定指标确定所拟用的窗函数的窗口长度N,设待求滤波器的过渡带宽为w,它与窗口长度N近似成反比,窗函数类型确定后,其计算公式也确定了,不过这些公式是近似的,得出的窗口长度还要在计算中逐步修正,原则是在保证阻带衰减满足要求的情况下,尽量选择较小的N,在N和窗函数类型确定后,即可调用MATLAB中的窗函数求出窗函数wd(n)。根据待求滤波器的理想频率响应求出理想单位脉冲响应hd(n),如果给出待求滤波器频率应为Hd,则理想的单位脉冲响应可以用下面的傅里叶反变换式求出:在一般情况下,hd(n)是不能用封闭公式表示的,需要采用数值方法表示;从w=0到w=2采样N点,采用离散傅里

48、叶反变换(IDFT)即可求出。用窗函数wd(n)将hd(n)截断,并进行加权处理,得到如果要求线性相位特性, 则h(n)还必须满足:根据上式中的正、 负号和长度N的奇偶性又将线性相位FIR滤波器分成四类。要根据所设计的滤波特性正确选择其中一类。 例如, 要设计线性相位低通特性可选择h(n)=h(N-1-n)一类,而不能选h(n)=-h(N-1-n)一类。 验算技术指标是否满足要求,为了计算数字滤波器在频域中的特性,可调用freqz子程序,如果不满足要求,可根据具体情况,调整窗函数类型或长度,直到满足要求为止。4.1.2典型的窗函数1、矩形窗(Rectangle Window)其频率响应和幅度响

49、应分别为:,2、三角形窗(Bartlett Window)其频率响应为:3、汉宁(Hanning)窗,又称升余弦窗其频率响应和幅度响应分别为:4、汉明(Hamming)窗,又称改进的升余弦窗其幅度响应为: 5、布莱克曼(Blankman)窗,又称二阶升余弦窗其幅度响应为:6、凯泽(Kaiser)窗其中:是一个可选参数,用来选择主瓣宽度和旁瓣衰减之间的交换关系,一般说来,越大,过渡带越宽,阻带越小衰减也越大。I0()是第一类修正零阶贝塞尔函数。若阻带最小衰减表示为,的确定可采用下述经验公式:若滤波器通带和阻带波纹相等即p=s时,滤波器节数可通过下式确定:其中:在MATLAB中,实现矩形窗的函数为

50、boxcar和rectwin,其调用格式如下: w=boxcar(N)w=rectwin(N)其中N是窗函数的长度,返回值w是一个N阶的向量,它的元素由窗函数的值组成。实际上,w=boxcar(N)等价于w=ones(N,1)。在MATLAB中,实现三角窗的函数为triang,调用格式为: w=triang(N)在MATLAB中,实现汉宁窗的函数为hann,调用格式如下: w=hann(N)w=hann(N, sflag)Hann函数中的参数sflag为采样方式,其值可取symmetric(默认值)或periodic。当sflagsymmetric时,为对称采样;当sflagperiodic时

51、,为周期采样,此时hann函数计算N+1个点的窗,但是仅返回前N个点。在MATLAB中,实现海明窗的函数为hamming,调用格式分别如下: w=hamming (N)w=hamming (N,sflag)其中sflag的用法同上。在MATLAB中,实现布拉克曼窗的函数为blackman,调用格式如下: w=blackman (N)w=blackman (N,sflag)在MATLAB中,实现切比雪夫窗的函数为chebwin,调用格式为: w=chebwin (N,r)其中r 表示切比雪夫窗函数的傅里叶变换旁瓣幅度比主瓣低rdB(其默认值为100dB),且旁瓣是等纹波的。在MATLAB中,实现

52、巴特里特窗的函数为bartlett,调用格式为: w=bartlett (N)在MATLAB中,实现凯塞窗的函数为kaiser,调用格式为: w=kaiser (N,beta)其中beta为窗函数的参数。在MATLAB中,提供了基于窗函数法的两类设计函数,即函数fir1和函数fir2。1、 函数fir1该函数实现加窗的线性相位FIR数字滤波器,可设计标准低通、带通、高通和带阻滤波器。其调用格式如下:a. b=fir1(n,Wn)b. b=fir1(n,Wn, ftype)c. b=fir1(n,Wn,window)d. b=fir1(n,Wn, ftype, window)e. b=fir1(,normalization)n表示滤波器的阶数。ftype代表所设计滤波器的类型:high表示高通滤波器;stop表示带阻滤波器;DC-1表示多通带滤波器,第一频带为通带;DC-0表示多通带滤波器,第一频带为阻带;默认时代表低通或带通滤波器。window为窗函数,是长度为N的列向量,默认时函数自动取Hamming窗。b=fir1(n,Wn)可得到n阶低通F

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论