- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MATLAB课程设计报告
基于MATLAB的语音信号采集与处理
一目的意义
本次课程设计的课题为《基于MATLAB的语音信号采集与处理》,学会运用MATLAB的信号处理功能,采集语音信号,并对语音信号进行滤波及变换处理,观察其时域和频域特性,加深对信号处理理论的理解,并为今后熟练使用MATLAB进行系统的分析仿真和设计奠定基础。
此次实习课程主要是为了进一步熟悉对matlab软件的使用,以及学会利用matlab对声音信号这种实际问题进行处理,将理论应用于实际,加深对它的理解。
二、实践原理:
1.理论原理
利用MATLAB对语音信号进行分析和处理,采集语音信号后,利用MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。语音信号的“ 短时谱”对于非平稳信号, 它是非周期的, 频谱随时间连续变化, 因此由傅里叶变换得到的频谱无法获知其在各个时刻的频谱特性。如果利用加窗的方法从语音流中取出其中一个短断, 再进行傅里叶变换, 就可以得到该语音的短时谱。
2. 具体流程
(1). 语音信号的采集及分析
基于声卡进行数字信号的采集。将话筒插入计算机的语音输入插口上,启动录音机。按下录音按钮,对话筒说话,说完后停止录音。要保存文件时,利用了计算机上的A/D转换器,把模拟的声音信号变成了离散的量化了的数字信号,放音时,它又通过D/A转换器,把保存的数字数据恢复为原来的模拟的声音信号。在 Matlab软件平台下可以利用函数wavread对语音信号进行采样,得到了声音数据变量x1,同时把x1的采样频率fs=22050Hz和数据位Nbits=16Bit放进了MATALB的工作空间。图figure 1为原始语音信号的时域图形。从图中可以看出在时域环境下,信号呈现出6不规则的信号峰值。通过freqz函数绘制原始语音信号的频率响应图figure 2 。然后对语音信号进行频谱分析,在Matlab中可以利用函数fft对信号行快速傅里叶变换,得到信号的频谱图figure 3,从图中可以看出对各个频点上的随机信号在频域进行抽样 ,抽样频率为 22050Hz。
(2). 给原始信号加上一个高频噪声
在Matlab中人为设计一个固定频率5500Hz的噪声干扰信号。噪声信号通常为随机序列,在本设计中用正弦序列代替,干扰信号构建命令函数为d=[Au*sin(2*pi*5500*t)],给出的干扰信号为一个正弦信号,针对上面的语音信号 ,采集了其中一段。再对噪音信号进行频谱变换得到其频谱图,从图中可以看出干扰信号,在4000Hz和 6000Hz频点处有一高峰 ,其中 5500Hz 正是本设计所要利用的。
(3). 设计一个滤波器,滤除高频噪声
由模拟滤波器变换为数字滤波器时,采用的是双线性变换法, 它保留的是从模拟到数字域的系统函数表示。在滤波器的选取时, 由于设计方法的侧重点不同, 作出比较是困难的。如果FIR滤波器情况下,最优的设计将是椭圆滤波器。用双线性变换法设计低通滤波器。的本设计是用双线性变换法设计BW带阻型滤波器。在 MATLAB中 ,可以利用函数 butterworth,设计FIR滤波器,利用 MATLAB 中的函数freqz 画出各滤波器的频率响应。用设计好的带阻滤波器对含噪语音信号进行滤波,在Matlab中 FIR滤波器利用函数fftfilt对信号进行滤波,FIR滤波器利用函数filter对信号进行滤波。在一个窗口同时画出滤波前后的波形及频谱。从图中可以看出 ,5500Hz看到的高峰消失了 ,语音信号与开始的一样 ,滤波器成功的滤除了干扰信号。利用MATLAB对语音信号进行分析和处理,采集语音信号后,利用MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。
三、实践步骤
1.用MATLAB对原始语音信号进行分析,画出它的时域波形和频谱
程序:
fs=22050; %语音信号采样频率为22050
x1=wavread(D:\Matlab7\toolbox\vr\vrealm\program\worlds\tutorial\ex7\audio\waterrun.wav);
%读取语音信号的数据,赋给变量x1,
sound(x1,22050); %播放语音信号
y1=fft(x1,1024); %对信号做1024点FFT变换
f=fs*(0:511)/1024; %将0到511,步长为1的序列的值与fs相乘并除以1024的值,赋值给f
figure(1) %创建图形窗1
plot
您可能关注的文档
最近下载
- 软件测试工程面试常见问题介绍.docx VIP
- SMTC 5 320 040 与空气接触橡胶材料要求(20130531).pdf VIP
- STEAM教育理念在小学科学教学中的融合教学研究课题报告.docx
- CBNData&阿里健康-2019线上体检消费报告-2019.12-23页.pdf
- 电子社Altium Designer 22(中文版)电子设计速成实战宝典教学课件第5章-原理图开发环境及设计.pptx VIP
- 江苏苏州高新区投资促进有限公司招聘考试真题2024.docx VIP
- 涟源市党校物业保洁服务方案.docx VIP
- 化工过程安全管理AQ3034培训.pptx
- 软件项目质量保证计划.doc VIP
- AP微观经济学 2019年真题 (选择题+问答题) AP Microeconomics 2019 Released Exam and Answers (MCQ+FRQ).pdf VIP
文档评论(0)