我们有custom preamble
我们希望添加到信号中的信号,有没有办法将其保存custom preamble
到调制解调器并将其加载到UnetDocumentation(sec 16.4)phy[3]
中所示。
有没有其他方法可以将前导码直接加载到信号中?
我们有custom preamble
我们希望添加到信号中的信号,有没有办法将其保存custom preamble
到调制解调器并将其加载到UnetDocumentation(sec 16.4)phy[3]
中所示。
有没有其他方法可以将前导码直接加载到信号中?
如果您只需要使用信号传输前导码,您有两种选择:
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 个样本或更少(或与您的调制解调器供应商核实硬件限制)。