最近工作需要,要對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)