scilab 读取处理 wav 文件

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

Scilab

Scilab 中处理音频文件的函数很多。其中最基本的是wavread和wavwrite

y=wavread(wavfile)

将wav  文件中的波形数据读入  中,波形的幅度范围在 [-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)
将  中的数据写入  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 之间了。

另一个类似作用的函数如下:

savewave(filename,x [, rate , nbits]);



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值