[Scilab] ディジタル信号処理(備忘録) part1
フリーの数値計算ソフトであるScilabを利用した、信号処理の基本操作の個人メモです。
Scilabのインストールや簡単な演算と演算子の説明に関しては友人のTBVector氏の丁寧な説明ページがあるので紹介しておく。
以下に続く
- [Scilab] ディジタル信号処理(備忘録) part1 (この記事)
- [Scilab] ディジタル信号処理(備忘録) part2
Scilabのインストールや簡単な演算と演算子の説明に関しては友人のTBVector氏の丁寧な説明ページがあるので紹介しておく。
以下に続く
音声ファイルの読み込み
[data, sf]="wavread("filename.wav");
Scilab(ショートカット)の起動ディレクトリにファイルが無ければ絶対パス記述の必要あり。
Scilabではlsやワイルドカード'*'の使用も可能。以下は例。
//WAVファイルを表示する
-->ls *.wav
ans =
!smplMusic1m.wav !
//WAVファイルを読み込む
-->[wav, sf] = wavread("smplMusic1m.wav");
//サンプリング周波数
-->sf
sf =
44100.
音声ファイルの書き込み
wavwrite(data, sf, "filename.wav");
データ(行列)の長さ
-->length(wav)
ans =
156160.
データ(行列)の次元数(行,列)
-->size(wav)
ans =
1. 156160.
11111番目の要素を見たい(先ほど読み込んだwav)
-->wav(1,11111)
ans =
- 0.1850281
グラフを表示
-->plot(wav);
フーリエ変換
-->fft(wav);
逆フーリエ変換
-->ifft(wav);
振幅特性
-->abs(fft(wav));
位相特性(arctanでの計算)
-->x = fft(wav);MATLABでは位相角を出すangle()なんつー関数があったけど、Scilabではなかったような
-->atan(imag(x)./real(x));
インパルス列、ステップ(↓例えばこんなのを作りたい)
--> x = [zeros(1,3),ones(1,4),zeros(1,3)];. . . ↑ ↑ ↑ ↑ . . .
0 1 2 3 4 5 6 7 8 9
畳込み
--> convol(data1,data2);
とりあえずはこのぐらいで
トラックバック(1)
このブログ記事を参照しているブログ一覧: [Scilab] ディジタル信号処理(備忘録) part1
このブログ記事に対するトラックバックURL: http://delta50.net/mt/mt-tb.cgi/124
» ディジタル・サウンド処理入門―音のプログラミングとMATLAB(Octave・Scilab)における実際 (ディジタル信号処理シリーズ)(もぼなもな書房)~のトラックバック
ディジタル・サウンド処理入門―音のプログラミングとMATLAB(Octave・Scilab)における実際 (ディジタル信号... 続きを読む


コメントする