音をグラフにして見る

sin関数で音を作る。

x=sin(2*%pi*1000*t)*0.1;
play(x);

この波形をグラフ表示する。


graph1(x);

するとこんなグラフが表示される。

この時、縦軸は数値、横軸は「秒」をあらわしている。

グラフの読み方

[横軸]

0.000から0.010の間に10個の波がある。つまり0.01秒の間10個の波がつまっている。

1秒間には1000個の波があり、1個の波は 1/1000秒の長さである。

[縦軸]

-0.1~0.1の振幅である。-1~1がコンピュータで再生できる最大振幅なので、-0.1~0.1がちょうどいい音量である。

グラフを何度も表示する場合、以下のようにすれば、音を再生し、前のグラフを消去し、新しいグラフを描画できる。


play(x); clf(); graph1(x);

Hz

この波の数を「周波数」と呼び、Hz(ヘルツ)であらわす。波の長さは周期と呼び、s(秒)であらわす。

1000のところを2000にして同様に音とグラフを確認しよう。


x=sin(2*%pi*2000*t)*0.1;
play(x); clf();graph1(x);

音程が1オクターブ高くなり、グラフは以下のようになる。

次に 0.1 のところを 0.5にしてみよう。


x=sin(2*%pi*2000*t)*0.5;
play(x); clf(); graph1(x);

今度はグラフ上で振幅が 0.5 になり、音が大きくなった。

なお、振幅が-1.0~1.0の範囲を超えると、scilabでは音が大きすぎて正常に処理できない。

まとめ

graph(x)を使って周波数と振幅を調べることができる。

周波数は音程と関係がある。

振幅は音の大きさと関係がある。

振幅の最大は-1.0~1.0以下にする必要がある。