




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、matlab 课程设计报告设计题目:基于 matlab 的语音信号采集与处理学生姓名:学生学号:专业班级:光信息科学与技术答辩时间:2013年 12 月指导教师:冯明库广东技术师范学院电子与信息学院一、设计目的及意义 1. matlab软件功能简介matlab 的名称源自 matrix laboratory,1984年由美国 mathworks 公司推向市场。它是一种科学计算软件,专门以矩阵的形式处理数据。matlab 将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛的应用于科学计算、控制系统和信息处理等领域的分析、仿真和设计工作。matlab 软件包括五大通用功能,数
2、值计算功能(nemeric) 、符号运算功能(symbolic ) 、 数据可视化功能(graphic ) 、 数字图形文字统一处理功能 (notebook)和建模仿真可视化功能 (simulink ) 。 其中, 符号运算功能的实现是通过请求maple内核计算并将结果返回到matlab 命令窗口。该软件有三大特点,一是功能强大;二是界面友善、语言自然;三是开放性强。目前,mathworks 公司已推出 30多个应用工具箱。 matlab 在线性代数、矩阵分析、数值及优化、数值统计和随机信号分析、电路与系统、 系统动力学、 次那好和图像处理、 控制理论分析和系统设计、过程控制、建模和仿真、通信
3、系统以及财政金融等众多领域的理论研究和工程设计中得到了广泛应用。matlab 在信号与系统中的应用主要包括符号运算和数值计算仿真分析。由于信号与系统课程的许多内容都是基于公式演算,而 matlab 借助符号数学工具箱提供的符号运算功能,能基本满足信号与系统课程的需求。例如解微分方程、傅里叶正反变换、 拉普拉斯正反变换和z 正反变换等。 matlab 在信号与系统中的另一主要应用是数值计算与仿真分析,主要包括函数波形绘制、函数运算、冲击响应与阶跃响应仿真分析、信号的时域分析、信号的频谱分析、系统的s域分析和零极点图绘制等内容。数值计算仿真分析可以帮助学生更深入地理解理论知识,并为将来使用 mat
4、lab 进行信号处理领域的各种分析和实际应用打下基础。2. 本题目的意义本次课程设计的课题为基于matlab 的语音信号采集与处理,学会运用matlab 的信号处理功能,采集语音信号,并对语音信号进行滤波及变换处理,观察其时域和频域特性,加深对信号处理理论的理解,并为今后熟练使用matlab 进行系统的分析仿真和设计奠定基础。此次实习课程主要是为了进一步熟悉对matlab 软件的使用,以及学会利用matlab 对声音信号这种实际问题进行处理,将理论应用于实际, 加深对它的理解。二、设计任务及指标利用 matlab 对语音信号进行分析和处理,采集语音信号后, 利用 matlab软件平台进行频谱分
5、析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。语音信号的“ 短时谱” 对于非平稳信号 , 它是非周期的 , 频谱随时间连续变化 , 因此由傅里叶变换得到的频谱无法获知其在各个时刻的频谱特性。如果利用加窗的方法从语音流中取出其中一个短断 , 再进行傅里叶变换 , 就可以得到该语音的短时谱。三、设计过程 (1). 语音信号的采集及分析基于声卡进行数字信号的采集。 将话筒插入计算机的语音输入插口上, 启动录音机。按下录音按钮,对话筒说话, 说完后停止录音。要保存文件时, 利用了计算机上的 a/d 转换器 , 把模拟的声音信号变成了离散的量化
6、了的数字信号, 放音时 ,它又通过d/a 转换器 , 把保存的数字数据恢复为原来的模拟的声音信号。在matlab 软件平台下可以利用函数wavread 对语音信号进行采样 , 得到了声音数据变量 x1, 同时把 x1 的采样频率 fs=22050hz 和数据位 nbits=16bit放进了 matalb的工作空间。 图 figure 1 为原始语音信号的时域图形。 从图中可以看出在时域环境下, 信号呈现出 6 不规则的信号峰值。通过 freqz 函数绘制原始语音信号的频率响应图 figure 2 。 然后对语音信号进行频谱分析, 在 matlab 中可以利用函数 fft对信号行快速傅里叶变换
7、, 得到信号的频谱图figure 3,从图中可以看出对各个频点上的随机信号在频域进行抽样 , 抽样频率为 22050hz。(2). 给原始信号加上一个高频噪声在 matlab 中人为设计一个固定频率5500hz的噪声干扰信号。噪声信号通常为 随 机 序 列 , 在 本 设 计 中 用 正 弦 序 列 代 替 , 干 扰 信 号 构 建 命 令 函 数 为d=au*sin(2*pi*5500*t),给出的干扰信号为一个正弦信号, 针对上面的语音信号 , 采集了其中一段。再对噪音信号进行频谱变换得到其频谱图, 从图中可以看出干扰信号,在 4000hz和 6000hz 频点处有一高峰 , 其中 55
8、00hz 正是本设计所要利用的。(3). 设计一个滤波器,滤除高频噪声由模拟滤波器变换为数字滤波器时, 采用的是双线性变换法, 它保留的是从模拟到数字域的系统函数表示。 在滤波器的选取时 , 由于设计方法的侧重点不同, 作出比较是困难的。 如果 fir 滤波器情况下 , 最优的设计将是椭圆滤波器。 用双线性变换法设计低通滤波器。 的本设计是用双线性变换法设计bw 带阻型滤波器。 在matlab 中 , 可以利用函数 butterworth,设计 fir滤波器 , 利用 matlab 中的函数freqz 画出各滤波器的频率响应。用设计好的带阻滤波器对含噪语音信号进行滤波, 在 matlab 中
9、fir 滤波器利用函数 fftfilt对信号进行滤波 ,fir 滤波器利用函数 filter对信号进行滤波。 在一个窗口同时画出滤波前后的波形及频谱。从图中可以看出 ,5500hz看到的高峰消失了 , 语音信号与开始的一样 , 滤波器成功的滤除了干扰信号。 利用 matlab 对语音信号进行分析和处理,采集语音信号后,利用 matlab 软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。四、结论及分析 1用matlab 对原始语音信号进行分析,画出它的时域波形和频谱程序:fs=22050; %语音信号采样频率为22050
10、 x1=wavread(c:documents and 桌 面声 音 文件.wav); %读取语音信号的数据,赋给变量x1,sound(x1,22050); %播放语音信号y1=fft(x1,1024); %对信号做 1024 点 fft变换f=fs*(0:511)/1024; %将 0 到 511,步长为 1 的序列的值与 fs 相乘并除以 1024 的值,赋值给 ffigure(1) %创建图形窗 1plot(x1) %做原始语音信号的时域图形title(原始语音信号 );xlabel(time n); %x轴的名字是“ time n ”ylabel(fuzhi n); %y轴的名字是“
11、fuzhi n”figure(2)freqz(x1) %绘制原始语音信号的频率响应图title(频率响应图 )figure(3)subplot(2,1,1); %创建两行一列绘图区间的第1 个绘图区间plot(abs(y1(1:512) %做原始语音信号的fft频谱图title(原始语音信号 fft频谱)subplot(2,1,2);plot(f,abs(y1(1:512); %abs是绝对值, plot 是直角坐标下线性刻度曲线title(原始语音信号频谱 )xlabel(hz);ylabel(幅值);时域波形和频谱:图 1 原始语音信号图 2 语音信号频率响应图图 3 原始语音信号fft与
12、信号频谱2. 给原始的语音信号加上一个高频余弦噪声,频率为5500hz。对加噪后的语音进行分析,并画出其信号时域和频谱图。程序:fs=22050; x1=wavread(c:documents and 桌 面声 音 文件.wav); %读取语音信号的数据,赋给变量x1f=fs*(0:511)/1024; %将 0 到 511, 步长为 1的序列的值与 fs 相乘并除以 1024的值,赋值给 ft=0:1/fs:(length(x1)-1)/fs; %将 0 到 x1 的长度减 1后的值除以 fs 的值,且步长为 1/fs 的值,的序列的值,赋予tau=; %噪声幅值d=au*sin(2*pi*
13、5500*t); %所加的噪声是正弦信号x2=x1+d; %将正弦信号噪声加在语音信号上sound(x2,22050); %播放语音信号y1=fft(x1,1024); %对信号 y1 做 1024点 fft变换y2=fft(x2,1024); %对信号 y2 做 1024点 fft变换figure(1); %创建图形窗 1plot(t,x2); %做加噪后的信号时域图形 (绘出 t 对 x2 的线性图)title(加噪后的信号 );xlabel(time n); %x轴的名字是“ time n ”ylabel(fuzhi n); %y轴的名字是“ fuzhi n ”figure(2) %创建
14、图形窗 2subplot(2,1,1); % 创建两行一列绘图区间的第1 个绘图区间plot(f,abs(y1(1:512); %做原始语音信号的频谱图title(原始语音信号频谱 );xlabel(hz); %x轴的名字是“ time n ”ylabel(fuzhi); % y轴的名字是“ fuzhi ”subplot(2,1,2); %创建两行一列绘图区间的第2 个绘图区间plot(f,abs(y2(1:512); %做加噪后的语音信号的频谱图 (abs 是绝对值,plot是直角坐标下线性刻度曲线)title(加噪后的信号频谱 );xlabel(hz); %x轴的名字是“ time n ”
15、ylabel(fuzhi); % y轴的名字是“ fuzhi ”时域波形和频谱:图 4 加噪后的信号时域图图 5 原始信号与加噪后信号频谱对比与原始信号对比,区别:先原始信号没加噪音之前0 到 2000 有幅值,在 4000到 6000之间没有幅值,但是在加了噪音之后4000 到 6000 之间出现最大幅值12,超出正常值。 如图 5 原始信号与加噪后信号频谱对比图所示。3. 设计合适的滤波器,滤除高频噪声,绘出滤波后的信号频域和时域波形:程序:% 用双线性变换法设计巴特沃思低通滤波器wp=*pi; %通带截止频率ws=*pi; %阻带截止频率rp=1; %通带最大衰减( db)rs=15;
16、%阻带最大衰减( db)fs=22050;ts=1/fs;wp1=2/ts*tan(wp/2); %将模拟指标转换成数字指标ws1=2/ts*tan(ws/2); %将模拟指标转换成数字指标n,wn=buttord(wp1,ws1,rp,rs,s); %选择滤波器的最小阶数(估算得到butterworth低通滤波器的最小阶数n和 3db截止频率 wc )z,p,k=buttap(n); %创建 butterworth低通滤波器原型bap,aap=zp2tf(z,p,k); %将零极点增益转换为普遍分子,分母b,a=lp2lp(bap,aap,wn); %将普遍的分子和分母转换为以wn 为截止频
17、率bz,az=bilinear(b,a,fs); %用双线性变换法实现模拟滤波器到数字滤波器的转换(模拟转换为数字)h,w=freqz(bz,az); %求频率响应figure(9)plot(w*fs/(2*pi),abs(h) %绘制 butterworth低通滤波器频率响应曲线grid %添加图格xlabel(频率 hz)ylabel(频率响应幅度 )title(butterworth)f1=filter(bz,az,z); %利用上面已做好的滤波器(已bz 和az 为特征的滤波器) 对 x2 信号进行滤波,赋值给 f1figure(10)subplot(2,1,1) %创建两行一列绘图区
18、间的第1 绘图区间plot(t,z) %做加噪后的信号时域图形title(滤波前的时域波形 );subplot(2,1,2) %创建两行一列绘图区间的第2 绘图区间plot(t,f1); title(滤波后的时域波形 );sound(f1,22050); %播放语音信号p=length(f1);f0=fft(f1,p);f=0:fs/p:fs*(s-1)/p;figure(11)y2=fft(z,1024); %对信号 y2 做 1024点 fft变换subplot(2,1,1); %创建两行一列绘图区间的第1 绘图区间plot(f,abs(y4); title(滤波前的频谱 )xlabel(
19、hz); %x轴的名字是“ hz”ylabel(fuzhi); %y轴的名字是“ fuzhi ”subplot(2,1,2)f1=plot(f,abs(f0); title(滤波后的频谱 )xlabel(hz);ylabel(fuzhi);时域波形和频谱:图 6 低通滤波器频率响应曲线图 7 滤波前后时域波形图图 8 滤波前后频谱图与原噪音信号对比,区别:通过对比分析可知,滤波后的输出波形和原始语音加噪声信号的图形发生了一些变化, 在 3000-6000hz之间的信号消失, 出现 0-1000和 7000-8000 之间的信号。滤波后的输出波形明显在对应时间幅度比原语音加噪声信号的要小,而且滤
20、波的效果也与滤波器的选择有关,可以看出滤波器的性能差异以及参数的调节会对滤波器产生一定的影响,并且通过回放可以发现滤波前后的声音有变化. 低通滤波后 , 已很接近原来的声音, 人耳几乎辨别不出。从频谱图中我们还可以看出声音的能量信号主要集中在低频部分,说明高频语音信号被滤出,滤波器达到既定要求。五、设计体会正所谓“纸上得来终觉浅, 觉知此事要躬行。”学习任何知识, 仅从理论上去求知,而不去实践、探索是不够的。因此在学期末来临之际,我们迎来了matlab课程设计。通过为期一周半的matlab 课程设计,我对 matlab 这个仿真软件有了更进一步的认识和了解。在这一周半时间里,我通过自己摸索,查
21、阅资料,并且在老师的指导下完成了:语音信号的采集及分析;给原始信号加上一个高频噪声;设计一个滤波器,滤除高频噪声;并最终将课程设计报告总结完毕。在整个设计过程中我懂得了许多东西,也培养了独立思考和设计的能力,树立了对知识应用的信心,相信会对今后的学习工作和生活有非常大的帮助,并且提高了自己的动手实践操作能力,使自己充分体会到了在设计过程中的成功喜悦。虽然这个设计做的不怎么好,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富,使我终身受益。在没有做课程设计以前,觉得课程设计只是对知识的单纯总结,但是通过这次课程设计发现自己的看法有点太片面,课程设计不仅是对前面所学知识的一种检验,也是对
22、自己能力的一种提高,通过这次课程设计使自己明白了原来的那点知识是非常欠缺的,要学习的东西还很多,通过这次课程设计,明白学习是一个长期积累的过程,在以后的工作和生活中都应该不断的学习,努力提高自己的知识和综合素质。希望以后像这样的课程设计在多一点。参考文献:1 姚东.matlab 及在电子信息课程中的应用m. 第二版 . 北京:北京电子工业出版社,20002 张智星 .matlab 程序设计与应用 . 北京:清华大学出版社,20023 陈怀琛 .matlab及其在理工课程中的应用指南. 西安:西安电子科技大学出版社,4 肖伟、刘忠 . matlab程序设计与应用 m. 北京:清华大学出版社 20
23、05程序清单:fs=22050; %语音信号采样频率为22050 x1=wavread(c:documents and 桌 面声 音 文件.wav); %读取语音信号的数据,赋给变量x1,sound(x1,22050); %播放语音信号y1=fft(x1,1024); %对信号做 1024 点 fft变换f=fs*(0:511)/1024; %将 0 到 511,步长为 1 的序列的值与 fs 相乘并除以 1024 的值,赋值给 ffigure(1) %创建图形窗 1plot(x1) %做原始语音信号的时域图形title(原始语音信号 );xlabel(time n); %x轴的名字是“ ti
24、me n ”ylabel(fuzhi n); %y轴的名字是“ fuzhi n”figure(2)freqz(x1) %绘制原始语音信号的频率响应图title(频率响应图 )figure(3)subplot(2,1,1); %创建两行一列绘图区间的第1 个绘图区间plot(abs(y1(1:512) %做原始语音信号的fft频谱图title(原始语音信号 fft频谱)subplot(2,1,2);plot(f,abs(y1(1:512); %abs是绝对值, plot 是直角坐标下线性刻度曲线title(原始语音信号频谱 )xlabel(hz);ylabel(幅值);fs=22050; x1=
25、wavread(c:documents and 桌 面声 音 文件.wav); %读取语音信号的数据,赋给变量x1f=fs*(0:511)/1024; %将 0 到 511, 步长为 1的序列的值与 fs 相乘并除以 1024的值,赋值给 ft=0:1/fs:(length(x1)-1)/fs; %将 0 到 x1 的长度减 1后的值除以 fs 的值,且步长为 1/fs 的值,的序列的值,赋予tau=; %噪声幅值d=au*sin(2*pi*5500*t); %所加的噪声是正弦信号x2=x1+d; %将正弦信号噪声加在语音信号上sound(x2,22050); %播放语音信号y1=fft(x1
26、,1024); %对信号 y1 做 1024点 fft变换y2=fft(x2,1024); %对信号 y2 做 1024点 fft变换figure(1); %创建图形窗 1plot(t,x2); %做加噪后的信号时域图形 (绘出 t 对 x2 的线性图)title(加噪后的信号 );xlabel(time n); %x轴的名字是“ time n ”ylabel(fuzhi n); %y轴的名字是“ fuzhi n ”figure(2) %创建图形窗 2subplot(2,1,1); % 创建两行一列绘图区间的第1 个绘图区间plot(f,abs(y1(1:512); %做原始语音信号的频谱图t
27、itle(原始语音信号频谱 );xlabel(hz); %x轴的名字是“ time n ”ylabel(fuzhi); % y轴的名字是“ fuzhi ”subplot(2,1,2); %创建两行一列绘图区间的第2 个绘图区间plot(f,abs(y2(1:512); %做加噪后的语音信号的频谱图 (abs 是绝对值,plot是直角坐标下线性刻度曲线)title(加噪后的信号频谱 );xlabel(hz); %x轴的名字是“ time n ”ylabel(fuzhi); % y轴的名字是“ fuzhi ”% 用双线性变换法设计巴特沃思低通滤波器wp=*pi; %通带截止频率ws=*pi; %阻带截止频率rp=1; %通带最大衰减( db)rs=15; %阻带最大衰减( db)fs=22050;ts=1/fs;wp1=2/ts*tan(wp/2); %将模拟指标转换成数字指标ws1=2/ts*tan(ws/2); %将模拟指标转换成数字指标n,wn=butto
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 微生物检测与公众健康研究试题及答案
- 项目管理资格考试参考资料试题及答案
- 项目随机事件应对相关题目及答案
- 项目管理认证考试难度试题及答案
- 初中政治共建“一带一路”倡议:进展贡献与展望素材
- 关注项目管理专业人士的职业素养提升试题及答案
- 理解2025年证券从业资格证考试的评估标准试题及答案
- 2025年证券从业资格证考试观点探讨与试题答案
- 证券从业资格分析与解题试题及答案
- 理解不同行业投资的特点试题及答案
- 2025年全国普通话水平测试50套复习题库及答案
- 乙女游戏情感叙事中的虚拟亲密关系
- DB31∕T 1038-2017 生态公益林主要造林树种苗木质量分级
- 【培训课件】跨境服务免税政策及管理解读
- 女方婚后出轨保证书(6篇)
- 马克思主义基本原理概论复习资料
- 计算机等级考试一级计算机基础及WPS Office应用试题与参考答案(2025年)
- 常见消防安全隐患图解精美
- 学校白板打印机维修合同(2篇)
- 电化学储能系统现场验收要求表
- 运维或技术支持岗位招聘笔试题与参考答案(某大型央企)2024年
评论
0/150
提交评论