看来您的问题非常适合使用CDMA方案。
让我们从 (DSSS) CDMA 的一些特性开始。(直接序列扩频,码分多址)。它是一口,但它真的很容易实现。
在 CDMA 中,您的脉冲(在基带上)实际上是由许多串联的“芯片”组成的。筹码只有 1 秒或 -1 秒,具有固定的持续时间。例如,您的筹码顺序可能是 [1 -1 1 -1 -1 -1 1]。您将使用此芯片序列来调制您的载波。
但是,您不能只是编造您的芯片代码。你想要做的是使用具有非常好的特性的芯片代码,它们的自相关函数是一个像这样的增量函数:
(等效地,它们的功率谱密度是白色的)。例如,您可以考虑使用Barker Sequences作为您的芯片代码(通常用于雷达),或者您也可以考虑使用Gold Codes。然而,实际上,这意味着您在接收器中获得最大相关分数,只有当接收器的代码与传输的代码完全一致时,否则为零。
这对你有什么帮助?在您的接收器中,您将连续运行一个相关器。相关器将执行它自己的本地代码的运行点积,无论接收到什么。现在想象一下,您从笔接收到传输波形,从反射接收到第二个波形。当您的接收器的相关器运行时,当它自己的代码字与您的笔代码完全对齐时,它会给出一个峰值。这将导致您的检测器“锁定”到该特定延迟值。现在,您可以从代码的近增量自相关函数中获益:反射信号也将出现,并且还将与接收器的锁定代码进行点积,但它会给出零,或者接近零分,因为它是正交的或与您的接收器已经锁定的延迟代码接近正交。
相反,如果您发送了一个未编码的载波脉冲,那么当您的脉冲恰好在接收器的检测器电平达到峰值时,您将受到相长或相消干扰的支配,从而得到错误的 TDOA。