matlab处理声音文件

matlab处理声音文件

ID:12575807

大小:116.00 KB

页数:5页

时间:2018-07-17

matlab处理声音文件_第1页
matlab处理声音文件_第2页
matlab处理声音文件_第3页
matlab处理声音文件_第4页
matlab处理声音文件_第5页
资源描述:

《matlab处理声音文件》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Matlab处理声音文件摘要:《信号与系统》这门课是大多数工程类课表中的一个重要组成部分,在学习《信号与系统》这门课时,我们需要熟练地应用Matlab来采集和处理音频信号,图像信号等并绘出它们的波形和频谱。利用Matlab我们可以灵活方便地分析和处理声音文件。本文介绍了用Matlab处理声音文件的基本流程,并绘制了音频信号的相关波形和频谱。关键词:Matlab音量标准化声道分离数字滤波数据转换引言:MATLAB是美国MathWorks公司推出的一种面向工程和科学计算的交互式计算软件。它以矩阵运算为基础,把计算、可视化、程序设计融合在一个简单易用的交互式工作环境中,是一款数

2、据分析和处理功能都非常强大的工程实用软件。本文主要介绍Matlab在处理简单声音文件方面的使用。正文:1.设计要求:(1)了解语音信号的特点;(2)掌握数字滤波器的参数选择及设计方法;(3)掌握数字滤波器的应用方法及应用效果;(4)提高Matlab下的程序设计能力及综合应用能力。2.系统的组成及工作原理分析和处理声音文件,首先要对声音信号进行采集,MATLAB的数据采集工具箱提供了一整套命令和函数,通过调用这些函数和命令,可直接控制声卡进行数据采集。Windows自带的录音机程序也可驱动声卡来采集语音信号,并能保存为WAV格式文件,供MATLAB相关函数直接读取、写入或播

3、放。本文以WAV格式语音信号作为分析处理的输入数据,用MATLAB处理声音文件的基本流程是:先将WAV格式语音信号经wavread函数转换成MATLAB列数组变量;再用MATLAB强大的运算能力进行数据分析和处理,如时域分析、频域分析、数字滤波、信号合成、信号变换、识别和增强等等;处理后的数据如是音频数据,则可用wavwrite转换成WAV格式文件或用sound、wavplay等函数直接回放。3.实验内容,调试及测试结果(1)音量标准化在实际录制语音信号的过程中常有音轻问题,因此在录制声音过程中需要对声音电平进行量化处理,使音量实现标准化。利用Matlab很容易实现音量标

4、准化,即最大电平对应最高量化比特。基本步骤是:1.利用wavread函数将WAV文件转换成列数组变量:2.求出数组变量的极值并对所有元素作归一化处理;3.用wavwrite函数还原成音量标准化的WAV文件。以微软自带的“Windows拨出电话声.wav”语音信号为例,先将其复制另存到文件名为XPexit.wav的Matlab当前目录中,再通过音量标准化后保存为XPquit.wav文件。以下为其实现程序:clear;closeall;clc; [Y,FS,NBITS]=wavread('XPexit.WAV');%将WAV文件转换成变量FS,NBITS,%显示采样频率和量化

5、比特 Ym=max(max(max(Y)),max(abs(min(Y)))),%找出双声道极值 X=Y/Ym;%归一化处理 wavwrite(X,FS,NBITS,'XPquit.wav')%将变量转换成WAV文件测试结果:再在程序后编写sound(X),试听后可以发现经标准化处理后,声音变得稍微大了。(2)声道分离合并与组合立体声或双声道音频信号有左右两个声道,利用MATLAB实现双声道分离、两路声道合并和两个单声道组合成一个双声道等效果,实际上是利用了MATLAB的矩阵抽取、矩阵相加和矩阵重组运算。以(1)中生成的XPquit.wav为例,以下为其实现分离,合并和组

6、合的程序:clear;closeall;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(m

7、in(x12))),%找出极值   y12=x12./x12m;%归一化处理   wavwrite(y12,FS,NBITS,'XPquit12.WAV');%实现两路声道合并   %如果组合位置不对前面补0--声道长度不对后面补0   x3=[x1,x2];%两路单声道变量组合   wavwrite(x3,FS,NBITS,'XPquit3.WAV');%实现两路声道组合测试结果:在以上程序后分别一次编写sound(x1),sound(x2),sound(x12),sound(x3)试听声道分离,合并和组合的效果,发现其声音

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。