縦波と横波 JavaScript
縦波(たてなみ)と横波(よこなみ)の関係について。振動は空気や物体などの媒質(medium)を伝わっていくのだが、振動は縦波(longitudinal waves)と横波(transverse waves)に分類できる。人が音として認識しているのは縦波となる。横波は、ねじっても戻る(せん断応力のある)ような固体などは伝わることができるが、気体や液体ではほとんど無視できるもの。一般に音として扱うのは縦波となる。また縦波は疎密波とも呼ばれる。
空気中を伝わる音(縦波)とは、実際には空気の伸び縮みで、細かく見ていくと空気の粒子が振動方向に対して細かく往復運動して、次々に伝えて波となる現象。ひとつの粒子が遠くまで移動しているわけではない。この縦波を人間が工学的に音を扱う場合、縦波のままだと不便なため、通常は横波に変換して扱っている。
下図(canvas & JavaScript)はサイン波を縦波と横波で表現している。スライドバーで wave length (周期)と gain (音量)をいじることができる。(HTML5に対応していない古いブラウザでは表示されないか、妙な表示がされているかもしれない。)
グリーン:サイン波を離散(ある等間隔時間の音量だけを見ている)信号にしたもの。
レッド:信号を元に縦波に変換したもの。密度の高いところ低いところがあるのがわかる。これはそのまま音圧(sound pressure)となっている。この音圧の繰り返しが音として認識される。下の表示に限っては、グリーンの棒の長さを 1/10 に縮小して、それを時間軸に置き換えている。信号が 0 のところは移動量 0 であり、信号がプラスであれば、プラス時間側へ移動。マイナスであれば、マイナス時間側に移動している。
ブルー:音圧をサイン波で表現したもの。密度の高いところがプラスの最大値で、密度の低いところがマイナスの最低値。信号のサイン波とは 1/2π ずれている。
縦波と横波の関係
縦波の密度の高いところは、信号の 0 のところであり、縦波の密度の低いところも信号の 0 のところとなる。スライドバーの gain を 0 にすると、粒子が均等に並んだ音がない状態となる。注意としては gain を上げすぎると限界値を超えてあり得ない状態になります。
ついでに音の専門書には、書かれているサイン波が信号の場合と、縦波の音圧の場合があるので、注意が必要。