/ 音波シミュレーター 戻る
Web Audio API · Physics

🔊 音波シミュレーター

粒子振動のアニメーションと実際の音を同時体験。周波数・波形・うなりをリアルタイムで操作しながら音響CAEの基礎を直感的に理解する。

パラメータ設定
このブラウザはWeb Audio APIに対応していません。視覚的なシミュレーションのみ利用できます。
プリセット
2音モード(うなり)
計算結果
440
周波数 (Hz)
0.779
波長 λ (m)
2.27
周期 T (ms)
--
音圧レベル (dB)
粒子振動アニメーション(圧力波の横方向可視化)
粒子
オシロスコープ(波形ビュー)
スコープ
理論・主要公式

理論メモ

波の基本式: 音速 $v = 343\,\text{m/s}$(20°C空気中)、波長 $\lambda$、周波数 $f$ の関係:

$$v = f \lambda \quad \Longrightarrow \quad \lambda = \frac{343}{f}$$

うなり(ビート): 周波数 $f_1$ と $f_2$ がわずかに異なるとき、合成波の振幅が $f_\text{beat}= |f_1 - f_2|$ の周期で変化する現象。楽器のチューニングに利用される。

$$y(t) = A\cos(2\pi f_1 t) + A\cos(2\pi f_2 t) = 2A\cos\!\left(2\pi\frac{f_1-f_2}{2}t\right)\cos\!\left(2\pi\frac{f_1+f_2}{2}t\right)$$

音圧レベル(dB): $L = 20\log_{10}(A/A_0)$。$A_0 = 2\times10^{-5}\,\text{Pa}$(聴覚閾値)。

CAEとの接続: 音響有限要素法(音響FEM)や境界要素法(BEM)では、ここで扱う波動方程式 $\nabla^2 p - \frac{1}{c^2}\frac{\partial^2 p}{\partial t^2}= 0$ を空間離散化して解く。自動車のNVH解析・建築音響・騒音予測に広く用いられる。

音波シミュレーターとは

🙋
このシミュレーターで「波形」を変えると、音色が変わるのはなぜですか?正弦波と矩形波って何が違うんですか?
🎓
大まかに言うと、波形の形が音の「味付け」を決めるんだ。正弦波は基本の周波数だけの、いわば「純水」みたいな純音。一方、矩形波や三角波には、基本周波数の整数倍の音(倍音)が含まれている。例えば、上のスライダーで周波数を440Hzに固定して、波形だけを正弦波→矩形波に変えてみて。同じ高さなのに、音色が明らかに違うでしょ?これが倍音の効果だね。
🙋
え、そうなんですか!じゃあ「うなり」って何ですか?「第2周波数」のスライダーがあるけど、これを使うと何が起こるんですか?
🎓
うなりは、周波数がごくわずかに違う2つの音が重なった時に、音の大きさが「ワン、ワン」と周期的に変化する現象だよ。実務では楽器のチューニングに使われることが多いね。シミュレーターで試してみよう。まず、周波数を440Hz、第2周波数を443Hzに設定して再生してみて。聞こえるかな?音量が定期的に大きくなったり小さくなったりする「うなり」が。このうなりの回数は、ちょうど2つの周波数の差、3Hzになるんだ。
🙋
アニメーションで粒子が振動してるけど、これが「音波」の正体なんですか?振幅を大きくすると、どうして音が大きくなるんですか?
🎓
その通り!画面の粒子の動きは、空気の分子が音によって押されたり引かれたりする様子を模式化したものだ。振幅というのは、その分子の振動の「幅」のこと。振幅スライダーを大きくすると、分子の動く幅が大きくなるから、より強い圧力変化が耳に届く。つまり、音量が大きくなるんだ。逆に振幅をゼロに近づけると、分子はほとんど動かなくなり、音は聞こえなくなる。実際のCAE音響解析でも、この圧力変化の大きさを計算して、騒音レベルを評価するんだよ。

物理モデルと主要な数式

音の基本は空気の密度変化(疎密波)です。最も単純な正弦波の変位は、以下の式で表されます。

$$y(t) = A \sin(2 \pi f t)$$

$y(t)$: 空気粒子の変位 [m], $A$: 振幅(音量に関連)[m], $f$: 周波数 [Hz], $t$: 時間 [s]

周波数がわずかに異なる2つの音($f_1$, $f_2$)が重なると、「うなり」が生じます。合成波は以下のように表せ、振幅部分がゆっくりと変化します。

$$y(t) = A\cos(2\pi f_1 t) + A\cos(2\pi f_2 t) = 2A\cos\!\left(2\pi\frac{f_1-f_2}{2}t\right)\cos\!\left(2\pi\frac{f_1+f_2}{2}t\right)$$

右辺の $\cos(2\pi\frac{f_1+f_2}{2}t)$ が平均的な高さの音を、$2A\cos(2\pi\frac{f_1-f_2}{2}t)$ がその音の振幅(音量)の時間変化を表します。この振幅変化の周波数 $f_{beat} = |f_1 - f_2|$ が、聞こえる「うなり」の周波数です。

よくある質問

お使いのデバイスのスピーカーが対応していない周波数帯域(例:20Hz以下や20kHz以上)を設定している可能性があります。また、ブラウザの自動再生ポリシーにより音声がミュートになっている場合があります。ページ上のミュートボタンや音量スライダーを確認し、20Hz~20kHzの範囲でお試しください。
波形選択で「うなりモード」を選ぶか、2つの周波数スライダー(例:440Hzと444Hz)を近い値に設定してください。周波数差が小さいほどゆっくりとしたうなりが聞こえ、アニメーションでも振幅の周期的な変動が確認できます。差が大きすぎると別々の音として認識されます。
リアルタイム処理のため、ブラウザやデバイスの性能によりわずかな遅延(レイテンシ)が生じることがあります。特に低周波数では粒子の動きが遅いため同期しているように見えますが、高周波数では視覚と聴覚のズレを感じる場合があります。お使いの環境が推奨スペックを満たしているかご確認ください。
本ツールは音響CAEの基礎概念(波形合成、うなり、周波数と振幅の関係)を直感的に理解するための教育用です。実際の設計には、より精密な物理モデルや3次元音場解析が可能な専用CAEソフトウェアが必要です。ただし、パラメータの変化が音にどう影響するかの感覚を掴むには非常に有用です。

実世界での応用

楽器のチューニング:ギターやピアノの調律では、基準音と楽器の音のうなりを聞いて周波数を微調整します。うなりが消えたとき、2つの音は完全に同じ周波数になったことを意味します。

自動車のNVH(騒音・振動・ハーシュネス)解析:CAEソフトウェアを用いて、エンジン音や風切り音などの周波数成分を解析し、不快なうなり音や騒音の原因を特定・低減する設計に役立てます。

建築音響設計:コンサートホールやスタジオの設計では、音波の反射や干渉をシミュレーションし、残響時間の調整や「音の濁り」を防ぎます。異なる周波数がどのように空間で振る舞うかを理解することが重要です。

医療診断(超音波検査):超音波は人間の耳に聞こえない高周波数の音波です。体内で反射して戻ってくる超音波の周波数や振幅の変化を分析することで、臓器の形状や血流の状態を画像化します。

よくある誤解と注意点

まず、このシミュレーターで扱っているのは「自由空間での単純な音波」だということを押さえておこう。実務のCAE音響解析は、これよりもずっと複雑だ。例えば、「振幅を2倍にしたら、音量(音圧レベル)も2倍になる」と思っていないかい?実は違うんだ。音圧レベルはデシベル(dB)という対数スケールで表され、振幅が2倍になっても、音圧レベルは約6dB増えるだけなんだ(正確には $20 \log_{10}(2) \approx 6.02 \text{dB}$)。「2倍うるさく」はならないから注意してね。

次に、波形の選択について。矩形波やのこぎり波は、理論上は無限の倍音を含むけど、このシミュレーターや実際のスピーカーでは再現できる周波数に限界があるんだ。例えば、基本周波数が1kHzの矩形波を生成しようとすると、15kHzや20kHzといった高い倍音が必要になる。でも、スピーカーの性能や人間の可聴域(約20Hz〜20kHz)を超えると、その倍音は再現も聞き取れもしない。だから、シミュレーター上の「きれいな矩形波」と、実際の機器から出る音は少し違うことがある。これは「帯域制限」と呼ばれる、実務でも常に頭に入れておくべき重要な概念だよ。

最後に、うなりの実験で陥りがちなのが、周波数の差を大きくしすぎること。例えば、440Hzと500Hz(差60Hz)を重ねると、もはやうなりというよりは、別々の2音として聞こえるか、不協和音になる。うなりが明確に体感できるのは、差が大体15Hz以下くらいまでだ。楽器のチューニングで使われるうなりは、1〜3Hz程度のごくわずかな差の時だということを覚えておこう。

使い方ガイド

  1. freqSliderで基本周波数を20Hz~20000Hzの範囲で設定し、リアルタイム波形を確認
  2. ampSliderで振幅を0~100Paの音圧で調整し、粒子振動アニメーションの激しさを変更
  3. twoToneToggleをONにしてfreqSlider2で第2周波数を指定すると、ビート現象が観察できます
  4. 計算される波長λ、周期T、音圧レベル(dB)をモニタして音響特性を把握

具体的な計算例

空気中(音速340m/s)で周波数1000Hzを設定した場合、波長λ=0.34m、周期T=1msが自動計算されます。振幅80Paでは音圧レベル約134dB(産業機械レベル)に相当。さらに1000Hzと1050Hzの2周波数を同時入力すると、ビート周波数50Hzの変調包絡が視認でき、オーディオプロダクションやノイズ制御の実務で重要な干渉現象を直感的に学習できます。

実務での注意点