matlab 读取WAV文件
2016-07-15 21:35
761 查看
最近工作需要,要对wav文件中存储的声音信息进行分析处理。所以花了些时间收集了各种数学软件中处理wav 文件的方法。
图 1 当前路径窗口
双击后会自动弹出数据导入向导。data 中是波形文件(每一列对应一个声道),fs 存的是采样率。这两个变量名都可以按照自己的需要来修改。
图 2 数据导入向导
相应的函数是 wavread()。 有下面的几种调用格式。
[plain] view
plain copy
y = wavread('filename')
这是最简单的形式,将wav 文件中的波形数据读入 y 中,波形的幅度范围在[-1, 1]。
[plain] view
plain copy
[y,Fs,bits] = wavread('filename')
Fs 存的是采样率,单位Hz,bits 是数据的位数。
[plain] view
plain copy
[...] = wavread('filename',N)
只读取前 N 个数据点。
[plain] view
plain copy
[...] = wavread('filename',[N1 N2])
只读取N1 到 N2 之间的数据。
[plain] view
plain copy
siz = wavread('filename','size')
读取wav文件有多少数据点,siz 为一个1行两列的向量。siz = [samples channels]
wavfinfo() 用来获取wav文件的信息。
[plain] view
plain copy
[m d] = wavfinfo(filename)
当 filename 是wav文件时 m 返回字符串'Sound (WAV) file',否则返回空字符串。
d 返回包含wav 新的字符串,比如像这里给出的结果:’Sound (WAV) file containing: 41532 samples in 1 channel(s)’,如果filename 不是wav文件,则返回字符串'Not a WAVE file'。
wavwrite 函数可以生成一个 wav 文件,有三种基本的调用格式。
[plain] view
plain copy
wavwrite(y,'filename')
将 y 中的数据写入wav文件,其中y 的每一列对应一个声道。要求 y 中的数据在 [-1, 1]。超出这个范围的都被截断。采样率默认为 8000Hz。16 位格式。
[plain] view
plain copy
wavwrite(y,Fs,'filename')
Fs 用来设定采样率。
[plain] view
plain copy
wavwrite(y,Fs,N,'filename')
N 指定数据的位数,可以为 8、16、24和32。当 N !=32时,wav文件按照PCM 码来存储。当N=32时,数据按照浮点数格式存储。这时也就不要求数据范围在-1到1 之间了。
Matlab
Matlab 是最方便的。甚至于不用写任何代码就能读取 wav 文件(我用的是matlab 7.1)。在当前路径窗口中双击wav 文件就自动将文件内容读入了。图 1 当前路径窗口
双击后会自动弹出数据导入向导。data 中是波形文件(每一列对应一个声道),fs 存的是采样率。这两个变量名都可以按照自己的需要来修改。
图 2 数据导入向导
相应的函数是 wavread()。 有下面的几种调用格式。
[plain] view
plain copy
y = wavread('filename')
这是最简单的形式,将wav 文件中的波形数据读入 y 中,波形的幅度范围在[-1, 1]。
[plain] view
plain copy
[y,Fs,bits] = wavread('filename')
Fs 存的是采样率,单位Hz,bits 是数据的位数。
[plain] view
plain copy
[...] = wavread('filename',N)
只读取前 N 个数据点。
[plain] view
plain copy
[...] = wavread('filename',[N1 N2])
只读取N1 到 N2 之间的数据。
[plain] view
plain copy
siz = wavread('filename','size')
读取wav文件有多少数据点,siz 为一个1行两列的向量。siz = [samples channels]
wavfinfo() 用来获取wav文件的信息。
[plain] view
plain copy
[m d] = wavfinfo(filename)
当 filename 是wav文件时 m 返回字符串'Sound (WAV) file',否则返回空字符串。
d 返回包含wav 新的字符串,比如像这里给出的结果:’Sound (WAV) file containing: 41532 samples in 1 channel(s)’,如果filename 不是wav文件,则返回字符串'Not a WAVE file'。
wavwrite 函数可以生成一个 wav 文件,有三种基本的调用格式。
[plain] view
plain copy
wavwrite(y,'filename')
将 y 中的数据写入wav文件,其中y 的每一列对应一个声道。要求 y 中的数据在 [-1, 1]。超出这个范围的都被截断。采样率默认为 8000Hz。16 位格式。
[plain] view
plain copy
wavwrite(y,Fs,'filename')
Fs 用来设定采样率。
[plain] view
plain copy
wavwrite(y,Fs,N,'filename')
N 指定数据的位数,可以为 8、16、24和32。当 N !=32时,wav文件按照PCM 码来存储。当N=32时,数据按照浮点数格式存储。这时也就不要求数据范围在-1到1 之间了。
相关文章推荐
- 解析在main函数之前调用函数以及对设计的作用详解
- 详解Matlab中 sort 函数用法
- java和matlab画多边形闭合折线图示例讲解
- C#调用Matlab生成的dll方法的详细说明
- 简述Matlab中size()函数的用法
- 从java中调用matlab详细介绍
- 稀疏自动编码器 (Sparse Autoencoder)
- 详解Matlab中 sort 函数用法
- 简述Matlab中size()函数的用法
- VC++与Matlab混合编程的快速实现
- Matlab 矩阵运算
- matlab与opencv部分函数的对照
- matlab神经网络工具箱创建神经网络
- Matlab
- MATLAB 入门教程
- matlab函数_连通区域
- MATLAB中函数模式和命令模式的区别
- MATLAB 添加自定义的模块到simulink库浏览器
- Export Figures for LaTeX Writing