MATLAB与音频相关摘记_new要点.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MATLAB?音频相关函数 声音数据输入输出函数: 可以方便地读写au和way文件,并可控制其中的位及频率。 wavread()和wavwriteO。 声音播放: wavplay():播放wav声音文件。当然,也可以把处理后的 wav文件保存后再用其它工具播放。 wavrecordO:可以对处理后的wav文件进行录音。 PS:在日常生活中,我们听到的声音一般都属于复音,其声音信号由不同的振幅与频率的波合成而得到 MATLAB?处理音频信号的流程 分析和处理音频信号 首先要对声音信号进行采集?MATLAB?的数据采集工具箱提供了一整套命令和函数,通过调用这些函数和命令,可直接控制声卡进行数据采集[1] Windows?自带的录音机程序也可驱动声卡来采集语音信号 并能保存为?WAV?格式文件供?MATLAB?相关函数直接读取 写入或播放 本文以?WAV?格式音频信号作为分析处理的输入数据 用?MATLAB?处理音频信号的基本流程是 先将?WAV?格式音频信号经?wavread?函数转换成?MATLAB?列数组变量 再用MATLAB?强大的运算能力进行数据分析和处理 如时域分析 频域分析 数字滤波 信号合成 信号变换 识别和增强等等 处理后的数据如是音频数据 则可用wavwrite?转换成?WAV?格式文件或用?sound wavplay?等函数直接回放 下面分别介绍?MATLAB?在音量标准化 声道分离合并与组合 数字滤波 数 据转换等音频信号处理方面的技术实现 ?音量标准化 录制声音过程中需对声音电平进行量化处理 最理想的量化是最大电平对应最高量化比特 但实际却很难做到 常有音轻问题 利用?MATLAB?很容易实现音量标准化 即最大电平对应最高量化比特 基本步骤是 先用?wavread?函数将?WAV?文件转换成列数组变量 再求出数组变量的极值并对所有元素作归一化处理 最后用?wavwrite?函数还原成音量标准化的?WAV?文件 例?1?现以微软自带的?Windows XP?关机.wav?音频信号为例 先将其复制另存到文件名为?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的矩阵抽取 矩阵相加和矩阵重组运算 例?2?现以例?1?生成的?XPquit.wav?为例 实现分离 合并和组合处理的程序如下 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?工具 设计一个数字滤波器[2]?再用?Filter?或?Filter2?函数即可实现滤波处理 调用的?Filter?函数格式是?Y = filte (B,A,X)?其中?B?和?A?是滤波器传输函数的分子和分母系数?X?是输入变量?Y是实现滤波后的输出变量 如果处理立体声音频

文档评论(0)

w5544434 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档