FSK復調、ビットタイミング回復


10

私は現在、音響FSK変調と復調を実装しています。私は信号処理の専門家ではないので、ビットタイミングの回復について助けていただければ幸いです。現在、各トーンに対して2つの整合フィルターを使用して復調器を実装しています(非コヒーレント検出の場合、位相の差はです)。基本的に、各フィルターの出力は、振幅の異なるピークです。2つの質問があります。90

  • ビットタイミング回復を実行するにはどうすればよいですか?
  • パケット同期プリアンブル(チャープ、バーカーコード、ゴールデンコードなど)には何をお勧めしますか?

私はガードナーアルゴリズムをグーグルアウトしましたが、それが適用可能かどうか、またその方法はわかりません。現在、サウンドカードを使用してビットレート800 bpsの2つの周波数で作業していると考えてください。

回答:


8

私は現在、音響FSK変調と復調を実装しています。私は信号処理の男ではありません…

あなたはフィルターをマッチさせたと言っており、コヒーレントでない検出について言及しているので、あなたはすでにデジタル通信の大部分をしていると思います– DSPの人になるためのステップはかなり小さいです:)

本格的なシンクロナイザーSDRアプローチ

したがって、これを行うための古典的な方法は、2つのフィルターの出力を(大きさ)二乗し、ローパスフィルターで結果を超えるものにフィルター処理し、フィルター処理中/処理後(可能な場合)、 1秒あたりの操作を無駄にしないこと。2fシンボル、最大

私は自分で迅速な実数値のバンドパス信号FSK復調を行いました(これをもう一度行うと、2つのバンドパスフィルターを1つの周波数変換と1つのローパスフィルターを組み合わせたものに置き換え、複雑なベースバンドを与えるか、多相フィルターバンクを投げました問題で、しかし何でも)GNU Radioの仲間の助けを借りてGNU Radioで(ここにフローグラフファイル):

FSK受信

ポイントは、除算としきい値ブロックの間でタイミング同期をシンボル化したいということです。後で行うことができます–古典的な「マイクロコントローラーとデジタルハードウェアの設計」アプローチは、実際にはMuller&Muellerクロックシンクであり、それも同じように機能しますが、勾配情報を無駄にしないでください。

そこで、ここに多相クロック同期を追加します。私は、この優れたトム、ハリスの弟子、より策定できなかった認めなければならない文書で行ったの名を冠したGNU無線ブロックの

多相フィルターバンクを使用したタイミングシンクロナイザー。

このブロックは、フィルター処理された信号の微分を最小化することによってPAM信号のタイミング同期を実行します。これにより、SNRが最大化され、ISIが最小化されます。

0=10=0

d[]バツ[]

e[]={バツ[]}{d[]}+{バツ[]}{d[]}2.0 。

バツ[]バツ[]バツ[]符号だけでなく、SNRが低い信号に特に適しています。

e[]dkd割合d割合d割合dkd割合dkdαdβdαdβ利得24

これを実現するのはオーディオ周波数です

したがって、このブロックを適切にパラメーター化するbpf_decimと(おそらくlpf_decim、シンクロナイザーを減らし、位相をシフトするためのヘッドルームを増やすため)、非常に安定したシンボルタイミングリカバリーを構築できます。

両端でサウンドカードを使用してサンプリングを行っているため、またドップラーを処理する必要がないと想定しているため、シンボルレートはキャリア周波数と一定の関係にあります(たとえば、送信側にはより高いキャリアがあり、サウンドカードのサンプルの期間が8であり、シンボルは常に128のサンプルを例に取るとしましょう。したがって、比率は固定されています)。ショートカットを使用できます。

キャリア周波数とシンボルレートの比率がわかっている場合は、一方を推定するだけで、もう一方を無料で入手できます。この場合、FSK、それは特に簡単です。たとえば、上部の帯域がアクティブになる期間だけ待機し、直交復調器(つまり、実際には)を使用します。dアークタンdt[]

パケット同期について

まあ、信号が存在しないときにおそらく同期が取れなくなる可能性のある復調器が動作しているので、既知の固定データシーケンスを使用してパケットを見つけます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.