海洋声场计算指南
(一)
本不想翻译,因为读者若要成为未来的水声物理专家或者海洋学专家,
英文阅读是一项基本能力。不过有很多非水声物理专业和非海洋学专业的
人员或低年级学生困如热锅之蚁,渴切迫望熟悉海洋声场模拟和研究领域。
于是利用闲暇将原英文稿件翻译成可以较快上手的中文版本,以饷急需。
未来的声学-海洋学专家们就直接从外文文本上手可以了,啃下一、两
册来,本专业的中文、外文均就基本上道了。
(二)
BELLHOP 手册和用户指南
草案初稿
Michael B. Porter
热、光和声音研究公司
美国 加州 拉荷亚
1-31-2011
摘要
BELHOP 是用于预报海洋环境中声压场的一种波束追踪模型。波束追
踪结构导向了一种特别简单的算法。基于几何和物理扩展规律,应用了包
括高斯形状和草帽形状等几种波束。BELLHOP 可以产生各种有用的输出,
包括传输损失、本征射线、到达声线、接收时间序列。它允许顶部、底部
边界(海面测高和海底测深)和声速剖面随距离变化。也允许指定声源的
指向性和边界介质地声属性的文件作为输入附件,还可提供顶部和底部反
射系数文件。BELLHOP 采用 Fortran, Matlab, 和 Python 语言实现,并可应
用于 Mac, Windows, 和 Linux 等多种操作系统。本报告描述其代码并说明
其用法。
1、BELLHOP 程序概图
1.1 输入
图 1 BELLHOP 模型结构。
BELLHOP 整体结构如图 1 所示。必须提供各种文件来描述环境和声源
与接收器的几何配置。最简单、也最典型的是提供一个文件,它被称为环
境文件,包括声速剖面和海底的信息。当然,如果海底随距离变化,则需
提供一个以距离-深度来定义水深的测深文件。类似地,如果海洋声速随距
离变化,则需提供在规则网格上标记声速的 SSP 文件。再进一步,如果想
以反射系数来描述海底,则需提供以角度-反射系数来定义反射特征的海底
反射系数文件。海面情况与此类似。因此有一个提供顶部反射系数和顶部
形状(测高文件)的选项。
通常假定声源是无指向性的;当然,如果声源有指向性,则需提供以
角度-幅度来定义声源指向性特征的文件。
BELLHOP 依靠在主环境文件中设置选项来读取以上各种附属文件。
有绘图程序((plotssp, plotbty, plotbrc,等)来展示每一个输入文件。
1.2 输出
BELLHOP 依靠在主环境文件中设置选项来产生各种各样的输出。
通常从射线追踪选项开始计算,它产生一个从声源发出声线扇面的文
件。如果选择本征射线选项,则只输出通过特定接收器位置的声线。其文
件格式与用于设置标准射线追踪选项的文件完全相同。射线文件通常用于
给出能量如何在信道中传播的直观图景。程序 plotray 用来显示这些文件。
通常人们对单音调声源或宽带波形中某单音调的传播损失很感兴趣。
传播损失是指单位强度声源经传播后的声音强度。传播损失写进一个 shade
文件,并可用 plotshd 程序绘制成二维表面图,或者用 plottlr 和 plottld 分
别绘出某深度或某距离上的切片。
如果你不仅想得到单音调声源的强度,还包括整个时间序列,那么就
选择到达计算。到达结果文件包含以幅度-延迟来定义的信道中每个回波的
响度和延迟。回声模式信息可以用 plotarr 来绘制展示。或者传递给卷积器,
卷积器将特定的声源时间序列的回波求和以产生接收器的时间序列。程序
plotts 用于绘制声源或接收器的时间序列。
1.3 计算参考文件
\Acoustics Toolbox\at\at\tests\Munk\runtests.m
2、声速剖面与声线轨迹
作为第一个例子,考虑一种深水情形,Munk 声速剖面。通常先画声速
剖面并算出声线轨迹。输入文件(也称环境文件)是一个简单的文本文件,
可用任何标准文本编辑器来创建,但扩展名必须为“.env”。这通常是各种范
例文件中最容易的开始计算。此处,考虑 at/tests/Munk/MunkB_ray.env:
2.1 案例 1:2011 年原文档算例。
2.1.1 环境文件
MunkB_ray_2011.env
MunkB_ray_2011.env
! TITLE
! FREQ (Hz)
! NMEDIA
! SSPOPT (Analytic or C-linear interpolation)
! DEPTH of bottom (m)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
‘Munk profile’
50.0
1
‘SVF’
51 0.0 5000.0
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 /
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/
4800.0 1548.52 /
5000.0 1551.91 /
‘A’ 0.0
5000.0 1600.00 0.0 1.0
1
1000.0
51
0.0 5000.0
1001
0.0 100.0
‘R’
41
-20.0 20.0
0.0 5500.0 101.0
/
/
/
/
! NSD
! SD(1:NSD) (m)
! NRD
! RD(1:NRD) (m)
! NR
! R(1:NR ) (km)
! ’R/C/I/S’
! NBeams
! ALPHA1,2 (degrees)
! STEP (m), ZBOX (m), RBOX (km)
输入文件采用列表指示的 I/O 来读取,因此在每一行上不需要对数据进
行精确定位。为方便起见,我们还附上注释,注释前面是“!”,这些注释不
会被程序读取。
声源频率(第 2 行)对基本声线轨迹并不十分重要。声线与频率无关,
但是,频率对声线步长大小有影响,因为代码假定更高的频率可以画出更
精确的声线轨迹。
NMedia(第 3 行)在 Bellhop 中总是设置为 1。文件中包含此参数是为
了与声学工具箱中其他模型相兼容,那些模型能够处理多层问题。
接下来的顶部选项(第 4 行)被设定为“SVF”,表明使用样条拟合来对
声速剖面进行插值;海洋表面设为真空;所有衰减值都以 dB/mkHz 为单位。
选择样条拟合是因为知道本例中的声速剖面变化平滑,在这种情况下,样
条拟合产生更加平滑的声线轨迹图。
下一行(5)唯一重要的参数是海底深度(5000 米),它指明了需要在
声速剖面中读取的最后一行。BELHOP 模拟时不使用前两个参数。
接下来,我们看到顺序排列的以深度-声速对来定义的海洋声速剖面。