Main Content

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

Communications Toolboxを使用したフレームベースのスクランブラー

この例では、6 次スクランブラの HDL 実装の検証を示します。スクランブラは、ビットをシャッフルすることによって送信信号の遷移をランダム化するために通信システムで使用されます。スクランブルの目的の 1 つは、送信信号内の 0 または 1 の文字列の長さを短縮することです。これは、0 または 1 の文字列が長いと送信同期の問題が発生する可能性があるためです。スクランブルは、安価な暗号化技術として使用されることもあります。この例は 2 つのモデルで構成されています。最初のモデルscrambler_frameは HDL 実装を検証し、2 番目のモデルscrambler_fsk は通信チャネルの一部として HDL スクランブラーを使用します。

この例を実行するには、次の製品が必要です。

  • MATLAB

  • Simulink

  • Communications Toolbox

  • HDL Verifier

  • ケイデンス Xcelium ソフトウェア

HDL の実装と検証

scrambler_frameモデルは、6 次スクランブラーの HDL 実装の検証を示しています。手書きの HDL コードは、Communications Toolbox™の Scrambler ブロックの動作を複製することを目的としています。ここでは、EDA Simulator Link™ ソフトウェアを検証ツールとして使用し、HDL スクランブラーとCommunications Toolboxスクランブラーの機能的同等性をテストします。

モデルはバイナリ シーケンスを生成し、同時にそれを HDL 実装と元のSimulink®ブロックに駆動します。Communications Toolboxの Descrambler ブロックの 2 つのコピーは、2 つのスクランブラーの出力から元のデータ ストリームを再構成するために使用されます。出力は入力データ シーケンスと比較され、Error Calculation ブロックを使用してスクランブラー間の違いによって生じる可能性のある不一致が検出されます。HDL Cosimulation ブロックは常にデータを 1 フレーム遅延させるため、比較が有効になるように他のすべてのブランチのデータを遅延させます。

HDL スクランブラー ブロックによるチャネルエンコーディング

scrambler_fskモデルは、通信チャネルの一部としてのスクランブラーの使用を示しています。対象のブロックは、HDL で実装され、 HDL VerifierソフトウェアによってSimulinkと協調シミュレーションされた 6 次スクランブラーです。これは、 Communications Toolboxの Scrambler ブロックと機能的に同等であることが以前に検証されています。Descrambler ブロックはCommunications Toolboxからのもので、これもオーダー 6 です。このチャネルは、フレームあたり 11 ビットと BCH 11->31 ビットのエンコード (および反対の BCH 31-->11 ビットのデコード) を使用します。このエンコード方法は、理論的には最大 5 ビットの反転されたバースト エラーを修正できます。データは、6 連続ビットのバースト エラーを伴うチャネルを通過します (つまり、各フレームの 11 ビットのうち 6 ビットが反転されます)。

その後、データは 2 値 FSK 変調器および復調器ブロックと、信号対雑音比が非常に高いガウスチャネルを使用して送信されるため、ほとんどすべてのエラーはバースト エラーであり、ガウス ホワイト ノイズ エラーではないと想定されます。反転されたビットの位置は、各フレームでランダムに選択されます。現在のエンコード構成では 6 ビットが反転されたときにすべてのエラーを修正できないため、データをデコードした後にいくつかのエラーが発生し、BER (ビット誤り率) がゼロになりません。モデルには 2 つのチャネルが含まれています。1 つは Scrambler / Descrambler ブロックを含み、もう 1 つは含まれていません。私たちのモデルの場合、通信チャネルの一部として Scrambler / Descrambler ブロックを使用すると、BER が改善される (低くなる) ことは明らかです。