Bellhop-复杂海底地形仿真

  • 由于同事最近出差,需要接手他的工作,所以趁机进修了一下他的bellhop。今天内容背景是,在实际海底模型基础上进行仿真。(当然,由于海底的数据比较敏感,真实海底数据不能提供,大家可以根据介绍自行创建海底文件)
  1. 导入海底数据
load long_bs
load lat_bs
load dep_bs
%注意这里的海底深度不是真实深度,由于真实深度文件敏感,这里为我自己设置的sinc函数
%%%%%%%%%海底参数画图%%%%%%%%%%%
figure
mesh(longitude,latitude,depth)
colormap(jet)
colorbar;
shading flat

在这里插入图片描述
如图,分别导入经度、纬度、深度三个数组,他们分别存储了经纬度信息和对应点的深度信息,使用mesh函数画成三维图像查看整个研究区域海底地形。
在这里插入图片描述

  1. 导入声速梯度
    声速梯度存储在SSP.mat文件中,需要根据所需深度选择行数
load SSP
ssp=ssp(1:59,:);
%注意!!!!这里的59是对应的深度行,根据所选区域最深的深度以下确定声速梯度范围。
%例如,如果所选区域最大深度是5000m,打开SSP.mat文件,看到包含5000的在5200m,选到第62行才能完全包含海深
%%%%%%画声速梯度示意图%%%%%%
figure
plot(ssp(:,2),ssp(:,1));
set(gca,'YDir','reverse')%Y方向反转

在这里插入图片描述

  1. env文件设置
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
如图可知,如果需要修改海底为不平整的海底,或者说自己设置的海底,需要准备.bty文件,该文件由插值类型,点数和所计算截面海底深度随距离变化的矩阵组成。
(1) 插值类型:参数“ 插值类型” 是一个字符,等于‘L’( 用于对表面进行线性插值)或‘C’(用于对表面进行曲线插值)。
(2) 点数:设置的深度点数。
(3) 海底深度随距离变化的矩阵:第一列为距离,距离单位为km;第二列为深度,深度单位为m。

  1. 运行结果
    在选定点的0°,90°,180°,270°四个方向各选取40km计算传播损失,计算结果依次如图:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

  1. 完整代码和数据文件:
    完整代码和数据文件已经上传复杂海洋环境下不同角度使用Bellhop计算传播损失
    其中包括,主程序mainfuction.m,运行它即可得到结果,其他的.m文件为所需要的函数,.mat文件为所需要的数据。bellhop.m和bellhop.exe为保证运行bellhop工具包的。
    我将《Bellhop射线追踪程序概述(2008年6月发布).pdf》放入了资源中,大家可以自行查阅。