ソフトウェアでキャリア位相回復を実行する方法は?


13

ソフトウェアでBPSK信号の位相を回復するためのオプションは何ですか?オンラインで見つけることができる唯一のリソースには回路図が含まれています。アナログ回路に不慣れな人々にこれを説明しようとする人は誰もいないようです。

理論上、キャリアリカバリがどのように機能するかについての説明が必要です。また、擬似コードまたはコード例も気に入っています。


特にBPSK復調器のような複雑なものについては、通常コード例を提供しません。
ジム・クレイ

1
JimClayが示したように、復調器を実装するための完全なソースコードを提供するのに十分な時間を誰かに与えることはできません。ただし、概念を理解していれば、実装を作成する仕組みは簡単です。一般に、ソフトウェア受信機は、対応するハードウェア技術と同様の構造を持ちます(たとえば、フィードフォワード非線形ベースのシンクロナイザーまたはフィードバックPLLベースのアプローチ)。ターゲットとする予定の特定のトポロジがありましたか?
ジェイソンR

@JimClayとJasonRのコメントをありがとう–動作するソースコードを要求するつもりはありませんでした。質問をより具体的に更新しました。アナログ回路と回路図の理解を前提としない説明を探しています。
キース

回答:


25

BPSKが最も単純な位相シフトキー信号を復調するには、搬送周波数、位相、およびシンボルタイミングを復元する必要があります。

バースト信号一部の信号はバースト性であり、プリアンブルまたはミッドアンブルと呼ばれる既知のデータシーケンスを提供します(バーストの最初に現れるか中央に現れるかによって異なります)。復調器は、既知のデータシーケンスを「検索」するマッチドフィルタを使用し、それを使用してバーストの周波数、位相、およびシンボルタイミングを把握できます。バーストごとにこれを行い、バーストは一般にドリフトが十分でないほど短いため、「ドリフト」(小さなエラーが蓄積するにつれて復調器と受信信号の間に構築される緩やかな距離)を気にする必要はありません。問題。

連続信号次 に、連続信号があります。通常、信号にロックアップするのに役立つ既知のデータシーケンスがないため、バースト信号よりも回復が困難です。また、信号にロックした後でもドリフトを心配する必要があります。連続信号を回復するために一般的に使用される主な手順を高レベルで説明しようとします。

キャリア回復

通常、探している信号がどの周波数になるか、または少なくともどの周波数になり得るかを知っています。ただし、この知識があったとしても、2つの送信機が同じ周波数で送信することはないため、通常は周波数オフセットを修正する必要があります。常に何らかのエラーがあります。その場合、通常の方法は、信号があると思われる周波数を混合し、残留周波数誤差を修正することです。これは、コスタスループで行うことができます、またはベースバンド信号データの4乗をとり、周波数スパイクを探します。キャリアオフセット* 4に周波数スパイクがあるはずです(たとえば、4乗のデータのFFTを取得し、8300 Hzで周波数スパイクを確認した場合、キャリアオフセットは8300/4 = 2075 Hzになります)。これは、周波数オフセットの初期ロックを取得する非常に効果的な手段です。たまにやり直すと、ドリフトを補正するためにも使用できます。ドリフトを補正する別の方法がありますが、これについては後で触れます。

キャリア段階

この時点で、複素平面に複素データをプロットした場合(x軸は実数、y軸は虚数)、次のようになります。

回転BPSK

よく見ると、ぼやけた線の端に向かって2つの密な領域が見えます。これらはBPSKコンスタレーションポイントです。間のポイントは、コンスタレーションポイント間の遷移です。シンボルのタイミングを取得すると、これらはクリアされます。線が斜めになっている理由は、キャリア位相のためです。これは、負の実数値を持つすべてのポイントに掛けて信号をミラーリングすることで測定できます。ejπ

回転およびミラー化されたBPSK

ejω

ノイズの多いBPSK

データの位相が修正されると、情報を追加しないため、データの虚数部を削除できます。

シンボルタイミング

通常、復調しようとしている信号のシンボル周期をアプリオリに知る必要があります。ただし、シンボル周期/周波数を決定する必要がある場合は、キャリアオフセットの検出方法と同様の方法で行うことができます。データを2乗して、シンボル周波数の2倍の周波数スパイクを引き起こすことができます。

キャリアと同様に、位相(タイミング)を正しく取得し、ドリフトを補正する必要があります。これらの問題の両方に対する通常の方法は、ゼロクロッシングを探すことです。ノイズが非常に悪い場合を除き、シンボルが-1から1または1から-1に移行する途中でゼロポイントを通過するだけです。ノイズが原因でこれがシンボルの途中で発生したとしても、それほど頻繁には発生しません。

アイダイアグラム

上の図は、通常「アイダイアグラム」または「アイパターン」と呼ばれます。これは2つのシンボル周期幅であり、多くのシンボルが互いの上に「スタック」されています。オシロスコープに慣れているかどうかはわかりませんが、オシロスコープでこのような画像を表示できます。とにかく、2つの「X」はシンボル遷移です。Xの高線から低線は、シンボルが1から-1に移行するときであり、Xの低線から高線は、シンボルが-1から1に移行するときです。ピンクの線は、シンボルが1または-1であるかどうかを確認するためにデータをサンプリングする最適な場所です。

この同じ手法を使用して、シンボルタイミングのドリフトを処理できます。前のゼロ交差と次のゼロ交差からの距離の移動平均を取ります。2つの平均がほぼ同じであれば、すべてがうまくいきます。一方が他方よりも大きい場合は、サンプルを取得する場所をシフトする必要があります。

正しいポイントでシンボルをサンプリングすると、データポイントは従来のBPSKコンスタレーションポイントのように見えるものを取得するはずです。

ノイズの多いBPSKコンスタレーション

これがお役に立てば幸いです。


このすばらしい投稿を改善するために、シンボルタイミングの前にクロックリカバリのセクションを追加できますか?
LWZ

私はあなたが何を考えているか知っているかもしれないと思うが、私にはわからない。具体的に何を考えていましたか?
ジム・クレイ

本当にありがとう!ゼロクロッシングを探したり、x / yにこのように実数/虚数をプロットすることは考えていませんでした。私はちょうどフェーズのグラフを見つめ、すべてを同期する方法を知りました。再度、感謝します!
キース

@JimClay、シンボルタイミングセクションの冒頭で、「通常、復調しようとしている信号のシンボル周期を知っている必要があります」と述べました。これは通常、クロックリカバリユニットによって達成されます。 tデータと一緒にクロックを送信します。BPSK信号の場合、これは簡単です。信号を2乗するだけでデータを削除できます。次に、パワースペクトルを見ると、クロックトーンと呼ばれるピーク周波数があり、シンボル周期がわかります。
LWZ

シンボルの頻度に関する段落を追加しました。
ジム・クレイ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.