我正在使用UnetStack Simulator运行水下模拟。默认情况下,模拟使用ProtocolChannelModel
或之一BasicAcousticChannel
。文档
假设我向节点提供 GPS 坐标。如何在模拟中提供水深测量以使其更合理?我打算使用GEBCO 2019。
有没有办法做到这一点 ?
我正在使用UnetStack Simulator运行水下模拟。默认情况下,模拟使用ProtocolChannelModel
或之一BasicAcousticChannel
。文档
假设我向节点提供 GPS 坐标。如何在模拟中提供水深测量以使其更合理?我打算使用GEBCO 2019。
有没有办法做到这一点 ?
不是开箱即用的,但使用自定义通道实现应该相对简单(请参阅Unet 手册中的“开发自定义通道模型”部分)。
大纲:
实现您自己的声学模型(例如MyAcousticModel
):
class MyAcousticChannel extends AbstractAcousticChannel {
@Delegate AbstractAcousticModel acoustics = new MyAcousticModel(this)
@Delegate BPSKFadingModel comms = new BPSKFadingModel(this)
}
并调用使用水深测量的传播模型(例如 Bellhop)并从 GEBCO 数据库中提供水深测量。该类MyAcousticModel
将实现一个AbstractAcousticChannel
,它使您可以访问发射器和接收器的位置,以提取水深。信道模型需要为每次接收返回一个接收信号强度,这很容易从传播模型传输损耗计算和发射功率中得到。
提示:您可能希望缓存传播模型运行结果,这样您就不必重新计算,除非节点移动。
然后,您将在模拟中使用通道模型MyAcousticChannel
:
channel.model = MyAcousticChannel