语音信号滤波去噪使用脉冲响应不变法设计的巴特沃_第1页
语音信号滤波去噪使用脉冲响应不变法设计的巴特沃_第2页
语音信号滤波去噪使用脉冲响应不变法设计的巴特沃_第3页
语音信号滤波去噪使用脉冲响应不变法设计的巴特沃_第4页
语音信号滤波去噪使用脉冲响应不变法设计的巴特沃_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、熊隽迪语音信号滤波去噪使用脉冲响应不变法设计的巴特沃斯滤波器第页共15页 语音信号滤波去噪使用脉冲响应不变法设计的巴特沃斯滤波器 学生姓名:熊隽迪 指导老师:胡双红 摘 要 本课程设计主要运用麦克风采集一段语音信号,绘制波形并观察其频谱,给定相应技术指标,用脉冲响应不变法设计的一个满足指标的巴特沃斯iir滤波器,对该语音信号进行滤波去噪处理,比较滤波前后的波形和频谱并进行分析,根据结果和学过的理论得出合理的结论。 关键词 课程设计;滤波去噪;巴特沃斯滤波器;脉冲响应不变法;matlab1 引 言本课程设计主要利用麦克风采集一段8000hz,8k的单声道语音信号,并绘制波形观察其频谱,再用mat

2、lab利用脉冲响应不变法设计一个巴特沃斯滤波器,将该语音信号进行滤波去噪处理。1.1 课程设计目的课程设计是教学的最后一个步骤,课程设计有利于基础知识的理解,我们掌握了基础知识和基本技能,但是要真正接触才能真正理解课程的深入部分;还有利于逻辑思维的锻炼,在许多常规学科的日常教学中,我们不难发现这样一个现象,不少学生的思维常常处于混乱的状态,写起作文来前言不搭后语,解起数学题来步骤混乱,这些都是缺乏思维训练的结果,所以我们可以通过实践来分析问题、解决问题、预测目标等目的;同时也有利于与其他学科的整合,例如我们这次的课程设计就要运用matlab软件的帮助才能实现;最重要的有利于治学态度的培养,在课

3、程设计中,我们可能经常犯很多小错误,可能要通过好几次的反复修改、调试才能成功,但这种现象会随着学校的深入而慢慢改观。这当中就有一个严谨治学、一丝不苟的科学精神的培养,又有一个不怕失败、百折不饶品格的锻炼。数字信号处理课程设计是在学生完成数字信号处理和matlab的结合后的基本实验以后开设的。本课程设计的目的是为了让学生综合数字信号处理和matlab并实现一个较为完整的小型滤波系统。这一点与验证性的基本实验有本质性的区别。开设课程设计环节的主要目的是通过系统设计、软件仿真、程序安排与调试、写实习报告等步骤,使学生初步掌握工程设计的具体步骤和方法,提高分析问题和解决问题的能力,提高实际应用水平。1

4、.2 课程设计的要求(1)滤波器指标必须符合工程设计。(2)设计完后应检查其频率响应曲线是否满足指标。(3)处理结果和分析结论应该一致,而且应符合理论。(4)独立完成课程设计并按要求编写课程设计报告。1.3 设计平台matlab7.1matlab是美国mathworks公司生产的一个为科学和工程计算专门设计的交互式大型软件,是一个可以完成各种精确计算和数据处理的、可视化的、强大的计算工具。它集图示和精确计算于一身,在应用数学、物理、化工、机电工程、医学、金融和其他需要进行复杂数值计算的领域得到了广泛应用。它不仅是一个在各类工程设计中便于使用的计算工具,而且也是一个在数学、数值分析和工程计算等课

5、程教学中的优秀的数学工具,在世界各地的高和大型计算机上运行,适用于windows、unix等多种系统平台。matlab作为一种科学计算的高级语言之所以受欢迎,就是因为它有丰富的函数资源和工具箱资源,编程人员可以根据自己的需要选择函数,而无需再去编写大量繁琐的程序代码,从而减轻了编程人员的工作负担,被称为第四代编程语言的matlab最大的特点就是简洁开放的程序代码和直观实用的开发环境1。2 设计原理用麦克风采集一段语音信号,绘制波形并观察其频谱,给定相应技术指标,用脉冲响应不变法设计的一个满足指标的巴特沃斯iir滤波器,对该语音信号进行滤波去噪处理,比较滤波前后的波形和频谱并进行分析。2.1 i

6、ir滤波器iir数字滤波器具有无限宽的冲激响应,与模拟滤波器相匹配,所以iir滤波器的设计可以采取在模拟滤波器设计的基础上进一步变换的方法。其设计方法主要有经典设计法、直接设计法和最大平滑滤波器设计法。fir数字滤波器的单位脉冲响应是有限长序列。它的设计问题实质上是确定能满足所要求的转移序列或脉冲响应的常数问题,设计方法主要有窗函数法、频率采样法和等波纹最佳逼近法等。 iir滤波器具有无限长脉冲响应,因此能够与模拟滤波器相匹敌;因此,iir滤波器设计的基本方法是利用复值映射将大家熟知的模拟滤波器变换为数字滤波器。这一方法的优势在于各种模拟滤波器设计(afd)表格和映射在文献中普遍都能获得。这个

7、基本方法称为a/d(模拟-数字)滤波器变换。然而,afd表格仅对低通滤波器适用,而同时要得到设计其他频率选择性滤波器(高通、带通、带阻等等)。为此,需要对低通滤波器实行频带变换。这种iir滤波器设计的基本方法存在两种途径:设计模拟低通滤波器途径1:实行滤波器变换sz实行频带变换 s s期望的iir滤波器途径2:设计模拟低通滤波器实行频带变换zz实行滤波器变换sz 期望的iir滤波器我们将研究途径二的设计基本方法,在这种iir滤波器设计方法将按下列步骤进行:(1)设计模拟低通滤波器。(2)研究并实行滤波器变换以得到数字低通滤波器。(3)研究并实行频带变换以便从数字低通滤波器得到其他数字滤波器2。

8、2.2 巴特沃斯滤波器巴特沃斯滤波器是电子滤波器的一种。巴特沃斯滤波器的特点是通频带的频率响应曲线最平滑。这种滤波器最先由英国工程师斯替芬巴特沃斯(stephen butterworth)在1903发表英国无线电工程期刊的一篇论文中提出的。巴特沃斯滤波器的特性是通频带内的频率响应曲线最大限度平坦,没有起伏,而在组频带则逐渐下降为零。在振幅的对数对角频率的波得图上,从某一边界角频率开始,振幅随着角频率的增加而逐步减少,趋向负无穷大。其振幅平方函数具有如2-1式: (2-1)式中,n为整数,称为滤波器的阶数,n越大,通带和阻带的近似性越好,过渡带也越陡。如下图2.1所示:图2.1 巴特沃兹filt

9、er 振幅平方函数过渡带:通带阻带间过渡的频率范围,c:截止频率。 理想滤波器的过渡带为,阻带|h(j)|=0,通带内幅度|h(j)|=常数,h(j)线性相位。通带内,分母/c1,随n的增加,e/c1,所以a(2)快速下降。 =c时, ,幅度衰减 ,相当于3bd衰减点。振幅平方函数的极点可写成如式2-2:ha(-s).ha(s)= (2-2)可分解为2n个一次因式令分母为零, 可见,butterworth 滤波器的振幅平方函数有2n个极点,它们均匀对称地分布在|s|=c的圆周上。2.3 脉冲响应不变法 如果从模拟到数字滤波器我们想要保留脉冲响应的形状,那么就得到一种方法称为脉冲不变响应法的变换

10、方法。 脉冲响应不变法是从滤波器的脉冲响应出发,使数字滤波器的单位脉冲响应序h(n)模仿模拟滤波去的冲击响应ha(t),使h(n)正好等于ha(t)的采样值,即h(n)=ha(nt) (2-3)t为采样周期。如以ha(s)及h(z)分别表示ha(t)的拉式变换及h(n)的z变换,即ha(s)=lha(t) (2-4)h(z)=zh(n) (2-5)则根据采样序列z变换与模拟信号拉式变换的关系,得: (2-6) 上式表明,采样脉冲响应不变法将模拟滤波器变换为数字滤波器时,它所完成的s平面到z平面的变换,正是以前讨论的拉式变换到z变换的标准变换,即首先对ha(s)作周期严拓,然后再经过z=est的

11、映射关系映射到z平面上。应当指出,z=est的映射关系表明,s平面上每一条宽为2pi/t的横带部分,都将重叠地映射到z平面的整个全部平面上。每一横带的左半部分映射到z平面单位圆以内,每一横带的右半部分映射到z平面单位圆以外,j轴映射在单位圆上,但j轴上的每一段2pi/t都应于绕单位圆一周,如下图2.2所示:图2.2 脉冲响应不变法的映射关系z=est的映射关系反映的是ha(s)的周期严拓与h(z)的关系,而不是ha(s)b本身与h(z)的关系,因此,使用脉冲响应不变法时,从ha(s)到h(z)并没有一个由s平面到z平面的简单代数映射关系,即没有一个s=f(z)的代数关系式。另外,数字滤波器的频

12、响也不是简单的重现模拟滤波器的频响,而是模拟滤波器频响的周期严拓,周期为s=2/t=2fs,即 (2-7)3.设计步骤3.1设计流程图语音信号滤波去噪使用脉冲不变响应法设计的巴特沃斯滤波器的设计流程如图3.1所示:开始语音信号的采集(wavread函数),画时域图快速傅里叶变换,并且画频谱图设定滤波器性能指标,通带截止频率fb=1100,阻带截止频率fc=1200,通带波纹ap=1,阻带波纹as=20脉冲响应不变法法设计巴特沃斯滤波器验证并进行频谱分析设计好的滤波器进行滤波处理比较滤波前后语音信号的波形及频谱回放语音信号结束图3.1 脉冲响应不变法巴特沃斯滤波器对语音信号去噪流程图3.2语言信

13、号的采集 利用windows下的录音机,录制语音信号“大家好,我是熊隽迪”,时间在1s左右,要求为8000hz,8位单声道的音频格式。然后在matlab软件平台下,利用函数wavread对语音信号进行采样,函数为y,fs,bits=wavread(xiong1,wav),记住采样频率和采样点数,如图3.2:图3.2 语音信号设置3.3语音信号的频谱分析首先画出语音信号的时域波形,再对语音信号进行快速傅里叶变换,得到信号的频谱特性。程序如下: y,fs,bits = wavread(xx.wav); sound (y,fs,bits) plot(y);title(时域波形) t=(1:16000

14、)/8000; plot(t,y);xlabel(t);ylabel(y);title(时域波形) 得到时域图形如图3.3所示:图3.3 时域波形 y=fft(y); magy=abs(y);angy=angle(y); w=(1:16000)/16000*2*pi; plot(w/pi,magy) 根据绘图命令程序可以得到频域幅度谱,如图3.4所示:图3.4 频域幅度谱 f=w/(2*pi)*fs; f=f(1:8000);magy=magy(1:8000);angy=angy(1:8000); subplot(2,1,1);plot(f,magy) xlabel(f);ylabel(|y|

15、);title(频域幅度谱) subplot(2,1,2);plot(f,angy) xlabel(f);ylabel(pi);title(频域相位谱) 根据绘图命令程序可以得到频域幅度谱和相位谱,如图3.5所示:图3.5 频域幅度谱和相位谱3.4滤波器设计将数字滤波器的设计指标设为通带截止频率fb=1100hz,阻带频率fc=1200hz,通带波纹ap=1db,阻带波纹as=20db,要求确定h(z)。设计步骤如下:(1) 选取某一t。这是任意的,我们选t=1。并确定模拟频率如式3-1和 式3-1(2) 利用设参数,和设计一个模拟滤波器。(3) 利用部分分式展开,将展开为如式3-2: 式3-

16、2(4) 现在将模拟极点pk变换为数字极点epkt,得到数字滤波器如式3-3: 式3-3并作化简得出作为z-1有理函数的h(z)。根据上述步骤,按要求我们用脉冲响应不变法设计好了巴特沃斯滤波器。fb=1100;fc=1200;as=20;ap=1;wb=2*pi*fb/fs;wc=2*pi*fc/fs;wb=2*pi*fb/fs;wc=2*pi*fc/fs;t=1;omegap=wb/t;omegas=wc/t;c,d=afd_butt(omegap,omegas,ap,as);*butterworth filter order=35b,a=bilinear(c,d,t);db,mag,pha

17、,grd,w=freqz_m(b,a);所以得到图形如图3.6:图3.6 利用脉冲响应不变法设计的数字巴特沃斯滤波器(w(单位:))3.5 信号滤波信号前面已经用脉冲响应不变法设计好了我们要的巴特沃斯滤波器,接着就对语音信号进行滤波处理,看自己设计的巴特沃斯滤波器有没有对我们的语音信号进行处理。所以就用filter函数进行滤波,即signal=filter(b,a,y)。我们将滤波前后的时域波形进行比较,并对其进行快速傅里叶变换,即x=fft(signal),目的是对比前后的频域频谱,具体分析设计的滤波器是否达到设计要求。如图3.7滤波前后的语音信号时域对比:图3.7 滤波前后的时域对比波形滤

18、波前后频域频谱图3.8所示图3.8 滤波前后频域频谱图3.5 结果分析 我们先采集语音信号,再按照步骤用脉冲响应不变法设计巴特沃斯滤波器,得到图3.2。并且由图3.6可知,设计的阻带截止频率,纵坐标差不多刚好在as处,所以设计的滤波器达到要求。我们观察到图3.4和图3.5滤波前后语音信号的波形对比图,发现时域波形中的变化不明显,可能是因为我们采集的语音信号噪声不是很大,但是还是有滤去噪声的;但是可以看到在频域波形中,很明显地反应出设计的滤波器滤去了我们采集的语音信号中的噪声。所以,运用脉冲响应不变法设计的巴特沃斯滤波器达到了设计要求。4.出现的问题及解决方法 在这次的课程设计中我们设计的滤波器

19、对语音信号的滤噪处理或多或少会因为我们的疏忽或者实践能力不够还是会遇到问题的,当遇到问题时我们不但运用自己学到的知识还得到同学和老师的帮助将其解决,不断完善和修改。设计中出现的问题及解决方法如下:(1)设计的滤波器达不到要求,因为在采集语音信号时,录音机的音频格式应该是pcm 8000khz,8位,单声道。(2)在运用matlab设计滤波器时,当编辑完前面两条程序时无法放出声音,后来发现我们应当把采集的语音信号wav文件放到matlab的work文件夹中。(3)还要在滤波器性能曲线的wc处画一根竖线,这样更方便看出结果,其中wc处线的确定还需计算出wb/pi的值。(4)所有的时间波形横坐标都要

20、化为时间,滤波前后频谱的横坐标应是频率,这样在观察通带截止频率和阻带截止频率时更加精确,误差较小。5.结束语 两周的dsp课程设计即将结束,在这次的课程设计中,犯了些错误,发现自己还不够认真不够细心以前的知识学习的不是很牢固,但是这次dsp课程设计,不但巩固了以前学的知识,还学习了新内容,收获颇丰。原来滤去语音中的噪声我们运用自己学到的知识能做到,并更加巩固了matlab软件的使用。 熟练掌握matlab软件的使用是非常重要的,整个课程设计过程中,我们都要用到它。在这个课程设计中我们须利用matlab设计各种滤波器。 这次做的滤波器要滤去语音信号中的噪声,觉得很有意思,做了2次的课程设计了,发现什么事当没做之前都会觉得很简单,但是当自己亲自来做的时候就会发现事情并不是想象中的那么简单

温馨提示

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

评论

0/150

提交评论