基于 MATLAB 的语音信号分析与处理的课程设计_第1页
基于 MATLAB 的语音信号分析与处理的课程设计_第2页
基于 MATLAB 的语音信号分析与处理的课程设计_第3页
基于 MATLAB 的语音信号分析与处理的课程设计_第4页
基于 MATLAB 的语音信号分析与处理的课程设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计(论文)任务书 信息工程 学院 通信工程 专业 05-(1) 班级一、课程设计(论文)题目基于 matlab 的语音信号分析与处理的课程设计二、课程设计(论文)工作自 2007 年 12月 31日起至 2008 年 1 月 4 日止。三、课程设计(论文) 地点: 15#520 四、课程设计(论文)内容要求:1. 本课程设计的目的: 综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应结论,再利用 matlab 作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。2. 课程设计的任务及要求:1. 课程设计的基本要求: 学会 matlab 的使用,掌握

2、matlab 的程序设计方法。 掌握在 windows 环境下语音信号采集的方法。 掌握数字信号处理的基本概念、基本理论和基本方法。 掌握 matlab 设计 fir 和 nr 数字滤波器的方法。 学会用 matlab 对信号进行分析和处理。2. 课程设计的内容:录制一段自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法或双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的语音信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;最后,用 matlab 设计一

3、信号处理系统界面。目 录第一章 绪 论1第二章 总体设计及思路分析3第三章 程序设计实现4第四章 总 结53. 语音信号的采集1.4. 语音信号的频谱分析2.5. 设计数字滤波器和画出频率响应3.6. 用滤波器对信号进行滤波4.7. 比较滤波前后语音信号的波形及频谱5.8. 回放语音信号6.9. 设计系统界面7.10. 调试分析8.11. 设计小结8.12. 设计心得体会9.13. 参考文献10.第一章 绪论matlab是一种科学计算软件,主要适用于矩阵运算和信息处理领域的分析设计,它使用方便,输入简捷,运算高效,内容丰富,并且很容易由用户自行扩展.matlab当前已成为美国和其他发达国家在大

4、学教学和教学研究中最常用而必不可少的工具.传统的数字滤波器的设计过程复杂,计算工作量大,滤波特性调整困难,影响了它的应用。本文介绍了利用matlab快速有效的设计由软件组成的常规数字滤波器的设计方法,综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得到相应结论。给出了使用matlab语言进行程序设计并进行界面设计的详细步骤。利用matlab设计滤波器,可以随时对比设计要求和滤波器特性调整参数,直观简便,极大的减轻了工作量,有利于滤波器设计的最优化。利用matlab作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。第二章 总体设计及思路分析1课程设计基本要求 学

5、会 matlab 的使用,掌握 matlab 的程序设计方法。 掌握在 windows 环境下语音信号采集的方法。 掌握数字信号处理的基本概念、基本理论和基本方法。 掌握 matlab 设计 fir 和 nr 数字滤波器的方法。 学会用 matlab 对信号进行分析和处理。2课程设计内容 录制一段自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法或双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的语音信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;最后

6、,用 matlab 设计一信号处理系统界面。2.3.1 声音的导入、采样和频谱分析声音文件的导入:我们可以采集语音信号利用计算机windows下的录音机设备,可以采集语音信号并采样,得出数据文件12.wav保存在matlab的work路径下,在m文件中键入:“x1=wavread(i:work12.wav );”读取语音信号的数据,赋给变量x1。并且播出声音,键入“sound(x1,22050);”。对声音型号进行采样和频谱分析:我们对信号做1024点fft变换;然后在对型号做出时域波形图、fft频谱图。2.3.2 滤波器的选择和分析数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数

7、据进行数学处理来达到频域滤波的目的。根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(iir)滤波器和有限冲激响应(fir)滤波器。与fir滤波器相比,iir的实现是非递归的。所以我们这次设计在matlab中设计的就是iir数字滤波器因此这次设计采用一个butterworth的低通滤波器,并且我们采取双线性变换法来实现。n,wn=buttord(wp,ws,rp,rs)估算巴特沃思滤波器的阶数n和3db截止频率wn。输入参数是通带截止频率wp,阻带截止频率ws,通带波纹rp,阻带波纹rs.2.3.3 回放语音信号 在matlab中,函数sound可以对声音进行回放。其调用格式:soun

8、d(x,fs,bits);可以感觉滤波前后的声音有变化。反复听取原信号和滤波后的声音,进行对比;不停的调整滤波器的参数。最后选择一个效果不错的滤波器使用。2.3.4 整合图形界面 最后设计一个人机对话界面,分别加入滤波前的原信号、和滤波后的信号。并在界面上画出采样和频谱分析。第三章 程序设计实现总体概述:本程序分为五块:原始语音信号读入、声音信号采样后语音信号的时域波形和频谱分析图、3.1声音信号的导入程序:figure(1)x1,fs,nbits=wavread(c:matlab6p5leakeypjl.wav); %读取语音信号的数据,赋给变量x1sound(x1,fs); %播放语音信号

9、3.1声音信号采样后语音信号的时域波形和频谱分析程序:figure(1)x1,fs,nbits=wavread(pjl.wav); %读取语音信号的数据,赋给变量x1y1=fft(x1,1024); %对信号做1024点fft变换f=fs*(0:255)/1024;subplot(211);plot(x1); %做原始语音信号的时域图形title(原始语音信号);xlabel(时间);ylabel(幅度);subplot(212);h,w=freqz(x1); %绘制原始语音信号的频率响应图plot(w,abs(h);title(频率响应图);程序图: 图3.13.2 butterworth滤

10、波器的设计程序:figure(1)wp=0.1*pi;ws=0.3*pi;rp=30;rs=120;fs=fs;ts=1/fs;wp1=2/ts*tan(wp/2); %将模拟指标转换成数字指标ws1=2/ts*tan(ws/2); n,wn=buttord(wp1,ws1,rp,rs,s); %选择滤波器的最小阶数z,p,k=buttap(n); %创建butterworth模拟滤波器bap,aap=zp2tf(z,p,k);b,a=lp2lp(bap,aap,wn); bz,az=bilinear(b,a,fs); %用双线性变换法实现模拟滤波器到数字滤波器的转换h,w=freqz(bz,

11、az); %绘制频率响应曲线plot(w*fs/(2*pi),abs(h)xlabel(频率hz)ylabel(频率响应幅度)title(butterworth)程序图: 图3.23.3 滤波后语音信号的时域波形和频谱分析程序:figure(1)x1,fs,nbits=wavread(pjl.wav); %读取语音信号的数据,赋给变量x1y1=fft(x1,1024); %对信号做1024点fft变换f=fs*(0:255)/1024;subplot(211);plot(x1); %做原始语音信号的时域图形title(原始语音信号);xlabel(时间);ylabel(幅度);subplot(

12、212);h,w=freqz(x1); %绘制原始语音信号的频率响应图plot(w,abs(h);title(频率响应图);程序图: 图3.33.4 滤波后语音信号输出程序:figure(1)x1,fs,nbits=wavread(c:matlab6p5leakeypjl.wav); %读取语音信号的数据,赋给变量x1y1=fft(x1,1024); %对信号做1024点fft变换f=fs*(0:255)/1024;wp=0.1*pi;ws=0.3*pi;rp=30;rs=120;fs=fs;ts=1/fs;wp1=2/ts*tan(wp/2); %将模拟指标转换成数字指标ws1=2/ts*t

13、an(ws/2); n,wn=buttord(wp1,ws1,rp,rs,s); %选择滤波器的最小阶数z,p,k=buttap(n); %创建butterworth模拟滤波器bap,aap=zp2tf(z,p,k);b,a=lp2lp(bap,aap,wn); bz,az=bilinear(b,a,fs); %用双线性变换法实现模拟滤波器到数字滤波器的转换sf=filter(bz,az,x1);y2=fft(sf,1024); sound(sf,fs);3.5 滤波前后时域图比较程序:f1=filter(bz,az,x1);subplot(2,1,1)plot(t,x1) %画出滤波前的时域

14、图title(滤波前的时域波形);subplot(2,1,2)plot(t,f1); %画出滤波后的时域图title(滤波后的时域波形);时域图比较如下:图3.4 滤波前后时域波形图比较图3.6 滤波前后频谱比较程序:sound(f1,22050); %播放滤波后的信号f0=fft(f1,1024);f=fs*(0:511)/1024;y2=fft(x1,1024);subplot(2,1,1);plot(f,abs(y2(1:512); %画出滤波前的频谱图title(滤波前的频谱)xlabel(hz);ylabel(fuzhi);subplot(2,1,2)plot(f,abs(f0(1:

15、512); %画出滤波后的频谱图title(滤波后的频谱)xlabel(hz);ylabel(fuzhi);滤波前后频谱比较图:图3.5 滤波前后频谱比较图 滤波前后波形与频谱比较: 从滤波前后的时域波形看,滤波前后波形基本上不变,但是滤波后的波形比滤波前的采样更精确一点,密集地方变少,幅度变小。而从频谱图看,滤波后比滤波前的频谱更宽一点,集中性变好。从反复听取语音信号得来,滤波后的没有滤波前的响亮,声音有点浑厚,基本保持了原始声音,明显看出滤波的效果。3.6 图形整合:本过程使用matlab的guide命令进行界面的整合。输入guide命令后,会产生2个文件,一个为.fig,一个为.m,两个

16、文件。fig文件中保存了我们能够看到的的用户界面代码,而m文件里保存着gui进行调用的各种函数和代码。当我们编辑好一个gui并激活它的时候,guide将运行m文件,执行里面的调用。 设置了7个push button,它们是按钮控件,单击后自动弹起,常来做出发、调用一些事件。我们这里分别设置为: oldwave ,yuansheng ,butterworth ,shiyubijiao ,lvhousheng ,pinpu bijiao 。我们在本程序中就是要用push button来触发这六个编写好的程序。 下面有两个axes,都含有坐标轴的绘图区域,我们需要实现的正是在按下push butto

17、n后在axes中能够显示所要出现的采样和频谱分析图。 在最左边我们设置了一个static text,这是一个静态文本区,可以在gui中拖动每个控件的位置,把它调整为我们上图中的位置。然后我们设置每个按钮的属性及与m文件的连接,之后再运行gui程序,这样让matlab自动生成一个对应的m文件。在当中我们再把我们编好的程序整合到自动生成的界面m文件中。我们可以发现这正是我们要需要的push button。在其下我们可以粘贴上我们编好的程序,这样untitled4 这个按钮鼠标按下后就会自动执行我们的原声音的导入、采样和频谱分析。 如此类推我们可以分别实现我们上述的程序。 下面就是axes控件的运用

18、。我们可以在我们编好的程序中找到我们的plot程序段,我们plot语句就是单独的画出每一个采样和频谱图。我们在gui中我们可以将plot程序段用axes(handles.axes n );代替,当中n代表你想要把plot的图放在第几个axes控件中,即输出图形的位置。 这样我们就大概的设置出了每个控件实现的主要功能。我们再次打开我们的gui可视化界面,我们再次对他进行设置。我们可以把每个控件的名字改为我们所需要的名字。这里我们就需要用到每个控件的对象属性查看器。当中我们可以找到string命令行,其值为一个字符串,为显示在控件上的文本串。我们可以运用此命令行改为我们所需要的名称。 最后运行gu

19、i程序,我们的图形界面就和我们编好的程序整合好了。分别点击每个push button我们就可以看到我们所需要的采样和频谱分析图。3.6.1 整合界面:整合界面图:图3.6 整合界面总图3.6.2 按钮yuanshiyuying功能:播放原始录音“我叫潘金龙”。3.6.3 按钮yuanshi功能:产生原始语音信号图和频谱图图形:图3.7 按钮yuanshi产生3.6.4 按钮butterworth功能: 产生butterworth滤波器图形:图3.8 按钮butterworth3.6.5 按钮lubohoutu功能:产生滤波后语音信号图和频谱图。图形: 图3.9 按钮lubohoutu产生3.6

20、.6 按钮boxingbijiao功能:产生滤波前后波形比较图。图形: 图3.9 按钮boxingbijiao产生3.6.7 按钮pinpubijiao功能: 产生滤波前后频谱比较图。图形: 图3.10 按钮pinpubijiao产生3.6.8 按钮lubohouyuyin功能: 播放滤波后录音“我叫潘金龙”。第四章 小结 本次我们主要是围绕声音信号,运用matlab对其进行分析。我们把声音采样再用滤波器对其进行滤波,是运用matlab中的iir滤波器对其进行分析。通过这次课设过程我们能够不仅对matlab的使用和matlab滤波器的运用有更深刻的理解,加深了对课堂抽象概念的理解,巩固了课堂上

21、所学的理论知识,并能很好地理解与掌握数字信号处理中的基本概念、基本原理、基本分析方法,而且我们对matlab中的界面设计有了新的体验。我们把数字信号处理的理论知识和matlab运用联系在了一起。有利于我们更好的掌握理论知识。培养了我们利用matlab对进行信号分析,处理和设计的能力,以及独立思考、善于创造,运用综合知识的能力。第五章 谢辞我非常感谢指导老师张青苗老师在论文选题以及研究方法上给予的悉心指导,使我尽快理清思路,纠正错误,顺利完成课程设计的写作。张老师广博的学识,如沐春风的教诲令我受益匪浅。同时让我更加明白一定要把自己所学的知识学扎实,这样才有利于我以后的学习或者是工作。我还要感谢我

22、的舍友,他们在学习和生活上热心帮助,并在论文写作过程中提出宝贵的意见和给予无私的帮助。是他们,让我体会到一个集体的凝聚力,让我学会在挫折中依然选择坚强,让我懂得团体的重要性。附录(源程序)function varargout = yuanshiyuyin1(varargin)% yuanshiyuyin1 m-file for yuanshiyuyin1.fig% yuanshiyuyin1, by itself, creates a new yuanshiyuyin1 or raises the existing% singleton*.% h = yuanshiyuyin1 returns

23、 the handle to a new yuanshiyuyin1 or the handle to% the existing singleton*.% yuanshiyuyin1(property,value,.) creates a new yuanshiyuyin1 using the% given property value pairs. unrecognized properties are passed via% varargin to yuanshiyuyin1_openingfcn. this calling syntax produces a% warning when

24、 there is an existing singleton*.% yuanshiyuyin1(callback) and yuanshiyuyin1(callback,hobject,.) call the% local function named callback in yuanshiyuyin1.m with the given input% arguments.% *see gui options on guides tools menu. choose gui allows only one% instance to run (singleton).% see also: gui

25、de, guidata, guihandles % edit the above text to modify the response to help yuanshiyuyin1 % last modified by guide v2.5 07-jan-2008 14:33:17 % begin initialization code - do not editgui_singleton = 1;gui_state = struct(gui_name, mfilename, . gui_singleton, gui_singleton, . gui_openingfcn, yuanshiyu

26、yin1_openingfcn, . gui_outputfcn, yuanshiyuyin1_outputfcn, . gui_layoutfcn, , . gui_callback, );if nargin & isstr(varargin1) gui_state.gui_callback = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_state, varargin:);else gui_mainfcn(gui_state, varargin:);end% end initializati

27、on code - do not edit % - executes just before yuanshiyuyin1 is made visible.function yuanshiyuyin1_openingfcn(hobject, eventdata, handles, varargin)% this function has no output args, see outputfcn.% hobject handle to figure% eventdata reserved - to be defined in a future version of matlab% handles

28、 structure with handles and user data (see guidata)% varargin unrecognized propertyname/propertyvalue pairs from the% command line (see varargin) % choose default command line output for yuanshiyuyin1handles.output = hobject; % update handles structureguidata(hobject, handles); % uiwait makes yuansh

29、iyuyin1 wait for user response (see uiresume)% uiwait(handles.figure1); % - outputs from this function are returned to the command line.function varargout = yuanshiyuyin1_outputfcn(hobject, eventdata, handles)% varargout cell array for returning output args (see varargout);% hobject handle to figure

30、% eventdata reserved - to be defined in a future version of matlab% handles structure with handles and user data (see guidata) % get default command line output from handles structurevarargout1 = handles.output; % - executes on button press in pushbutton1.function pushbutton1_callback(hobject, event

31、data, handles)% hobject handle to pushbutton1 (see gcbo)% eventdata reserved - to be defined in a future version of matlab% handles structure with handles and user data (see guidata) % - executes on button press in pushbutton2.function pushbutton2_callback(hobject, eventdata, handles)% hobject handl

32、e to pushbutton2 (see gcbo)% eventdata reserved - to be defined in a future version of matlab% handles structure with handles and user data (see guidata) % - executes on button press in pushbutton6.function pushbutton6_callback(hobject, eventdata, handles)% hobject handle to pushbutton6 (see gcbo)% eventdata reserved - to be defined in a future version of matlab% handle

温馨提示

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

最新文档

评论

0/150

提交评论