### mapsound?
Scilab?中有一個函數可以繪制聲音頻譜隨時間變化的圖像。采用的算法是分塊進行FFT求得每一時間段內的頻譜。唯一一點缺陷是窗函數無法選擇,只能是矩形窗。算是個簡化版本的短時傅里葉變換。
?
mapsound?(w,dt,fmin,fmax,simpl,rate)
其中?w?是聲音數據
Dt?是時窗的寬度,單位是秒?
Fmin?和Fmax?限定了繪制的圖像的y軸的最小和最大值,單位?Hz。
Simpl?表示在計算時將多少個相鄰數據點合成一個數據點計算。
Rate?是信號的采樣率
?
以上各參數的默認值如下:
Dt:?0.1
Fmin:?100
Fmax:?1500
Simpl?:1
Rate:?22050
~~~
// At first we create 0.5 seconds of sound parameters.
t=soundsec(0.5);
// Then we generate the sound.
s=sin(440*t)+sin(220*t)/2+sin(880*t)/2;
[nr,nc]=size(t);
s(nc/2:nc)=sin(330*t(nc/2:nc));
mapsound(s,0.1,100,500,1);
~~~

原始聲音數據的波形如下:

上面例子中用到了另一個函數soundsec,這個函數的作用很簡單,生成一個?n?秒聲音數據所需的時間向量。
?
t=soundsec(n?[,rate])
?
N?是要生成的聲音數據的時長
Rate?采樣率
- 前言
- 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)