こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

現在matlabで音の伝搬の様子をアニメーションというか、球面波(平面

現在matlabで音の伝搬の様子をアニメーションというか、球面波(平面波)を可視化したいのですが、調べても方法がよくわかりません。
自由空間におけるグリーン関数(点音源)の式を利用して任意の距離の点での音圧はプログラムで求め、それを逆FFTして時間領域に変換はしました。(時間領域にしないとおかしいですよね?)

ですので、今のところ任意の点での音圧の時間変化(インパルス応答)はでています。

投稿日時 - 2010-07-18 15:16:28

QNo.6046895

すぐに回答ほしいです

質問者が選んだベストアンサー

音波がらみの式については詳しくないのですが…
平面波を可視化するとはどのようなことをイメージされているのでしょうか?
例えば
X0=(0:5e-3:10)';
Y0=(0:1)';
phai=(0:1e-2:6)'*pi;
[X Y]=meshgrid(X0,Y0);
figure(1);
h_surf=surf(X,Y,zeros(size(X)));
set(gca,'ClimMode','Manual','Clim',[-1 1],'Zlim',[-3 3]);
set(h_surf,'EdgeColor','None');
for k=1:length(phai);
set(h_surf,'Zdata',sin(X*pi-phai(k)));%…(※)
drawnow;
end;
みたいに書くと平面波が進んでいく様子が見えますが、このようなものを作りたいのでしょうか?
もしそうだとするならば、アニメーションを作る中で重要になるのは(※)の行です。
(その前は全部下準備です)
(※)の行で波の上下方向の座標を変えることで波が進んでいるように見せています。
また、そのすぐ下の行のdrawnowで即座に波を描かせるようにしています。
このようなアニメーションを作る時には、
>任意の点での音圧の時間変化(インパルス応答)
よりは「ある時間における全ての点での音圧の変化を記述する行列」があった方がうれしいと思います。
(まあ行列の作り方をちょっと変えるだけですが)

的外れな回答でしたらすみません。その旨補足欄に書いていただければもう少し的を射た回答ができるかも知れません。

長文失礼しました。参考になれば幸いです。

投稿日時 - 2010-07-21 11:54:52

お礼

参考にさせていただきます。ありがとうございました。

投稿日時 - 2010-08-02 18:22:01

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問