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

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

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

1、目 录1课程设计目的(1)2课程设计基本要求.(1)3课程设计内容.(2)4课程设计实现.(3)(1)语音信号的采集.(5)(2)语音信号的频谱分析.(6)(3)设计滤波器和画出频率响应.(6)(4)用滤波器对信号进行滤波.(9)(5)比较滤波前后语音信号的波形及其频谱.(9)(6)回放语音信号.(11)(7)设计系统界面.(13)5、心得体会.(14)6、参考文献.(14)基于 MATLAB 的语音信号分析与处理的课程设计 1课程设计目的综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应结论,再利用 MATLAB 作为编程工具进行计算机实现,从而加深对所学知识的理解

2、,建立概念。1学会MATLAB的使用,掌握MATLAB的程序设计方法;2掌握在Windows环境下语音信号采集的方法;3掌握数字信号处理的基本概念、基本理论和基本方法;4掌握MATLAB设计FIR和IIR数字滤波器的方法;5学会用MATLAB对信号进行分析和处理。 2课程设计基本要求 学会 MATLAB 的使用,掌握 MATLAB 的程序设计方法。 掌握在 Windows 环境下语音信号采集的方法。 掌握数字信号处理的基本概念、基本理论和基本方法。 掌握 MATLAB 设计 FIR 和IIR 数字滤波器的方法。 学会用 MATLAB 对信号进行分析和处理。 主要实验仪器及材料 微型计算机、Ma

3、tlab6.5教学版、TC编程环境。 3课程设计内容录制一段自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法或双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的语音信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;最后,用 MATLAB 设计一信号处理系统界面。 要求利用windows下的录音机(开始程序附件娱乐录音机,文件属性立即转换8000KHz,8位,单声道)或其他软件,录制一段自己的话音,时间控制在1秒左右。然后在MATLAB软件平台下,利用函

4、数wavread对语音信号进行采样,记住采样频率和采样点数。通过wavread函数的使用,要求理解采样频率、采样位数等概念。wavread函数调用格式:y=wavread(file),读取file所规定的wav文件,返回采样值放在向量y中。y,fs,nbits=wavread(file),采样值放在向量y中,fs表示采样频率(Hz),nbits表示采样位数。y=wavread(file,N),读取前N点的采样值放在向量y中。y=wavread(file,N1,N2),读取从N1点到N2点的采样值放在向量y中。语音信号的频谱分析要求首先画出语音信号的时域波形;然后对语音信号进行频谱分析,在MAT

5、LAB中,可以利用函数fft对信号进行快速付立叶变换,得到信号的频谱特性;从而加深对频谱特性的理解。设计数字滤波器和画出频率响应根据语音信号的特点给出有关滤波器的性能指标: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。要求学生首先用窗函数法设计上面要求的三种滤波器,在MATLAB中,可以利用函

6、数fir1设计FIR滤波器,然后在用双线性变换法设计上面要求的三种滤波器;之后再利用函数butter和cheby1设计上面要求的三种IIR滤波器。最后,利用MATLAB中的函数freqz画出各滤波器的频率响应。用滤波器对信号进行滤波比较FIR和IIR两种滤波器的性能,然后用性能好的各滤波器分别对采集的信号进行滤波,在MATLAB中,FIR滤波器利用函数fftfilt对信号进行滤波,IIR滤波器利用函数filter对信号进行滤波。比较滤波前后语音信号的波形及频谱要求在一个窗口同时画出滤波前后的波形及频谱。回放语音信号在MATLAB中,函数sound可以对声音进行回放。其调用格式:sound(x,

7、fs,bits);可以感觉滤波前后的声音有变化 关于用MATLAB设计对信号进行频谱分析和滤波处理的程序程序: %写上标题 %设计低通滤波器: N,Wc=buttord() %估算得到Butterworth低通滤波器的最小阶数N和3dB截止频率Wc a,b=butter(N,Wc); %设计Butterworth低通滤波器 h,f=freqz(); %求数字低通滤波器的频率响应 figure(2); % 打开窗口2 subplot(221); %图形显示分割窗口 plot(f,abs(h); %绘制Butterworth低通滤波器的幅频响应图 title(巴氏低通滤波器); grid; %绘制

8、带网格的图像 sf=filter(a,b,s); %叠加函数S经过低通滤波器以后的新函数 subplot(222); plot(t,sf); %绘制叠加函数S经过低通滤波器以后的时域图形 xlabel(时间 (seconds); ylabel(时间按幅度); SF=fft(sf,256); %对叠加函数S经过低通滤波器以后的新函数进行256点的基2快速傅立叶变换 w= %新信号角频率 subplot(223); plot(); %绘制叠加函数S经过低通滤波器以后的频谱图 title(低通滤波后的频谱图); %设计高通滤波器 N,Wc=buttord() %估算得到Butterworth高通滤波

9、器的最小阶数N和3dB截止频率Wc a,b=butter(N,Wc,high); %设计Butterworth高通滤波器 h,f=freqz(); %求数字高通滤波器的频率响应 figure(3); subplot(221); plot(); %绘制Butterworth高通滤波器的幅频响应图 title(巴氏高通滤波器); grid; %绘制带网格的图像 sf=filter(); %叠加函数S经过高通滤波器以后的新函数 subplot(222); plot(t,sf); ;%绘制叠加函数S经过高通滤波器以后的时域图形 xlabel(Time(seconds); ylabel(Time wav

10、eform); w; %新信号角频率 subplot(223); plot(); %绘制叠加函数S经过高通滤波器以后的频谱图 title(高通滤波后的频谱图); %设计带通滤波器 N,Wc=buttord() %估算得到Butterworth带通滤波器的最小阶数N和3dB截止频率Wc a,b=butter(N,Wc); %设计Butterworth带通滤波器 h,f=freqz(); %求数字带通滤波器的频率响应 figure(4); subplot(221); plot(f,abs(h); %绘制Butterworth带通滤波器的幅频响应图 title(butter bandpass fil

11、ter); grid; %绘制带网格的图像 sf=filter(a,b,s); %叠加函数S经过带通滤波器以后的新函数 subplot(222); plot(t,sf); %绘制叠加函数S经过带通滤波器以后的时域图形 xlabel(Time(seconds); ylabel(Time waveform); SF=fft(); %对叠加函数S经过带通滤波器以后的新函数进行256点的基2快速傅立叶变换 w=( %新信号角频率 subplot(223); plot(); %绘制叠加函数S经过带通滤波器以后的频谱图 title(带通滤波后的频谱图);4课程设计实现(1)语音信号的采集选取一段语音信号,

12、然后在matlab软件平台下,利用wavread函数对语音信号进行采样,记住采样频率和采样点数。通过使用wavread函数,理解采样频率、采样位数等概念。wavread函数调用格式y=wavread(file),读取file所规定的wav文件,返回采样值放在响亮y中。y,fs,nbits=wavread(file),采样值放在向量y中,fs表示采样频率(hz),nbits表示采样位数。y=wavread(file,N),读取钱N点的采样值放在向量y中。y=wavread(file,N1,N2),读取从N1到N2点的采样值放在向量y中。对语音信号ermiao.wav进行采样其程序如下:y,fs,

13、nbits=wavread(ermiao)fs = 44100nbits = 16y=wavread(file,20000,65000)(2)语音信号的频谱分析首先画出语音信号的时域波形,然后对语音信号进行频谱分析。在matlab中利用fft对信号进行快速傅里叶变换,得到信号的频谱特性。其程序如下:y,fs,nbits=wavread(ermiao, 20000,65000);sound(y,fs,bits);Y=fft(y,4096);subplot(211);plot(y);title(原始信号波形);subplot(212);plot(abs(Y);title(原始信号频谱);程序结果如

14、下图:(3)设计滤波器和画出频率响应根据语音信号的特点给出有关滤波器的新能指标: 低通滤波器的性能指标:fp=1000Hz,fc=1200Hz,As=100dB,Ap=1dB; 高通滤波器的性能指标:fp=4800Hz,fc=5000Hz,As=100dB,Ap=1dB; 带通滤波器的性能指标:fp1=1200Hz,fp2=3000hZ,fc1=1000Hz,fc2=3200Hz,As=100dB,Ap=1dB;低通用窗函数设计低通滤波器的程序如下:fp=1000;fc=1200;As=100;Ap=1;fs=22050;wc=2*fc/fs;wp=2*fp/fs;N=ceil(As-7.95

15、)/(14.36*(wc-wp)/2)+1;beta=0.1102*(As-8.7);Win=Kaiser(N+1,beta);b=fir1(N,wc,Win);freqz(b,1,512,fs);程序运行结果如下图所示:用双线性变换设计的低通滤波器的程序如下:fp=1000;fc=1200;As=100;Ap=1;fs=22050;wc=2*fc/fs;wp=2*fp/fs;n,wn=ellipord(wp,wc,Ap,As);b,a=ellip(n,Ap,As,wn);freqz(b,a,512,fs);程序运行结果如下图所示:高通高通滤波器的程序如下:ws1=4800;wp1=5000;

16、wc=22050;wp=wp1/wc;ws=ws1/wc;N,Wn=buttord(wp,ws,1,100);b,a=butter(N,Wn,high)freqz(b,a,521,10000)程序运行结果如下图所示:带通设计带通滤波器的程序如下:wp1=1200 3000;ws1=1000 3200;wx=11025;wp=wp1/wc;ws=ws1/wc;n,Wn=cheb1ord(wp,ws,1,100)b,a=cheby1(n,1,Wn);freqz(b,a,512,1000)程序运行结果如下图所示:n = 24Wn = 0.0544 0.1361(4)用滤波器对信号进行滤波比较两种滤波

17、器的性能,然后用性能较好的滤波器对采集的信号进行滤波。在MATLAB中,FIR咯其利用函数fftfilt对信号进行滤波,IIR滤波器利用函数filter对信号进行滤波。(5)比较滤波前后语音信号的波形及其频谱要求在一个窗口同时画出滤波前后的波形及其频谱,FIR滤波:其程序如下:x=fftfilt(b,a,y);X=fft(x,4096);subplot(221);plot(y);title(原始信号波形);subplot(222);plot(abs(Y);title(原始信号频谱);subplot(223);plot(x);title(滤波后信号的波形);subplot(224);plot(a

18、bs(X);title(滤波后信号的频谱);运行结果如下:IIR滤波:其程序如下:x=filter(b,a,y);X=fft(x,4096);subplot(221);plot(y);title(原始信号波形);subplot(222);plot(abs(Y);title(原始信号频谱);subplot(223);plot(x);title(滤波后信号的波形);subplot(224);plot(abs(X);title(滤波后信号的频谱);运行结果如下:(6)回放语音信号在MATLAB中,函数sound可以对声音进行回放。其调用格式为:Sound(x,fs,bits)可以感觉滤波前后的声音变

19、换。(7)设计系统界面系统界面-低通滤波器-滤波 后(运行结果):5、心得体会这次课程设计历时一个星期,可以说是苦多于甜,但是可以学的到很多很多的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次设计,进一步加深了对数字信号处理的了解,让我对它有了更加浓厚的兴趣。特别是当每次编写调试成功时,心里特别的开心。但是在编写程序时,遇到了不少问题,特别是程序语法,总是有错误,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了,心里终于舒了一口气。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与

20、实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。总的来说,这次课程设计还是比较成功的,在设计中遇到了很多问题,最后在老师的辛勤的指导下,终于游逆而解,有点小小的成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。6、参考文献1数字信号处理 程佩青 清华大学出版社2数字信号处理实践教程 杨述斌 李永全 华中科技大学出版社3MATLAB实用教程 郑阿奇 电子工业出版社4数字信号处理(第二版) 丁玉美 西安电子科技大学出版社5数字信号处理技术及应用 吴湘美 中国铁道出版社6数字信号处理原理及实现 吴销扬 东南大学出版社7MATLAB系统分析与设计 李博函 西安电子科技大学出版社8数字信号处理姚天任 清华大学出版社

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号