あなたの問題は、CDMA方式を使用するのに非常に適しているようです。
(DSSS)CDMAのいくつかの特性から始めましょう。(直接シーケンススペクトラム拡散、コード分割多重アクセス)。一口ですが、実装は本当に簡単です。
CDMAでは、(ベースバンドでの)パルスは、実際には、呼ばれる多くの連結された「チップ」で構成されています。チップは、固定期間の1または-1です。たとえば、チッピングシーケンスは[1 -1 1 -1 -1 -1 1 1]のようになります。このチッピングシーケンスを使用して、キャリアを変調します。
ただし、チッピングコードだけを作成することはできません。あなたがしたいことは、自己相関関数が次のようなデルタ関数であるという非常に優れた特性を持つチッピングコードを使用することです。
(同等に、それらのパワースペクトル密度は白です)。たとえば、バーカーシーケンスをチッピングコードとして使用する方法(通常はレーダーで使用)を調べたり、ゴールドコードを使用したりすることもできます。ただし、実際には、これは、受信者のコードの最大相関スコアが、受信者のコードが送信されたコードと正確に一致する場合にのみ得られ、それ以外の場合はゼロになることを意味します。
これはどのように役立ちますか?受信機では、相関器を継続的に実行します。相関器は、受信したものを使用して、独自のローカルコードの実行中のドット積を実行します。ここで、ペンから送信された波形を受け取り、反射から2番目の波形を受け取ったとします。レシーバーの相関器が実行されると、それ自体のコードワードがペンからのコードと正確に一致するときにピークが発生します。これにより、検出器がその特定の遅延値に「ロック」されます。反射信号がされます:あなたのコードの近くにデルタの自己相関関数の恩恵を享受どこ今、ここにあるにも存在する、となりますまた、その内積はレシーバのロックされたコードで撮っていますが、それがゼロを与える、または正則であるため、ゼロスコアに近いまたは、レシーバーがすでにロックしている遅延コードにほぼ直交しています。
対照的に、コード化されていないキャリアパルスを送信した場合、パルスがレシーバーの検出器レベルで正確にピークに達したときに建設的または破壊的な干渉が発生し、誤ったTDOAが発生します。