- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字信号处理(DSP)课程设计—利用Matlab实现对三种音频信号的采样和分析
数字信号处理
课
程
设
计
报
告
姓名:蒲钇霖
学号:201021030619
学院:微固
利用Matlab实现对三种音频信号的采样和分析
一、前言:
数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多方面而又广泛应用于很多领域的学科。它是一种使用数学手段转换或提取信息,来处理现实信号的方法。随着信息时代和数字世界的到来,数字信号处理技术得到了迅速的发展,已经成为了一个极其重要的研究领域。
本次课程设计可以算是对于数字信号处理技术一个基础的应用实例,主要是通过Matlab软件对现实中的音频信号进行采样以及分析研究。
二、设计目的:
通过此次课程设计,让我们能够更好地巩固和运用在数字信号课程中学习到的理论知识和实验方法,加强我们将理论知识化为实践技巧的能力,主要是熟悉和学习如何使用Matlab对信号进行采集、截取、显示、存储和分析。在这过程中同时培养我们发现问题、分析问题以及解决问题的能力。
三、主要内容:
这次课程设计将对三种音频信号进行分析研究与相互比较,其中的两种信号是用Matlab软件来录制的一段自己发出的声音和用汤匙敲击不锈钢杯的声音,然后再截取出它们的有效部分。另一种是从电脑里找的Windows XP的开机启动声音。完成这三种信号的采集工作之后,就分别用音频分析软件spectrogram和Matlab两种手段对它们进行分析研究和相互比较,得出相应的结论,从而完成课程设计的任务。
四、设计步骤:
1.采集声音信号
Windows XP开机启动的声音可直接由电脑中找出,这里主要是采集自己发出的声音和汤匙敲击不锈钢杯的声音。一般来说,我们采集声音信号最简便的方法就是直接使用Windows自带的录音器。但为了帮助学习Matlab,这里我们使用该软件来进行声音的录制。下面就是录制自己发出的声音的一段程序(参照了网上查找的一个例子):
fs=8000;
channel=1;
t=3;
fprintf(按任意键后开始 %d秒录音:,t);pause;
fprintf(录音中...);
x=wavrecord(t*fs,fs,channel,double);
fprintf(录音结束\n);
wavwrite(x,fs,C:\Program Files\MATLAB\R2007a\work\UESTC.wav)
fprintf(按任意键后回放:);pause
wavplay(x,fs);
这里不同于一般的命令操作方式,而是采用的编程操作方式。即这段程序不是在命令窗口输入,而是录入到了程序编辑窗口,然后以.m为后缀保存在work目录下,最后在命令窗口输入文件名即可执行程序,按照文字提示进行语音信号的录制。此次录制的语音信号是本人说的一句“UESTC”。
要录制汤匙敲击不锈钢杯的声音只需将上面程序中的存储语句“wavwrite(x,fs,C:\Program Files\MATLAB\R2007a\UESTC.wav)”改为“wavwrite(x,fs,C:\Program Files\MATLAB\R2007a\汤匙敲击不锈钢杯.wav)”。这样就完成了两种信号的采集工作,并将它们以wav格式存储到了Matlab文件目录中。
下面用waveread函数读出三种语音信号得到它们的时域波形图,程序如下:
x1=wavread(UESTC.wav);
x2=wavread(汤匙敲击不锈钢杯.wav);
x3=wavread(Windows XP开机启动.wav);
subplot(3,1,1),plot(x1),title(UESTC),grid;
subplot(3,1,2),plot(x2),title(汤匙敲击不锈钢杯),grid;
subplot(3,1,3),plot(x3),title(Windows XP开机启动),grid;
得到的时域波形图为:
2.截取有效部分
从上面的时域波形图中我们可以看到,由于Matlab在录制过程中的误差、麦克风(或是文件)自身因素以及本人对时间掌握不准等原因,三种音频信号中或多或少都有一些无效的点。我们可以通过对上面的程序稍加改动来滤除掉信号中无效的点,截取中有效部分并存储起来。程序如下:
[x1,fs1]=wavread(UESTC.wav,[5000,20000]);
subplot(3,1,1),plot(x1),title(UESTC(新)),grid;wavwrite(x1,fs1,C:\Program Files\MATLAB\R2007a\work\UESTC(新));
[x2,fs2]=wavread(汤匙敲击不锈钢杯.wav,[3500,23000]);
subplot(3,1,2),plot(x2),title(汤匙敲击不锈钢
文档评论(0)