《基于MATLAB有噪声语音信号的处理.doc》由会员分享,可免费在线阅读全文,更多与《基于MATLAB有噪声语音信号的处理(最终稿)》相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索。
1、=========%**************************低通滤波器****************************[y,fs,nbits]=wavread('seech');n=length(y);%求出语音信号的长度noise=*randn(n,);%随机函数产生噪声s=y+noise;%语音信号加入噪声S=fft(s);%傅里叶变换z=fftfilt(b,s);sound(z);m=fft(z);%求滤波后的信号sublot(,,);lot(abs(S),'g');title('滤波前信号的频谱');sublot(,,);lot(abs(m),'r');title('滤波后信号的频谱');sublot(,,);lot(s);title('滤波前信号的波形');sublot(,,);lot(z);title('滤波后的信号波形');图窗函数法低通滤波%****************************带通滤波器***************************[y,fs,nbits]=wavread('seech');n=length(y);%求出语音信号的长度。
2、s]=wavread('seech');n=length(y);%求出语音信号的长度noise=*randn(n,);%随机函数产生噪声s=y+noise;%语音信号加入噪声S=fft(s);%傅里叶变换z=filter(num,den,s);sound(z);m=fft(z);%求滤波后的信号sublot(,,);lot(abs(S),'g');title('滤波前信号的频谱');grid;sublot(,,);lot(一个界面设计工具集,MAYLAB将所有GUI支持度控件都集成在这个环境中,并提供界面外观、属性和行为响应方式的设置方法。GUIDE将设计好的GUI保存在一个FIG文件中,同时生成M文件框架。FIG文件:包括GUI图形窗口及其所有后裔的完全描述,包括所有对象属性的属性值。它是一个二进制文件调用hsave课保存图形窗口时将生车该文件。M文件包括GUI设计、控件函数以及定义为子函数的用户控件回调函数,主要用于控制GUI展开时的各种特征。GUI创建包括界面设计和控件编程两部分,主要步骤如下。第一步:通过设置GUIDE应用程序的选项来运行GUIDE;第二步:使用界面设计编辑器进行面设计;第。
3、(s);title('滤波前信号的波形');sublot(,,);lot(z);title('滤波后的信号波形');图双线性法带通滤波%*****************************高通滤波器*****************************[y,fs,nbits]=wavread('seech');n=length(y);%求出语音信号的长度noise=*randn(n,);%随机函数产生噪声s=y+noise;%语音信号加入噪声S=fft(s);%傅里叶变换z=filter(num,den,s);sound(z);m=fft(z);%求滤波后的信号sublot(,,);lot(abs(S),'g');title('滤波前信号的频谱');sublot(,,);lot(abs(m),'r');title('滤波后信号的频谱');sublot(,,);lot(s);title('滤波前信号的波形');sublot(,,);lot(z);title('滤波后的信号波形');图双线性法高通滤波%========================窗函数法=================。
4、设计滤波器[h,w]=freqz(b,);%得到频率响应lot(w**i,abs(h));title('FIR高通滤波器');axis([]);图FIR高通滤波器用滤波器对加噪语音信号进行滤波用自己设计的各滤波器分别对加噪的语音信号进行滤波,在Matlab中,FIR滤波器利用函数fftfilt对信号进行滤波,IIR滤波器利用函数filter对信号进行滤波。函数fftfilt用的是重叠相加法实现线性卷积的计算。调用格式为:y=fftfilter(h,x,M)。其中,h是系统单位冲击响应向量;x是输入序列向量;y是系统的输出序列向量;M是有用户选择的输入序列的分段长度,缺省时,默认的输入向量的重长度M=。函数filter的调用格式:yn=filter(B,Axn),它是按照直线型结构实现对xn的滤波。其中xn是输入信号向量,yn输出信号向量。比较滤波前后语音信号的波形及频谱%======================双线性变换法=======================%*************************低通滤波器************************[y,fs,nbi。
5、用是否合理、充分、真实。答辩情况:自我陈述、回答问题的正确性、用语准确性、逻辑思维、是否具有独到见解等。合计指导教师(签章):年月日abs(m),'r');title('滤波后信号的频谱');grid;sublot(,,);lot(s);title('滤波前信号的波形');grid;sublot(,,);lot(z);title('滤波后的信号波形');图双线性法低通滤波%**********************带通滤波器*****************************[y,fs,nbits]=wavread('seech');n=length(y);%求出语音信号的长度noise=*randn(n,);%随机函数产生噪声s=y+noise;%语音信号加入噪声S=fft(s);%傅里叶变换z=filter(num,den,s);sound(z);m=fft(z);%求滤波后的信号sublot(,,);lot(abs(S),'g');title('滤波前信号的频谱');sublot(,,);lot(abs(m),'r');title('滤波后信号的频谱');sublot(,,);lot。
6、三步:编写控件行为响应控制(即回调函数)代码。界面设计及使用说明首先我们新建一个GUI文件:FileNewGUI如下图所示:图GUI创建界面选择BlankGUI(Default)。其次,进入GUI开发环境以后添加两个编辑文本框,个静态文本框,和一个按钮,布置如下图所示;图GUI开发环境布置好各控件以后,我们就可以来为这些控件编写程序来实现两数相加的功能了。最后,使用说明。单击相应的按钮,便跳出对应的界面,如按下按钮“低通滤波器”,就得到如图所示结果。图系统运行界面小结本设计圆满的完成了对加噪声语音信号的读取与打开,与课题的要求十分相符;也较好的完成了对原始语音信号和加噪声后的语音信号的频谱分析,通过fft变换,得出了语音信号的频谱图;在滤波这一部分,课题主要是从巴特沃斯滤波器入手来设计滤波器等入手,实现了预期的滤波效果;完成了界面的设计,但也存在许多的不足,只是很勉强的达到了打开语音文件、显示已定滤波前后的波形图,界面没有用到其它的一些控件,如列表框、下拉菜单等等,GUI的界面设计功能没能得到充分的发挥。结论语音信号处理是语音学与数字信号处理技术相结合的交叉学科,课题在这里不讨论语音学,而是将语音。
7、资料,图书馆也热情地老师帮助,在此,向他们表示致谢。当然,我也要感谢计算机工程学院,感谢他们给我提供这次实习的机会。我院采取把理论知识与实践相结合教学模式,让学生的知识源于课堂而走出课堂,真正做到了“为了学生的一切,一切为了学生”。最后,再次感谢所有帮助过我的老师和同学!参考文献高西全,丁玉美.数字信号处理.第版.北京:西安电子科技大学出版社,刘泉,阙大顺.数字信号处理原理与实现.北京:电子工业出版社,张磊,毕靖,郭莲英.MATLAB实用教程.北京:人民邮电出版社,张威.MATLAB基础与编程入门.西安:西安电子科技大学出版社,周利清,苏菲.数字信号处理基础.北京:北京邮电大学出版社,指导教师评语学号姓名班级通信选题名称基于MATLAB有噪声语音信号的处理序号评价内容权重(%)得分考勤记录、学习态度、工作作风与表现。自学情况:上网检索机时数、文献阅读情况(笔记)。论文选题是否先进,是否具有前沿性或前瞻性。成果验收:是否完成设计任务;能否运行、可操作性如何等。报告的格式规范程度、是否图文并茂、语言规范及流畅程度;主题是否鲜明、重心是否突出、论述是否充分、结论是否正确;是否提出了自己的独到见解。文献引。
8、s]=wavread('seech');n=length(y);%求出语音信号的长度noise=*randn(n,);%随机函数产生噪声s=y+noise;%语音信号加入噪声S=fft(s);%傅里叶变换z=filter(num,den,s);sound(z);m=fft(z);%求滤波后的信号sublot(,,);lot(abs(S),'g');title('滤波前信号的频谱');grid;sublot(,,);lot(一个界面设计工具集,MAYLAB将所有GUI支持度控件都集成在这个环境中,并提供界面外观、属性和行为响应方式的设置方法。GUIDE将设计好的GUI保存在一个FIG文件中,同时生成M文件框架。FIG文件:包括GUI图形窗口及其所有后裔的完全描述,包括所有对象属性的属性值。它是一个二进制文件调用hsave课保存图形窗口时将生车该文件。M文件包括GUI设计、控件函数以及定义为子函数的用户控件回调函数,主要用于控制GUI展开时的各种特征。GUI创建包括界面设计和控件编程两部分,主要步骤如下。第一步:通过设置GUIDE应用程序的选项来运行GUIDE;第二步:使用界面设计编辑器进行面设计;第。
9、当做一种特殊的信号,即一种“复杂向量”来看待。也就是说,课题更多的还是体现了数字信号处理技术。从课题的中心来看,课题“基于MATLAB的有噪声语音信号处理”是希望将数字信号处理技术应用于某一实际领域,这里就是指对语音及加噪处理。作为存储于计算机中的语音信号,其本身就是离散化了的向量,我们只需将这些离散的量提取出来,就可以对其进行处理了。这一过程的实现,用到了处理数字信号的强有力工具MATLAB。通过MATLAB里几个命令函数的调用,很轻易的在实际语音与数字信号的理论之间搭了一座桥。课题的特色在于它将语音信号看作一个向量,于是就把语音数字化了。那么,就可以完全利用数字信号处理的知识来解决语音及加噪处理问题。我们可以像给一般信号做频谱分析一样,来对语音信号做频谱分析,也可以较容易的用数字滤波器来对语音进行滤波处理。通过比较加噪前后,语音的频谱和语音回放,能明显的感觉到加入噪声后回放的声音与原始的语音信号有很大的不同,前者随较尖锐的干扰啸叫声。从含噪语音信号的频谱图中可以看出含噪声的语音信号频谱,在整个频域范围内分是布均匀。其实,这正是干扰所造成的。通过滤波前后的对比,低通滤波后效果最好,高通滤波后的效。
10、果最差。由此可见,语音信号主要分布在低频段,而噪声主要分布在高频段。最后,还利用了MATLAB的另一强大功能GUI界面设计。设计出了一个简易的用户应用界面,可以让人实现界面操作,更加方便的进行语音的频谱分析与加噪滤波处理。致谢本次课程设计选题及进行过程中得到常波、胡荣林老师等的悉心指导。对报告的书写格式及内容,老师多次帮助我分析思路,开拓视角。在我遇到困难的时候,老师给予我最大的支持和鼓励。指导老师严谨求实的治学态度,踏实坚韧的工作精神,值得我学习。在此,谨向常波、胡荣林老师、刘虎老师和顾相老师平等致以诚挚的谢意。同时还要学感谢我的同,尤其是我们同一课题的几个同学,我们花费课很多的时间和精力。相互之间帮忙协作,上网搜索相关资料,到图书馆查阅相关文献,遇到难题,共同商讨。解决不了的问题,我们就像老师和其他同学虚心请教。最终,我们一起解决了一个又一个难题,虽然,我们有过争吵,但是在真理面前,我们的行动是一致的。在一周的课程设计过程中,学院的机房工作人员给我们提供的便利的条件,天气寒冷,实验室空调一直开放,我们觉得很温暖,在此,表达对工作人员的谢意。在遇到课题技术难题时,我和同组的同学到图书馆广泛查阅相。
11、;ws=(w*ww^)(bw*w);[n,wn]=buttord(w,ws,,,'s');%求低通滤波器阶数和截止频率[b,a]=butter(n,wn,'s');%求S域的频率响应参数[num,den]=lb(b,a,sqrt(w*w),bw);%将S域低通参数转为带通的[num,den]=bilinear(num,den,);%双线性变换实现S域到Z域的转换[h,w]=freqz(num,den);%根据参数求出频率响应lot(w**i,abs(h));axis([]);legend('用butter设计');图IIR带通滤波器%======================IIR高通==========================Ft=;F=;Fs=;w=tan(i*FFt);%高通到低通滤波器参数转换ws=tan(i*FsFt);w=;ws=w*wws;[n,wn]=chebord(w,ws,,,'s');%求模拟的低通滤波器阶数和截止频率[b,a]=cheby(n,,wn,'s');%求S域的频率响应的参数[num,den]=lh(b,a,wn);%将S域低通参数转为高通的[num,d 。
12、en]=bilinear(num,den,);%利用双线性变换实现S域到Z域转换[h,w]=freqz(num,den);lot(w**i,abs(h));title('IIR高通滤波器');legend('用cheby设计');图IIR高通滤波器%**************************FIR低通滤波器*****************************%用窗函数设计低通滤波器的程序如下r=;rs=;=^(r);%通带阻带波纹s=^(rs);fts=[wws];mag=[];dev=[s];[n,wn,beta,ftye]=kaiserord(fts,mag,dev);%kaiserord求阶数截止频率b=fir(n,wn,Kaiser(n+,beta));%由fir设计滤波器[h,w]=freqz(b,);%得到频率响应lot(wi,abs(h));title('FIR低通滤波器');图FIR低通滤波器%************************FIR带通滤波器************************w=tan(i*FFt);%带通到低通滤波器参数转换w=tan