Bellhop 模型在水声网络仿真中的实现和应用
2024-03-14刘奇佩罗逸豪吴鑫莹周河宇
刘奇佩 ,刘 琨 ,罗逸豪 ,吴鑫莹 ,周河宇
(1.中国船舶集团有限公司 第710 研究所,湖北 宜昌,443003;2.国家计算机网络应急技术处理协调中心 黑龙江分中心,黑龙江 哈尔滨,150001;3.华东理工大学 艺术设计与传媒学院,上海,200030)
0 引言
水声网络(underwater acoustic networks,UANs)可以用于海洋资源探索、辅助导航、自然灾害预警以及海域监控等多个领域[1-5],在军事和民用方面表现出巨大潜力,近年来受到各国研究人员的广泛关注。UANs 底层协议的设计关乎整个网络的性能,而水声信道的特性又是UANs 不同于其他形式传感器网络的关键,因此,一个接近真实情况的水声信道模型(underwater acoustic channel model,UACM)对于UANs 协议的开发极为关键,能够具备理论UACM 难以做到的对于多径效应、声影区等的仿真,从而使UANs 协议的前期开发更加准确快捷。
针对UACM 的真实建模问题,国外机构开发了Bellhop 水声信道模型[6],利用射线声学追踪水声信号在不同水域条件下的每条声线,进而计算出更为真实的信道参数。但不足是该模型自成体系,只提供了若干可执行文件供用户使用,无法直接用于现有的网络仿真软件,限制了其在UANs仿真中的应用。
基于上述问题,文中研究了Bellhop 水声信道模型在UANs 仿真中的实现和应用,通过配置Bellhop 信道参数、解析Bellhop 中间文件、定制UACM 接口等操作,成功扩展了NS3 水声信道模块[7],取得了较为精准的结果。
1 相关研究
1.1 NS3 水声网络框架
网络仿真技术主要利用数学建模的方法来模拟网络行为,通过对网络性能的统计和分析来衡量网络协议在特定网络结构下的性能表现,其高效、灵活、低成本和快捷性成为协议开发的重要手段。
得益于技术发展,近年来可用于UANs 的仿真工具层出不穷,其中一个较为突出的便是NS3,该工具以C++编写和开源的特性广受研究人员青睐。NS3 是一个面向对象的离散事件网络仿真工具,在运行时,其时间线并不以现实时间为准,而是提前将所有事件按时间顺序存储在一个事件队列中,在一个事件执行完毕后直接跳转到下一个事件,因此执行效率取决于协议的复杂程度。NS3虽然开源,但有一个稳定的官方团队不断对软件进行管理和升级,同时还有着庞大的社区不断贡献开发者的代码。到目前为止,已具备多达数十个功能模块,涵盖了Internet、802.11 及WiMAX等主流研究方向。
除此之外,NS3 还提供了一个专用于UANs 仿真的工具包uan,具备对水声网络层协议和多路访问控制(multiple access control,MAC)协议的仿真能力,其数据包的基本流向如图1 所示。
图1 uan 框架和数据流向Fig.1 Framework and data flow direction of the uan
该UACM 能够设置噪声模型和传播模型,进而通过计算节点间的距离求得数据包在目的节点的接收信噪比,再求得丢包概率。可以看出,在上述过程中数据包的投递是广播的,符合水声信道的无线特性,但其他过程使用了理论模型,无法有效针对节点的部署位置和海洋环境的时-空变化进行精准分析,限制了其用于实际环境仿真时的精确度。
1.2 解决方案探索
针对上述问题,国内外学者进行了不同方面的技术探索。李莉等[8]研究了将世界海洋仿真系统(world ocean simulation system,WOSS)[9]与NS-Miracle 进行结合的扩展UACM,能够在网络仿真中考虑真实海洋环境,实现了较为精准的信道建模。WOSS 是一个由帕多瓦大学SIGNET 实验室推出的海洋环境模拟系统,收集了世界各地海洋包括声速剖面、等深线剖面和海底沉积物类型等具体参数,并使用数据库技术进行封装,用户可以使用官方提供的接口获得较为精准的水声信号衰减、功率延迟分布和时延,进而将其用于水声信道建模。然 而,NS-Miracle 是一个基于NS2 的扩展版本,已有20 年历史且早已不再更新,使用OTcl 和C++进行编程的特点也使得其门槛较高,不利于学习和使用。此外,WOSS 的数据库大小接近4G,其配置和使用为用户来带来较大不便,且需不断进行调试,严重阻碍了协议开发进程。苏毅珊[10]和Zeng[11]等另辟蹊径,从半实物仿真的角度入手,尝试将仿真平台接入真实水声信道,利用波形级调制解调算法计算声信号在水下环境中的传播时延和误码情况,进而对UANs 协议进行衡量和改进,开创了一条新思路。但该方法只能用于实验室测量,小范围的水池和水箱环境无法模拟出海洋对水声信号的复杂作用,且实现起来网络规模受限,无法适应日益增长的大规模UANs 仿真需求。
考虑到上述方案的局限性,文中设计并开发了一个基于Bellhop 的NS3 水声信道模型,通过用户根据需求自定义声速剖面和海底、海面类型,然后调用Bellhop 模型生成声线文件并存入数据库,再通过信道模型根据目的节点的位置查询相关衰减和时延信息,最终根据数据包的接收信噪比决定是否进行丢包。
该方案优势为: 1) 可完全兼容NS3 原有框架,兼顾了模型精确度与协议开发效率;2) 提供了详细的设计思路和算法流程,方便进行移植开发。
2 Bellhop 模型在NS3 水声网络仿真中的实现
2.1 Bellhop 水声传播模型
在水声信道和水下声场的计算和仿真中,Bellhop 是一个常用工具,可以用来预测海洋环境中的声压场[12]。Bellhop 利用射线理论计算声线在海洋环境中的传播行为[13],以获得声信号的本征声线和传播损失等实用数据,其基本原理是,围绕声源中心射线构建的波束具有以下声压场表达式
式中:s为沿中心射线的弧长;n为邻域接收位置到中心射线的法向距离;ω为声信号角频率;τ (s)为声信号相位延迟。
对于具有高斯形态的波束,A(s)和 ϕ(s,n)可 表示为
式中:A0为常数,与声源类型相关;p(s)和q(s)分别为由高斯波束束宽和曲率导出的复弧长及其相对变化。
基于高斯射线理论的波束传播衰减情况如图2 所示。
图2 基于高斯射线理论的波束传播衰减Fig.2 Transmission loss for a geometric Gaussian beam
使用时,Bellhop 会综合考虑声速剖面、海底地貌以及声线在海洋界面中的反射和折射情况,计算得到较为精准的传播损失和功率延迟分布信息,其运行流程如图3 所示。
图3 Bellhop 使用流程Fig.3 User flow of the Bellhop model
Bellhop 的输出文件主要有声线追踪文件、传播损失文件及声线延迟和幅度文件3 类,分别通过在环境文件中指定不同的仿真类型获得。其中,声线追踪文件记录了从声源能够抵达目的位置的所有本征声线传播路径;传播损失文件记录了声信号在观测区域内的衰减;声线延迟和幅度文件记录了声线到达观测区域各个位置的延迟、幅值及相位等信息。
2.2 基于Bellhop 的NS3 UACM
可以看出,Bellhop 产生的声线延迟和幅度文件包含了进行网络仿真时信道模型需要的所有信息,如信号的时延、衰减以及功率延迟分布信息,这些信息有些可直接获得,有些则需要进行简单处理。文中设计并开发的基于Bellhop 的UACM主要流程如图4 所示。
图4 基于Bellhop 的UACM 流程图Fig.4 Flow chart of the UACM based on Bellhop
具体步骤如下。
1) 根据需求配置Bellhop 环境文件*.env。
当该文件包含声速剖面、海底/海面反射系数、波束指向性以及运行类型等信息时,只需提供该文件即可运行Bellhop 内核。如果模拟的环境具有较复杂的声速剖面和海底深度,则可以分别提供,这一点与Bellhop 正常使用无异。
需要注意的是,在环境文件中还指定了声场区域大小和分辨率,通过设置声源和观测点的数量以及分布来确定,它们共同构成一个网格状平面,最后由Bellhop 内核计算网格点位置的声线信息。通过这种方式可将连续问题离散化,达到计算资源和精度的平衡。
2) 调用Bellhop 内核处理步骤1)中产生的环境描述文件,生成相应的声线追踪文件*.ray。
3) 解析步骤2)产生的声线追踪文件,根据信号的接收位置提取到达该位置每条声线的主要信息,计算得到该信号的分组数据协议(packet data protocol,PDP)和衰减信息,并将上述信息存入数据库。
在该步骤中,主要提取的信息有幅值(mMag)、相位(mPha)、时延(mDel)、发射角度(mSrcAng)和接收角度(mRcvAng),然后通过图5 所示算法伪代码对这些信息进行处理,得到所需结果。
图5 PDP 和衰减计算方法Fig.5 Method to calculate the PDP and attenuation
在该算法中,声线的数量可以通过声线追踪文件进行提取,位置信息由环境文件设置,以一定分辨率在整个海域呈网格状,如图6 所示。
图6 网格状声场数据Fig.6 Mesh grid shaped data of acoustic field
4) 使用步骤1)的相同参数对NS3 水声信道模块进行配置。
由上文可知,数据库中存储的声线信息也是离散的,以三维变量观测点位置信息(声源深度、接收深度和水平距离)为索引,分辨率由垂直步长和水平步长决定,因此,该信道模块在提取所需信息时,需要以相同的索引进行检索。
5) 建立仿真脚本,使用步骤4)配置的水声信道模块进行仿真。
仿真过程中,大多数情况下接收节点位置未能位于网格点,因此无法直接读取数据库中存储的该点位置声场信息。为有效提取精确的声场信息,使用最邻近网格点取值法进行近似,以一个点最近的网格点位置代替该点位置信息进行检索。
该过程可以表示为
式中:L′为数据接收节点的位置,包含深度和水平距离;L为数据库中保存的所有网格点位置。
检索后可得该位置的所有声线信息,视其中幅度最高的声线为直达声,得到其传播延迟,就可以使用信道模块在该时延后将数据包分发给相应接收节点,实现数据在水声信道中的无线传输。
3 仿真结果分析
对上文描述的基于Bellhop 的NS3 水声信道模型进行性能验证,对比该模型和理论信道模型对于网络仿真的影响,所使用的具体仿真参数如表1 所示。
表1 网络仿真参数Table 1 Network simulation parameters
所得整个网络区域的衰减信息与理论模型的仿真对比如图7 和图8 所示。可以看出,使用理论模型的信号衰减以声源为中心呈近似圆周分层,说明信号的空间衰减只与接受位置到声源的距离相关;而使用文中采用的Bellhop 信道模块时,信号的空间衰减还与接受位置的深度和水平距离相关,并出现了较为明显的信号加强现象(位置在水平距离300~450 m),究其原因,是因为信号在海底产生了反射(即多径效应问题),说明该方法确实得到了相比传统理论模型更为精准的衰减结果。
图7 理论信道模型的衰减Fig.7 Attenuation of the Thorp theoretical UACM
图8 Bellhop 信道模型的衰减Fig.8 Attenuation of the Bellhop UACM
除此之外,在相同参数下使用MATLAB 对Bellhop 信道模型进行仿真,得到的信号衰减如图9 所示。可以看出,其信号衰减趋势与图8 接近,也在水平距离300~450 m 形成密集的亮点,说明此处的信号存在叠加。
图9 MATLAB 下Bellhop 信道模型的衰减Fig.9 Attenuation of the Bellhop UACM in MATLAB
使用CW 协议在不同信道模型条件下的性能表现如图10 所示。不难发现,使用Bellhop 水声信道模块时,协议吞吐量趋势与传统模型基本一致,但整体性能差异较大,对比图8 可以看出,这是由于信号在Bellhop 水声信道条件下整体衰减较小,使得一些节点的接收信噪比较高,进而减小了误码率和丢包率。
图10 不同UACM 条件下CW 协议吞吐量Fig.10 Throughputs of the CW protocol for different UACMs
结合上述结果可知,相对于理论模型衰减仅由距离决定,文中所开发的Bellhop 水声信道模块计算得到的信号衰减与声源深度、接收深度及传播距离等均有直接关系(实际上根据前文可知,影响声线传播的关键因素还有声速剖面、海面海底反射系数等复杂因素,而声源深度和接收深度是影响声速剖面的主要参数),较好地模拟了声线在水下复杂的传播过程,因此在不同声场区域具有与理论模型截然不同的传播衰减,较大影响了协议的性能表现,对水声网络协议前期的开发和评估具有重要意义。
4 结束语
基于Bellhop 设计并开发了用于NS3 网络仿真的UACM,将高斯射线理论用于水声网络协议仿真。结果表明,该模型能够较为准确地模拟水声信号在海洋环境中的传播衰减和反射,可用于对传统信道模型无法适用的特定水文情况(如浅海、深海声影区)下水声网络协议进行前期开发、评估及改进,并为水声网络协议的开发和落实提供依据。