有没有办法向自定义通道提供测深?

Is there a way to supply bathymetry to the custom channel?

我正在 运行 使用 UnetStack Simulator. By default the simulations uses one of either ProtocolChannelModel or BasicAcousticChannel. Documentation

进行水下模拟

假设我向节点提供 GPS 坐标。我如何在模拟中提供水深测量以使其更合理?我打算使用 GEBCO 2019.

有办法吗?

并非开箱即用,但使用自定义渠道实现应该相对简单(请参阅 Unet handbook 中的“开发自定义渠道模型”部分)。

大纲:

实现您自己的声学模型(例如MyAcousticModel):

class MyAcousticChannel extends AbstractAcousticChannel {
  @Delegate AbstractAcousticModel acoustics = new MyAcousticModel(this)
  @Delegate BPSKFadingModel comms = new BPSKFadingModel(this)
}

并调用使用测深法的传播模型(例如 Bellhop),并从 GEBCO 数据库中为其提供测深法。 MyAcousticModel class 将实现 AbstractAcousticChannel,它使您可以访问发射器和接收器的位置,以提取测深数据。信道模型每次接收需要return一个接收信号强度,从传播模型传输损耗计算和发射功率中很容易得到。

提示:您可能希望缓存传播模型运行 结果,这样您就不必重新计算,除非节点移动。

然后您将在模拟中使用通道模型 MyAcousticChannel

channel.model = MyAcousticChannel