运动声源的到达结构仿真
概要运动声源的到达结构仿真中由于声传播速度远高于声源运动速度而且声源辐射出声波后介质的振子传递声波几乎不受声源影响因此可以将根据每个时间帧的声源位置使用bellhop计算到达结构数字离散采样近似运动声源的到达结构。整体架构流程根据声源运动模型得到声源在时间点t0,t1,t2...t0,t1,t2...上的位置根据声场互易理论将接收器放在射线模型的Source位置而声源放在Receiver上即在.env的Rz和Rr写声源位置序列使用bellhop计算到达结构画图.env环境文件写法下面展示一些代码片。Munk profile ! TITLE 100.0 ! FREQ (Hz) 1 ! NMEDIA NVW ! SSPOPT (Analytic or C-linear interpolation) 0 0.0 5000.0 ! DEPTH of bottom (m) 0.0 1548.52 / 200.0 1530.29 / 250.0 1526.69 / 400.0 1517.78 / 600.0 1509.49 / 800.0 1504.30 / 1000.0 1501.38 / 1200.0 1500.14 / 1400.0 1500.12 / 1600.0 1501.02 / 1800.0 1502.57 / 2000.0 1504.62 / 2200.0 1507.02 / 2400.0 1509.69 / 2600.0 1512.55 / 2800.0 1515.56 / 3000.0 1518.67 / 3200.0 1521.85 / 3400.0 1525.10 / 3600.0 1528.38 / 3800.0 1531.70 / 4000.0 1535.04 / 4200.0 1538.39 / 4400.0 1541.76 / 4600.0 1545.14 / 4800.0 1548.52 / 5000.0 1551.91 / A 0.0 5000.0 1600.00 0.0 1.0 / 1 ! NSD 1000.0 / ! SD(1:NSD) (m) 101 ! NRD 1000.0 1000.0 / ! RD(1:NRD) (m) 101 ! NR 10 20 / ! R(1:NR ) (km) AB I ! R/C/I/S 注意这里第五个位置使用了I即Irregular的网格布局可以布放任意位置的Receivers列表 0 ! NBeams -85.0 85.0 / ! ALPHA1,2 (degrees) 0.0 5500.0 101.0 ! STEP (m), ZBOX (m), RBOX (km)代码项目链接 运动声源到达结构仿真clc; filename MunkB_Arr_f; bellhop(filename); ARRFIL [filename .arr]; % [ Arr, Pos ] read_arrivals_bin( ARRFIL ); [ Arr, Pos ] read_arrivals_asc( ARRFIL ); % plotarr figure; hold(on); for isd 1: size(Arr,1) Arr1 Arr( isd, 1 ); Narr Arr1.Narr; indexTNC0BNC0 Arr1.NumTopBnc0 Arr1.NumBotBnc0; % 直达 indexTNC1BNC0 Arr1.NumTopBnc~0 Arr1.NumBotBnc0; % 海面反射 indexTNC0BNC1 Arr1.NumTopBnc0 Arr1.NumBotBnc~0; % 海底反射 indexTNC1BNC1 Arr1.NumTopBnc~0 Arr1.NumBotBnc~0; % 海面、海底反射 stem(real( Arr1.delay( indexTNC1BNC1 ) ), abs( Arr1.A( indexTNC1BNC1 ) ) , k ) stem(real( Arr1.delay( indexTNC0BNC1 ) ), abs( Arr1.A( indexTNC0BNC1 ) ) , b ) stem(real( Arr1.delay( indexTNC1BNC0 ) ), abs( Arr1.A( indexTNC1BNC0 ) ) , g ) stem(real( Arr1.delay( indexTNC0BNC0 ) ), abs( Arr1.A( indexTNC0BNC0 ) ) , r ) % 以上的时延delay可以再加上声源运动到该点上所需要的时间我这里只是示例所以没加 pause(0.5); end hold(off) xlabel(Time (s) ) ylabel(Amplitude ) % title([ Src_z, num2str( Pos.s.z( 1 ) ), ... % m Rcvr_z, num2str( Pos.r.z( 1 ) ), ... % m Rcvr_r, num2str( Pos.r.r( 1 )/1e3 ), km ] )注意上面画图中时延delay可以再加上声源运动到该点上所需要的时间即根据声源当前的位置得到当前帧对应的仿真时间。举例如果声源速度10m/s当前是循环为第二点且距离第一个点100m则delay需要加上100/1010s100/1010s。小结使用分帧的手段对不同时间点运动声源的到达结构进行仿真并画图可视化运动声源的到达结构随时间的变化。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2514505.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!