Bellhop 绘制传播损失

news2024/11/26 2:32:08

文章目录

  • 前言
  • 一、相干传播损失(TL)基本算例
    • 1、环境文件
    • 2、绘制相干传播损失
  • 二、相干、半相干和非相干传播损失(TL)


前言

上文我们讲述了 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 声速剖面的传播损失。


我的qq:2442391036,欢迎交流!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/598797.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【SpringMVC】入门案例

前言: SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装。 对于SpringMVC我们主要学习如下内容: SpringMVC简介请求与响应REST风格SSM整合(注解版)拦截器 SpringMVC是处于Web层的框架,所以其主要的作用…

用户验证FTP实验

用户FTP实验 目录 匿名用户验证: 本地用户验证: 本地用户访问控制: 匿名用户验证: 例:(前提配置,防火墙关闭,yum安装,同模式vmware11) 现有一台计算机huy…

数据结构算法-图技术点(图的算法实现)

先看 定义邻接表 //边 struct Edge {int AdjVertex;//邻接顶点int Weight;//权值Edge* next;//下一条边 };using VertexValue use define//顶点 struct Vertex {VertexValue value; // 顶点数据Edge* First;//获取第一条边 }; //邻接顶点 using AdjVertex Vertex*; //邻接…

自动驾驶嵌入式开发工程师:车载SOC开发修炼秘籍

声明:本文档是博主在开发学习过程中写的笔记,本意是便于以后开发复盘,参考《 ug1144-petalinux-tools-reference-guide》、《ug1085》、黑金Zynq UltraScale MPSoC 5EV开发板资料、英伟达官方资料。大佬勿喷 大佬勿喷 大佬勿喷!&a…

【资料分享】RS-485 串行接口说明

面对大量可用的串行接口,可能很难理解它们之间的差异以及何时使用它们。正如我最喜欢的工程学教授经常说的那样,“标准的美妙之处在于有很多标准可供选择。” 今天的编码器比以往任何时候都更智能、更先进,要求工程师放弃更简单的正交增量传感…

智能网联环境下数据安全分析与建设思考

01安全概况 随着智能化程度不断提升,汽车正逐渐从传统意义上的交通工具演化为公路上的智能终端,核心部件也从发动机、变速箱、底盘上升为芯片、软件与数据。相关机构研究表明,目前全球市场搭载智能网联功能的新车渗透率约为45%,预…

160个CrackMe之001

吾爱中的逆向练习题 运行程序 有两个方式 一个是账号登入 一个是序列号输入 账号输入 方法一 爆破 我们先进行账号输入 这个是最简单的逆向 所以我们可以使用 字符串查找看看 先试用ollydbg打开 右键 ->查找 ->所有参考文本字符串 这里我们能发现有两个报错 我们还…

《C++ deque的介绍以及stackh和queue的模拟实现》

文章目录 一、容器适配器1.1 什么是适配器1.2 STL中stack和queue的底层结构1.3 deque的简单介绍1.3.1 deque的原理介绍1.3.2 deque的结构1.3.3 deque和vector以及list的对比1.3.4 为什么选择deque作为stack和queue的适配容器 二、stack的模拟实现三、queue的模拟实现 一、容器适…

5个超实用视频素材网站,免费下载~

推荐几个高清无水印的视频素材网站,重点是可以免费下载使用,建议收藏! 菜鸟图库 https://www.sucai999.com/video.html?vNTYxMjky 可以称之为最大素材库,在这里你可以找到设计、办公、图片、视频、音频等各种素材。视频素材就有…

基于Nginx搭建LNMP

目录 一:安装 Nginx 服务 1、关闭防火墙、安装依赖包 2、创建运行用户 3、压缩包编译安装 4、优化路径 5、添加 Nginx 系统服务 二: 安装 MySQL 服务 1、安装Mysql环境依赖包 2、创建运行用户 3、编译安装 4、修改mysql 配置文件 5、更改mysql安装…

网络通信:http协议

虽然我们说, 应用层协议是我们程序猿自己定的. 但实际上, 已经有大佬们定义了一些现成的, 又非常好用的应用层协议, 供我们直接参考使用. HTTP(超文本传输协议) 就是其中之一. 认识URL 统一资源定位符(Uniform Resource Locator,缩写:URL),…

springboot + vue3实现视频播放Demo(video.js Vue3-video-play视频播放器)

文章目录 学习链接前言ffmpeg安装ffmpeg配置环境变量分割视频文件 后台配置WebConfig 前端代码video.js示例安装依赖视频播放组件效果 Vue3-video-play示例安装依赖main.js中使用视频播放组件效果 学习链接 ffmpeg官网 长时长视频java存储及vue播放解决方法 【 攻城略地 】vue…

AKStream部署1:ZLMediaKit流媒体服务器(win)

环境准备: windows10/11 visual stadio 2022(.net 6) cmake 3.22.0 git bash 没讲究直接下最新的 ffmpeg : ffmpeg-5.1.2-full_build VLC播放器:VLC media player ZLMediaKit:gitee地址 1、安装上述软件 例ffmpeg下载解压至某自定…

图片转pdf怎么转?一分钟解决

在日常生活中,我们常常需要将一些图片转换成PDF格式,以便于在电子设备上查看和分享。今天,我们将分享一些关于如何将图片转换成PDF的方法。 以下是三种常用的将图片转换成PDF的方法: 我们可以借助转换工具将图片转成PDF 如PDF转…

用esp8266连网的一些互联网知识

参考太极创客的课程资料添加链接描述 TCP/IP协议簇 在网络系统中,为了保证通信设备之间能正确地进行通信,必须使用一种双方都能够理解的语言,这种语言被称为“协议”。 TCP/IP协议簇是Internet的基础,也是当今最流行的组网形式…

数据结构学习记录——树习题-Complete Binary Search Tree(题目描述、输入输出示例、数据结构的选择、核心算法、计算左子树的规模)

目录 题目描述 输入示例 输出示例 数据结构的选择 核心算法 计算左子树的规模 思路 总结 题目描述 现给定一系列不同的非负整数键,如果要求构造出一颗完全二叉树,则可以构造唯一的二叉搜索树。输出此二叉搜索树的层序遍历序列。 完全二叉树 有n…

复习之linux系统中的权限管理

1.权限的查看及读取 (1)权限的查看 # ls -l file : 查看文件的权限 # ls -ld dir :查看目录权限 (2)权限的读取 文件的属性叫做文件的元数据。 元数据(Metadata),又称中介数据、中继…

chatgpt赋能python:Python为什么运行不出来?

Python为什么运行不出来? Python是一门高级编程语言,被广泛应用于科学计算、机器学习、Web开发等领域。但是,有时候我们在编写Python程序的过程中会遇到各种各样的问题,其中之一就是程序无法运行。那么,Python为什么会…

网页投票系统怎么做如何制作网页投票链接如何投票链接

用户在使用微信投票的时候,需要功能齐全,又快捷方便的投票小程序。 而“活动星投票”这款软件使用非常的方便,用户可以随时使用手机微信小程序获得线上投票服务,很多用户都很喜欢“活动星投票”这款软件。 “活动星投票”小程序在…

mysql版本升级导致的时区问题

背景 公司各个项目组用的mysql 版本不一样,有的是5.x稳定守旧版,有的最近喜欢用8.x高级迎新版,结果出了问题。 现象,数据库中保存的时间与java读取的时间字段不一样。 最开始数据库mysql版本为5.7.28,驱动为5.1 反正…