1

我们有custom preamble我们希望添加到信号中的信号,有没有办法将其保存custom preamble到调制解调器并将其加载到UnetDocumentation(sec 16.4)phy[3]中所示。

有没有其他方法可以将前导码直接加载到信号中?

4

1 回答 1

2

如果您只需要使用信号传输前导码,您有两种选择:

  1. 您可以直接将其作为信号的一部分包含在内。
  2. 您可以在特定的索引方案(例如phy[3])上设置前导码,然后将其用于传输。

方法 1 的优点是简单。方法 2 的优点是您还可以使用前导码来检测水中的信号。

方法一比较简单,这里就不详细讨论了。我将重点向您展示方法 2 的工作原理:

步骤 1. 设置您的序言。

如果您使用的是标准信号,例如 m-sequence 或 chirp,您可以通过指定信号的参数来进行设置。例子:

phy[3].preamble = Preamble.hfmUpSweep(240)  // 240-sample long hyperbolic up sweep
phy[3].preamble = Preamble.mseq(1023,2)     // 1023-chip m-sequence with 50% bandwidth

help phy[].preamble在 unet shell 上输入,Preamble更多信息请参阅 API 文档)

如果您有自定义信号作为前导码,则可以直接指定基带信号:

phy[3].preamble = new Preamble(pre)

其中pre包含复杂的基带样本。

步骤 2. 使用您的序言进行传输。

传输基带信号时,您可以指定要使用的前导码。例如:

phy << new TxBasebandSignalReq(preamble: 3, signal: signal)

其中3指定phy[3]应传输前导码,并signal包含要在前导码之后传输的基带信号样本。

提示:如果您想使用前导码进行信号检测,您需要为方案设置检测阈值(例如phy[3].threshold = 0.25)。由于这不是这个问题的重点,所以我们不会过多地讨论它。

注意:虽然Preamble该类支持任意长度的前导信号,但实际的调制解调器可能具有基于内存缓冲区的硬限制,以及基于检测计算负载的软限制。对于当今大多数实用的基于 UnetStack 的调制解调器,您可能希望将前导信号限制为 1024 个样本或更少(或与您的调制解调器供应商核实硬件限制)。

于 2021-06-29T05:06:41.960 回答