基于MATLAB的语音信号分析与处理的课程设计实验报告.doc

上传人:仙人指路1688 文档编号:2388546 上传时间:2023-02-17 格式:DOC 页数:12 大小:507KB
返回 下载 相关 举报
基于MATLAB的语音信号分析与处理的课程设计实验报告.doc_第1页
第1页 / 共12页
基于MATLAB的语音信号分析与处理的课程设计实验报告.doc_第2页
第2页 / 共12页
基于MATLAB的语音信号分析与处理的课程设计实验报告.doc_第3页
第3页 / 共12页
基于MATLAB的语音信号分析与处理的课程设计实验报告.doc_第4页
第4页 / 共12页
基于MATLAB的语音信号分析与处理的课程设计实验报告.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《基于MATLAB的语音信号分析与处理的课程设计实验报告.doc》由会员分享,可在线阅读,更多相关《基于MATLAB的语音信号分析与处理的课程设计实验报告.doc(12页珍藏版)》请在三一办公上搜索。

1、目 录绪论1正文:一、设计目的及要求2二、设计过程2三、调试分析6四、结果分析与体会11五、参考文献12六、谢辞12绪 论数字信号处理(digital signal processing,DSP)是从20世纪60年代以来,随着信息学科和计算机学科的高速发展而迅速发展起来的一门新兴学科。它的重要性日益在各个领域的应用中表现出来。简言之,数字信号处理是把信号用数字或符号表示的序列,通过计算机或通用(专用)信号处理设备,用数字的数值计算方法处理(例如滤波、变换、压缩、增强、估计、识别等),以达到提取有用信息便于应用的目的。数字信号处理的应用包括滤波与变换、通信、语音、语言、图像、图形、消费电子、仪器

2、、工业控制与自动化、医疗、军事等。其发展方向也是多方面的,包括数字汇聚、远程会议系统、融合网络、数字图书馆、图像与文本合一的信息检索业务、多媒体通信、个人信息终端等。在本次设计中,就以设计一个数字滤波器系统为目的。滤波器按频率划分有低通、高通、带通、带阻全通等类型。一个数字滤波器可以用一个系统函数来表示,若要得到该系统函数,就要得到以z(-1)升幂排列的传输函数的分子和分母多项式的系数,即向量num、den,而这两个参数由num den=butter(N,Wn)、N,Wn=buttord(wp,ws,rp,rs)这一函数得出,这是巴特沃思滤波器的设计过程。由于频率响应的周期性,频率变量以数字频

3、率来表示,=2*f/fc,f为模拟域频率,fc为抽样频率,所以数字滤波器设计中必须给出抽样频率。在这次设计中采用了巴特沃思和切比雪夫两种滤波器,这两种滤波器又分别采用了高通、低通、带通、带阻四种频率特性实现,从横向上和纵向上都可以进行对比,表现出各种滤波器的不同特性。 一、设计目的及要求1课程设计目的 综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应结论,再利用 MATLAB 作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。2课程设计基本要求 1) 学会 MATLAB 的使用,掌握 MATLAB 的程序设计方法。 2) 掌握在 Windows 环境下

4、语音信号采集的方法。 3) 掌握数字信号处理的基本概念、基本理论和基本方法。 4) 掌握 MATLAB 设计 FIR 和IIR 数字滤波器的方法。 5) 学会用 MATLAB 对信号进行分析和处理。3课程设计内容录制一段自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,设计数字滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的语音信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;最后,用 MATLAB 设计一信号处理系统界面。二、设计过程1、 打开GUI窗口:File New G

5、UI Create New GUI Blank GUI(Default) OK2、 控件设计:在控件布局设计区放置四个Axes控件、六个Push Button控件、一个Button Group控件和两个Radio Button控件、四个Static Text控件。3、 修改控件属性:选中需要修改属性的控件,双击打开属性查看器,具体设置如下:1) 五个Axes控件 Tag作用axes1提供坐标画出原始信号波形axes2提供坐标画出原始信号频谱axes3提供坐标画出滤波后信号波形axes4提供坐标画出滤波后信号频谱axes5提供坐标画出滤波器频率响应2) 六个Push Button控件:Strin

6、gTagStringTag低通pushbutton1带阻pushbutton4高通pushbutton2原始信号pushbutton5带通pushbutton3关闭窗口pushbutton63) 一个Button Group控件和两个Radio Button控件: StringStyleTag请选择滤波器种类Button Groupuipanel5巴特沃思Radio Buttonradiobutton1切比雪夫Radio Buttonradiobutton24) 五个Static Text控件(这五个Static Text控件是对坐标轴中图形的说明):TagStringtext1原始信号波形t

7、ext2原始信号频谱text3滤波后信号波形text4滤波后信号频谱text5滤波器频率响应4、 保存:设置好各个控件的属性,回到GUI主窗口保存,给文件命名为hy,同时hy.m文件打开。5、 设置回调函数:在hy.m文件窗口中设置回函数。这里,虽然GUI自动生成了回调函数,但是回调函数是空的,需要在hy.m文件中对它进行定义说明。该程序只需要对六个Push Button控件的回调函数进行定义说明。六个Push Button控件的回调函数:1)“低通”按键的回调函数function pushbutton1_Callback(hObject, eventdata, handles)y,fs,bi

8、ts=wavread(e:hy.wav); %函数wavread是对语音信号进行 采样,格式是y,fs,nbit=wavread,返回采样值放在向量y中,fs表示采样频率(Hz),nbit表示采样位数。fp=1000;fs=2000;rp=0.5;rs=40;fc=40000;%设定通带截止频率(fp)、阻带截止频率(fs)、通带波纹系数(rp)、阻带波纹系数(rs)、抽样频率(fc)。wp=2*fp/fc;ws=2*fs/fc; %将模拟域转化成数字域。if get(handles.radiobutton1,value) %如果选择radiobutton1,则制做巴特沃思滤波器。N,Wc=b

9、uttord(wp,ws,rp,rs); %估算巴特沃思滤波器的阶数N和3dB截止频率Wc。num,den=butter(N,Wc); %求传输函数的分子和分母多项式的系数。else %选择radiobutton2,则制做切比雪夫型滤波器。N,Wc=cheb1ord(wp,ws,rp,rs); %估算切比雪夫型滤波器的阶数N和截止频率Wc。num,den=cheby1(N,rp,Wc); %求传输函数的分子和分母多项式的系数。endx=filter(num,den,y); %根据传输函数的分子和分母多项式的系数得到模拟滤波器,并将y通过该滤波器,得到x。sound(x,fc,bits); %将

10、滤波后的信号x进行回放。X=fft(x); %将x信号进行快速傅里叶变换。axes(handles.axes3);plot(x); %在axes3坐标轴上画出x信号的波形图。axes(handles.axes4);plot(abs(X); %在axes4坐标轴上画出x信号的频谱图。h,f=freqz(num,den,256,fc); %求滤波器的频率响应。axes(handles.axes5);plot(f,abs(h),k); %在axes5坐标轴上以黑线画出滤波器的频率响应。2)“高通”按键的回调函数function pushbutton2_Callback(hObject, eventd

11、ata, handles)y,fs,bits=wavread(e:hy.wav);fp=2000;fs=1000;rp=0.5;rs=40;fc=40000;wp=2*fp/fc;ws=2*fs/fc;if get(handles.radiobutton1,value)N,Wc=buttord(wp,ws,rp,rs);num,den=butter(N,Wc,high); %返回N阶高通滤波器。else N,Wc=cheb1ord(wp,ws,rp,rs);num,den=cheby1(N,rp,Wc,high);待添加的隐藏文字内容3endx=filter(num,den,y);sound(

12、x,fc,bits);X=fft(x);axes(handles.axes3);plot(x);axes(handles.axes4);plot(abs(X);h,f=freqz(num,den,256,fc);axes(handles.axes5);plot(f,abs(h),k);3)“带通”按键的回调函数function pushbutton3_Callback(hObject, eventdata, handles)y,fs,bits=wavread(e:hy.wav);fp=3000,8000;fs=1000,10000;rp=0.5;rs=40;fc=40000;wp=2*fp/f

13、c;ws=2*fs/fc;if get(handles.radiobutton1,value)N,Wc=buttord(wp,ws,rp,rs);num,den=butter(N,Wc); %Wc为双元素向量,返回2N阶带通滤波器。else N,Wc=cheb1ord(wp,ws,rp,rs);num,den=cheby1(N,rp,Wc);endx=filter(num,den,y);sound(x,fc,bits);X=fft(x);axes(handles.axes3);plot(x);axes(handles.axes4);plot(abs(X);h,f=freqz(num,den,2

14、56,fc);axes(handles.axes5);plot(f,abs(h),k);4)“带阻”按键的回调函数function pushbutton4_Callback(hObject, eventdata, handles)y,fs,bits=wavread(e:hy.wav);fp=1000,10000;fs=3000,8000;rp=0.5;rs=40;fc=40000;wp=2*fp/fc;ws=2*fs/fc;if get(handles.radiobutton1,value)N,Wc=buttord(wp,ws,rp,rs);num,den=butter(N,Wc,stop);

15、 %返回2N阶带阻滤波器。else N,Wc=cheb1ord(wp,ws,rp,rs);num,den=cheby1(N,rp,Wc,stop);endx=filter(num,den,y);sound(x,fc,bits);X=fft(x);axes(handles.axes3);plot(x);axes(handles.axes4);plot(abs(X);h,f=freqz(num,den,256,fc);axes(handles.axes5);plot(f,abs(h),k);5)“原始信号”按键的回调函数function pushbutton5_Callback(hObject,

16、eventdata, handles)y,fs,bits=wavread(e:hy.wav);sound(y,fs,bits);Y=fft(y);axes(handles.axes1);plot(y);axes(handles.axes2);plot(abs(Y);6)“关闭窗口”按键的回调函数function pushbutton6_Callback(hObject, eventdata, handles)close6、 保存修改后的hy.m文件,单击GUI主窗口工具栏中的“激活运行”按钮,在GUI界面中按下“原始信号”按键就可以看到原始信号的波形和频谱,并播放原始信号;选择滤波器种类(巴特

17、沃思或切比雪夫),然后按下“高通”、“低通”、“带通”、“带阻”其中一个按键,就可以看到原信号经过滤波器后的信号的波形与频谱,并播放该信号。三、调试分析图1 控件布局图2 单击“激活运行”后界面图3 巴特沃思高通滤波器图4 切比雪夫高通滤波器图5 巴特沃思低通滤波器图6 切比雪夫低通滤波器 图7 巴特沃思带通滤波器 图8 切比雪夫带通滤波器 图9 巴特沃思带阻滤波器图10 切比雪夫带阻滤波器图3图10为巴特沃思和切比雪夫型滤波器在不同频率特性下产生的信号波形与频谱,同时有原信号作对比。可以看出,巴特沃思滤波器的频率特性曲线无论在通带还是在阻带内,都是频率的单调函数,切比雪夫型滤波器的幅频特性在

18、通带内是等波纹的,阻带内是单调的。因为在回调函数中,高通和低通、带通和带阻滤波器的截止频率、波纹系数、抽样频率设定的值是相同的,所以在下图中纵向对比可以看出,信号通过高通和低通滤波器之后频谱相对于原信号是互补的,如果对于高通滤波器在某一频率段上有幅值,那么对于低通滤波器该频率幅值为零。同理于带通和带阻滤波器。横向上对比可以看出不同滤波器选频特性也不同,特别是在图7图10中选频边界处的频谱处理可以看出,切比雪夫滤波器比巴特沃思滤波器的选频特性好。四、结果分析与体会滤波器的作用就是滤除掉阻带内有频率分量,保留通带内的频率分量。在图3图10的波形图和频谱图中可以看出,经过滤波器处理后,不仅滤除掉了原

19、信号的部分频率分量,原信号的幅度也会有所衰减,而低通和带阻滤波器产生的信号相对于原信号变化不大,是因为设定的选频范围是原信号的频率段中较集中的部分,所以与此同时,高通和带通滤波器产生的信号相对于原信号的幅度就会大大衰减,其原因也是在于高通和带通滤波器的选频范围是原信号频率范围中较少的一部分。在信号回放时,低通和带阻滤波器回放的音频信号与原信号相比,音色有一点低沉;而高通和带通滤波器回放的音频信号,几乎已经听不到什么声音,这也说明了这两种滤波器产生的信号频率只占原信号频率范围中较少的部分。所以根据各个滤波器的选频范围及滤波后信号的音效,可大致判断原信号的频率多集中在1000Hz以下。通过这次课设

20、,使我对滤波器有了更深的认识,特别是滤波器参数对滤波器性能的影响,因为通带截止频率、阻带截止频率、通带波纹系数、阻带波纹系数都是要影响滤波器的阶数,而滤波器的阶数越大,其选频特性就越好。因为滤波器处理的音频信号是我自己的声音,所以通过滤波器处理后音频信号的变化,能大致得出自己声音的频率范围,也是挺有意思的。在做课程设计之前觉得内容挺难的,但经过查阅图书馆的资料和同学们的努力与帮助,最后还是以比较短的时间完成了这次课程设计。以前学MATLAB的时候,最后的大作业也是用GUI设计了一个可视化界面,所以在本次设计中可视化界面的设计也没有觉得很难。但是看到其他同学有用到Edit Text控件来作滤波器

21、参数的输入,感觉到自己的能力还是很有限,所以还需要加强学习。但最重要的还是感觉到通过课程设计能够学以致用,并且运用以前学过的工具来更好的理解所学的内容,收获还是挺大的。五、参考文献程佩青 数字信号处理教程(第三版) 清华大学出版社罗军辉、罗勇江、白义臣等 MATLAB7.0在数字信号处理中的应用 机械工业出版社刘波、文忠、曾涯等 MATLAB信号处理 电子工业出版社六、谢辞 在本次设计中,借阅了图书馆的一些书籍,比自己的帮助比较大,同学间的相互讨论与帮助也起到了很重要的作用。此外还要特别感谢指导老师耐心的辅导,并帮助我纠正错误,授予以鱼,亦之以渔,使我不仅能够按时完成课程设计,也从中对本课程有了更深的认识与理解,同时也注意到自己在学习方法中的不足,并会在日后加以改正。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号