最近工作需要,要对wav文件中存储的声音信息进行分析处理。所以花了些时间收集了各种数学软件中处理wav 文件的方法。
### Scilab
Scilab 中处理音频文件的函数很多。其中最基本的是wavread和wavwrite。
~~~
y=wavread(wavfile)
~~~
将wav 文件中的波形数据读入 y 中,波形的幅度范围在[-1, 1]。与Matlab 不同,scilab 将波形数据存成行向量而不是列向量。
~~~
[y,Fs,bits]=wavread(wavfile)
~~~
Fs 存的是采样率,单位Hz,bits 是数据的位数。
~~~
wavread(wavfile,n)
~~~
读取波形文件的前n个数据点。
~~~
wavread(wavfile,[n1,n2])
~~~
只读取n1 到 n2 之间的数据。
~~~
siz = wavread(wavfile,'size')
~~~
读取wav文件有多少数据点,siz 为一个1行两列的向量。siz = [channels samples] 这里与Matlab 返回的结果也正好是相反的。
~~~
wavread(wavfile,'info')
~~~
读取wav 文件的信息,返回一个行向量 [数据类型,通道数, 采样率, 每秒需要多少个字节, byte alignment of a basic sample block, 数据的位数, 每个数据点占的字节数, 每通道的字节数].
~~~
wavwrite(y, wavfile)
~~~
将 y 中的数据写入 wavfile 中,采样率默认为 22500 Hz, 16 bits。
~~~
wavwrite(y, Fs, wavfile)
~~~
Fs 用来设定采样率。
~~~
wavwrite(y, Fs, nbits, wavfile)
~~~
nbits指定数据的位数,可以为 8、16、24和32。当 nbits!=32时,wav文件按照PCM 码来存储。当nbits=32时,数据按照浮点数格式存储。这时也就不要求数据范围在-1到1 之间了。
另一个类似作用的函数如下:
~~~
savewave(filename,x [, rate , nbits]);
~~~
- 前言
- gnuplot 中的数据平滑
- 利用 Maxima 求解常微分方程
- Maxima 的绘图功能 1
- Maxima 的绘图功能 2
- Maxima 的绘图功能 3
- Maxima 矩阵及矢量运算 1
- Maxima 矩阵及矢量运算 3
- Maxima 矩阵及矢量运算 4
- maxima 学习笔记(coeff 函数的应用)
- maxima 代数表达式变换
- maxima 学习笔记(基本微积分)
- maxima 代数方程求解
- Maxima 中的复数运算
- Maxima 的三角函数化简功能
- Maxima 的基本微积分操作
- 利用 gnuplot 绘制时间序列图
- gnuplot 入门教程 1
- gnuplot 入门教程 2
- gnuplot 入门教程 3
- gnuplot 入门教程 4
- gnuplot 读取逗号分隔的数据文件
- scilab 读取处理 wav 文件
- scilab 读取处理 wav 文件 (2)
- Scilab 处理声音数据(补充)
- 利用 SCILAB 设计 FIR 滤波器(窗函数法)
- 利用 SCILAB 设计 FIR 滤波器(Minimax法)
- 利用 SCILAB 设计 iir 滤波器设计(模拟滤波器双线性变换法)
- Scilab 的绘图函数(1)
- Scilab 的绘图函数(2)
- Scilab 的绘图函数(3)
- Scilab 的绘图函数(4)