A06 GNU Octaveでフィルタ特性を表示

の○太:ねえド○○も~ん、フィルタの特性を表示したいよぉ。なにかいい道具だしてよぉ。

ド○○もん:だめだよの○太くん、ちゃんと勉強して自分で計算しなくちゃ。

の○太:そんなこと無理だよ。なにかこう簡単にできる道具はないの?

ド○○もん:しょうがないなぁ・・・、はい、の○太君 「GNU Octave~!」

助手:疲れるからやめましょうよ。

室長:そうだな、普通に戻すか。

助手:octaveって何ですか。

室長:octaveとはフリーの数値計算用の言語で、MATLABとの互換性もある。まさにド○○もんのひみつ道具なみの威力があるのだ。まずは例によってインストールするぞ。

sudo apt-get install octave-signal

octave-signalはoctaveの信号処理用のライブラリだ。octave本体がインストールされていなければ依存関係によって自動的にoctave本体もインストールされる。端末を開いてoctaveと入力すれば立ち上がる。

助手:‘octave:1>’というのがoctaveのプロンプトですね。

室長:とりあえず何も考えずに以下をコピペしてくれ。

a=[0.5 -0.5 0 0.002];
[h,w]=freqz(a,1,4096,44100);
 semilogx(w,20*log10(abs(h)));

助手:グラフが表示されましたよ!

fig1

室長:これが[0.5 -0.5 0 0.002]のfirフィルタのサンプリング周波数44.1KHzの信号にたいする特性じゃ。縦軸はdB、横軸は周波数の対数表示になってる。このグラフはgnuplotというソフトで描かれていて、このソフトも依存関係によってさっき自動的にインストールされたのじゃ。マウスカーソルをグラフ上に持っていけば座標が表示されるぞ。またマウスの右ボタンで範囲を指定すればその範囲がズームされるのだ。

助手:まさにひみつ道具なみの威力ですね!これを見るとさっき再生されたのが低音がカットされてシャカシャカした音だったのが良く解りますね。

室長:次回はoctaveで関数ファイルを作ってもっと便利にしていくぞ。

2012年12月10日