打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
matlab 读取处理 wav 文件

最近工作需要,要对wav文件中存储的声音信息进行分析处理。所以花了些时间收集了各种数学软件中处理wav 文件的方法。


Matlab



Matlab 是最方便的。甚至于不用写任何代码就能读取 wav 文件(我用的是matlab 7.1)。在当前路径窗口中双击wav 文件就自动将文件内容读入了。






图 1 当前路径窗口



双击后会自动弹出数据导入向导。data 中是波形文件(每一列对应一个声道),fs 存的是采样率。这两个变量名都可以按照自己的需要来修改。




图 2 数据导入向导



相应的函数是 wavread()。 有下面的几种调用格式。



  1. y = wavread('filename')  


这是最简单的形式,将wav 文件中的波形数据读入 中,波形的幅度范围在[-1, 1]



  1. [y,Fs,bits] = wavread('filename')  
Fs 存的是采样率,单位Hzbits 是数据的位数。



  1. [...] = wavread('filename',N)  
只读取前 N 个数据点。



  1. [...] = wavread('filename',[N1 N2])  
只读取N1 到 N2 之间的数据。



  1. siz = wavread('filename','size')  
读取wav文件有多少数据点,siz 为一个1行两列的向量。siz = [samples channels]



wavfinfo() 用来获取wav文件的信息。



  1. [m d] = wavfinfo(filename)  
当 filename wav文件时 返回字符串'Sound (WAV) file',否则返回空字符串。


返回包含wav 新的字符串,比如像这里给出的结果:’Sound (WAV) file containing: 41532 samples in 1 channel(s)’,如果filename 不是wav文件,则返回字符串'Not a WAVE file'。



wavwrite 函数可以生成一个 wav 文件,有三种基本的调用格式。



  1. wavwrite(y,'filename')  
将 y 中的数据写入wav文件,其中的每一列对应一个声道。要求 中的数据在 [-1, 1]。超出这个范围的都被截断。采样率默认为 8000Hz16 位格式。



  1. wavwrite(y,Fs,'filename')  
Fs 用来设定采样率。



  1. wavwrite(y,Fs,N,'filename')  
指定数据的位数,可以为 8162432。当 =32时,wav文件按照PCM 码来存储。当N=32时,数据按照浮点数格式存储。这时也就不要求数据范围在-1之间了。





本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
MATLAB中与语音有关的命令及用法
基于MATLAB的音频信号处理技术实现
Matlab信号上叠加噪声和信噪比的计算
声音信号的频谱分析(一)
初窥Linux 之 我最常用的20条命令
MATLAB读写Excel
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服