Bellhop 绘制传播损失

简介: 上文我们讲述了 Bellhop 的使用以及使用 bellhop 绘制了声速剖面、声线轨迹及本证声线,本文我们绘制传播损失。

前言


上文我们讲述了 Bellhop 的使用以及使用 bellhop 绘制了声速剖面、声线轨迹及本证声线,本文我们绘制传播损失。


一、相干传播损失(TL)基本算例


设定运行类型 RunType=“C”,我们就可以计算传播损失了。“C” 代表相干声压计算。对指定的接收器网格计算声压场 p, 20 lg(|p|) 就是传播损失(单位:dB)。我们还可以设定多个声源深度,这种情况下, BELLHOP 对每个深度的声源依次进行计算。现在,频率(此处为 50Hz)是非常重要的参数,因为干涉图案与波长直接相关。 同时,频率还影响衰减。


波束数目 NBeams 通常设置为 0, 以便 BELLHOP 自动选择适当的值。随着频率增加和到接收机的距离增大,波束数目需随之增大。为理解这一点,我们可以想象自由空间中的点源。 当远离声源时, 波束扇面进行扩展。同时,在某给定点处的声场基本上是由相邻波束插值得到。为了插值精确, 就需要相邻波束的波阵面足够接近。


1、环境文件


MunkB_Coh.env

'Munk profile, coherent'  ! TITLE
50.0        ! FREQ (Hz)
1       ! NMEDIA
'SVW'       ! SSPOPT (Analytic or C-linear interpolation)
51  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.8 0.8 /
1     ! NSD
1000.0 /    ! SD(1:NSD) (m)
501     ! NRD
0.0 5000.0 /    ! RD(1:NRD) (m)
1001      ! NR
0.0  100.0 /    ! R(1:NR ) (km)
'CG'        ! 'R/C/I/S'
0     ! NBEAMS
-20.3 20.3 /          ! ALPHA1, 2 (degrees)
50.0  5500.0  101.0 ! STEP (m), ZBOX (m), RBOX (km)


2、绘制相干传播损失


Matlab 命令:

global units
units = 'km'
bellhop MunkB_Coh
figure 
plotshd MunkB_Coh.shd

我这里出现了这样的报错:

STOP Fatal Error: Check the print file for details

解决办法:

①、先运行 runtests.m 文件,会出现如下的一个弹窗,选择更改文件夹

②、再次输入上面的 Matlab 指令

当然,我们也可以采用多面板来绘图:

plotshd( 'MunkB_Coh0.shd', 2, 2, 1 )

这里的“2, 2, 1”是告诉 Matlab 我们要使用 2x2 多面板绘图中的第一个面板。


下面两个 TL 图分别是由声学工具箱中的 KRAKEN 和 SCOOTER 模型计算出的参考解。Matlab 代码如下:

bellhop( 'MunkB_Coh' )
bellhop( 'MunkB_gb' )
kraken(  'MunkK' )
scooter( 'MunkS' )
if ( exist( 'MunkB_Coh.shd', 'file' ) )
    plotshd( 'MunkB_Coh.shd', 2, 2, 1 )
    caxisrev( [ 50 100 ] )
end
if ( exist( 'MunkB_gb.shd', 'file' ) )
    plotshd( 'MunkB_gb.shd', 2, 2, 2 )
    caxisrev( [ 50 100 ] )
end
if ( exist( 'MunkK.shd.mat', 'file' ) )
    plotshd( 'MunkK.shd.mat', 2, 2, 3 )
    caxisrev( [ 50 100 ] )
end
if ( exist( 'MunkS.shd.mat', 'file' ) )
    plotshd( 'MunkS.shd.mat', 2, 2, 4 )
    caxisrev( [ 50 100 ] )
end

从上到下,从左到右分别为采用几何光束、高斯波束、KRAKEN 简正波和 SCOOTER 波数积分等得到的 Munk 声速剖面的传播损失


二、相干、半相干和非相干传播损失(TL)


如前所述,Runtype=“C” 就执行一次所谓的 “相干” TL 计算。简单地将该选项第一个字母改为 “S” 或 “I”,我们就分别执行 “半相干” 和 “非相干” TL 计算。


对于这每一个选项,我们还可利用第二个字母来选择采用(几何或高斯)波束类型。


Matlab 代码如下:

global units
units = 'km';
% tests of incoherent, semi-coherent options
bellhop( 'MunkB_Coh' )
plotshd( 'MunkB_Coh.shd', 3, 2, 1 )
caxisrev( [ 50 100 ] )
bellhop( 'MunkB_Coh_gb' )
plotshd( 'MunkB_Coh_gb.shd', 3, 2, 2 )
caxisrev( [ 50 100 ] )
bellhop( 'MunkB_Semi' )
plotshd( 'MunkB_Semi.shd', 3, 2, 3 )
caxisrev( [ 50 100 ] )
bellhop( 'MunkB_Semi_gb' )
plotshd( 'MunkB_Semi_gb.shd', 3, 2, 4 )
caxisrev( [ 50 100 ] )
bellhop( 'MunkB_Inc' )
plotshd( 'MunkB_Inc.shd', 3, 2, 5 )
caxisrev( [ 50 100 ] )
bellhop( 'MunkB_Inc_gb' )
plotshd( 'MunkB_Inc_gb.shd', 3, 2, 6 )
caxisrev( [ 50 100 ] )

从上到下分别应用“相干”、“半相干”和“非相干”的 TL 计算;左边与右边分别采用几何波束和高斯波束 的 Munk 声速剖面的传播损失。


目录
相关文章
|
8月前
|
存储 机器学习/深度学习 搜索推荐
探索医学影像:如何通过ROI灰度直方图和ROI区域方格图揭示隐秘细节?
探索医学影像:如何通过ROI灰度直方图和ROI区域方格图揭示隐秘细节?
277 1
|
3月前
|
机器学习/深度学习 存储 人工智能
梯度累积的隐藏陷阱:Transformer库中梯度累积机制的缺陷与修正
在本地微调大规模语言模型时,由于GPU显存限制,通常采用梯度累积技术来模拟大批次训练。然而,实际研究表明,梯度累积方法在主流深度学习框架中会导致模型性能显著下降,尤其是在多GPU环境中。本文详细探讨了梯度累积的基本原理、应用场景及存在的问题,并通过实验验证了修正方案的有效性。研究指出,该问题可能在过去多年中一直存在且未被发现,影响了模型的训练效果。
202 4
梯度累积的隐藏陷阱:Transformer库中梯度累积机制的缺陷与修正
|
8月前
|
机器学习/深度学习
YOLOv8改进 | 损失函数篇 | 更加聚焦的边界框损失Focaler-IoU、InnerFocalerIoU(二次创新)
YOLOv8改进 | 损失函数篇 | 更加聚焦的边界框损失Focaler-IoU、InnerFocalerIoU(二次创新)
1008 0
|
8月前
|
算法 计算机视觉
YOLOv3 的非极大值抑制(NMS)算法是如何工作的,它对最终检测结果有何影响?
YOLOv3 的非极大值抑制(NMS)算法是如何工作的,它对最终检测结果有何影响?
|
8月前
|
机器学习/深度学习
YOLOv5改进 | 损失函数篇 | 更加聚焦的边界框损失Focaler-IoU | 二次创新Inner-FocalerIoU
YOLOv5改进 | 损失函数篇 | 更加聚焦的边界框损失Focaler-IoU | 二次创新Inner-FocalerIoU
654 2
|
8月前
|
算法 数据可视化 数据挖掘
R语言平滑算法LOESS局部加权回归、三次样条、变化点检测拟合电视节目《白宫风云》在线收视率
R语言平滑算法LOESS局部加权回归、三次样条、变化点检测拟合电视节目《白宫风云》在线收视率
|
8月前
|
算法 Windows
R语言广义二次跳跃、非线性跳跃扩散过程转移函数密度的估计及其应用
R语言广义二次跳跃、非线性跳跃扩散过程转移函数密度的估计及其应用
|
8月前
|
Windows
R语言有状态依赖强度的非线性、多变量跳跃扩散过程模型似然推断分析股票价格波动
R语言有状态依赖强度的非线性、多变量跳跃扩散过程模型似然推断分析股票价格波动
|
数据可视化
RNAseq|构建预后模型后你还需要这些图,森林图,诺莫图,校准曲线,DCA决策曲线
RNAseq|构建预后模型后你还需要这些图,森林图,诺莫图,校准曲线,DCA决策曲线
390 0
|
机器学习/深度学习 传感器 算法
垂直腔表面发射激光器极化噪声的建模与分析论文复现
垂直腔表面发射激光器极化噪声的建模与分析论文复现