Matlab处理声音文件.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Matlab处理声音文件

Matlab处理声音文件 摘要:《信号与系统》这门课是大多数工程类课表中的一个重要组成部分,在学习《信号与系统》这门课时,我们需要熟练地应用Matlab来采集和处理音频信号,图像信号等并绘出它们的波形和频谱。利用Matlab我们可以灵活方便地分析和处理声音文件。本文介绍了用Matlab处理声音文件的基本流程,并绘制了音频信号的相关波形和频谱。 关键词:Matlab 音量标准化 声道分离 数字滤波 数据转换 引言:MATLAB是美国Math Works公司推出的一种面向工程和科学计算的交互式计算软件。它以矩阵运算为基础,把计算、可视化、程序设计融合在一个简单易用的交互式工作环境中,是一款数据分析和处理功能都非常强大的工程实用软件。分析和处理,首先要对声音信号进行采集,MATLAB 的数据采集工具箱提供了一整套命令和函数,通过调用这些函数和命令,可直接控制声卡进行数据采集Windows自带的录音机程序也可驱动声卡来采集语音信号,并能保存为WAV格式文件,供MATLAB相关函数直接读取、写入或播放。本文以WAV格式信号作为分析处理的输入数据,用MATLAB处理的基本流程是:先将WAV格式信号经wavread 函数转换成MATLAB列数组变量;再用MATLAB强大的运算能力进行数据分析和处理,如时域分析、频域分析、数字滤波、信号合成、信号变换、识别和增强等等;处理后的数据如是音频数据,则可用wavwrite转换成WAV格式文件或用sound、wavplay等函数直接回放”语音信号为例,先将其复制另存到文件名为XPexit.wav的Matlab当前目录中,再通过音量标准化后保存为XPquit.wav文件。以下为其实现程序: clear; close all; clc;? [Y,FS,NBITS]=wavread(XPexit.WAV);% 将WAV文件转换成变量FS,NBITS,% 显示采样频率和量化比特?Ym=max(max(max(Y)),max(abs(min(Y)))),% 找出双声道极值? X=Y/Ym;% 归一化处理? wavwrite(X,FS,NBITS,XPquit.wav)% 将变量转换成WAV文件立体声或双声道音频信号有左右两个声道,利用MATLAB实现双声道分离、两路声道合并和两个单声道组合成一个双声道等效果,实际上是利用了MATLAB的矩阵抽取、矩阵相加和矩阵重组运算。clear; close all; clc;?   [x,FS,NBITS]=wavread(XPquit.WAV);% 将WAV文件转换成变量?   x1=x(:,1);% 抽取第1声道?   x2=x(:,2);% 抽取第2声道?   wavwrite(x1,FS,NBITS,XPquit1.WAV);% 实现1声道分离?   wavwrite(x2,FS,NBITS,XPquit2.WAV);% 实现2声道分离?   %如果合并位置不对前面补0 %声道长度不对后面补0?   x12=x1+x2;% 两路单声道列向量矩阵变量合并?   x12m=max(max(x12),abs(min(x12))),% 找出极值?   y12=x12./x12m;% 归一化处理?   wavwrite(y12,FS,NBITS,XPquit12.WAV);% 实现两路声道合并?   %如果组合位置不对前面补0--声道长度不对后面补0?   x3=[x1,x2];% 两路单声道变量组合?   wavwrite(x3,FS,NBITS,XPquit3.WAV);% 实现两路声道组合数字滤波数字滤波是常用的音频处理技术。先利用FDATool工具,设计一个数字滤波器,再用Filter或Filter2函数即可实现滤波处理。调用的Filter函数格式是:Y = filte (B,A,X) 。其中,B和A是滤波器传输函数的分子和分母系数,X是输入变量,Y是实现滤波后的输出变量。)clear; close all; clc;?   [X,FS,NBITS]=wavread(XPquit12.WAV);% 将WAV文件转换成变量?   %利用FDATool设计一个LowpassButterworth滤波器?   %指标FS=22050Hz Fp=1000Hz Ap=1dB Fs=3000Hz As=20dB?   B =[0.0062,0.0187,0.0187,0.0062];% 分子系数?   A =[1,-2.1706,1.6517,-0.4312];% 分母系数?   Y=filter(B,A,

文档评论(0)

st4739288 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档