振動する弦のシミュレーションから音波の形状を導き出す

Aug 22 2020

振動する弦(matter.jsで作成)の物理シミュレーションがあります。このことから、このような弦から生じる音波/気圧を時間の経過とともにどのように導き出すことができますか?

各セグメントの垂直(y)位置を個別の時間ステップで単純に合計することを検討しましたが、このアプローチは、上記の最も基本的な振動モード以外の形状では機能しません。たとえば、以下に示すように、文字列が中央に別のノードを展開する場合、ほとんどの場合、y位置は互いに打ち消し合います。

では、結果として生じる音波の形状を任意の弦の形状から導き出すための良い方法は何でしょうか?

編集:フィリップがゲルトの答えへのコメントで指摘したように、この質問はおそらくもっとうまく表現されている可能性があるので、例を挙げて別の試みをします:

ギターの弦を弾き、超スローモーションカメラで1秒間、サウンドの録音とビデオの録音を行ったとします。

ビデオで見たもの(弦が振動するすべての方法)とオーディオが一致します。

ここで、オーディオの録音が失われたとします。ビデオの助けを借りてのみオーディオを再作成することは可能ですか?

便宜上、超スローモーションカメラは典型的なオーディオサンプリングレートである44kフレームを記録したと言えます。したがって、ビデオフレームごとに、スピーカーに送信できる「気圧」値を生成したいと思います。

(これにより、私が求めていることが少し明確になることを願っています。この質問を改善するための他の提案があれば、大歓迎です!)

回答

Gert Aug 22 2020 at 21:43

数年前に公開したウェビナーから:

A $1D$ 弦の波はによって記述されます $1D$ 波動方程式:

$$y_{tt}=c^2 y_{xx}$$

変数分離を使用し、境界条件を適用すると(上記の導出を参照)、次のようになります。

$$y(x,t)=\displaystyle\sum_{n=1}^{\infty}A_n\cos\Big(\frac{n\pi ct}{L}\Big)\sin\Big(\frac{n\pi x}{L}\Big)\tag{1}$$

にとって $n=1,2,3,...$

と:

$$\frac{T}{\rho}=c^2$$

$T$ 弦の張力です、 $\rho$ 線形ストリング密度。

$t$ 時間と $L$ 長さ ($x$)文字列の。 $y(x,t)$ は垂直変位です。

係数 $A_n$、別名振幅は、初期条件とフーリエ展開から計算されます。

$$y(x,0)=f(x)$$

$$y(x,0)=f(x)=\displaystyle\sum_{n=1}^{\infty}A_n\sin\Big(\frac{n\pi x}{L}\Big)$$

$$\boxed{A_n=\frac{2}{L}\int_0^{L}f(x)\sin\Big(\frac{n\pi x}{L}\Big)dx}\tag{2}$$

を挿入する $(2)$$(1)$ の形を与える $1D$ 波。