Main Content

フレーム同期を使用した有効な伝送データの検出

以下の例では、Stateflow® チャートで複素数データを処理する方法を説明します。モデルは複素数データのベクトルを使用して、通信システムからの信号に見られる固定パターンを検出します。

フレーム同期

通信システムでは、フレーム同期は、データ フレームで構成される伝送で有効なデータを検出する方式です。フレーム同期を支援するため、送信側は各データ フレームの先頭に固定データ パターンを挿入して、有効なデータの開始を示します。受信側は固定パターンを検索して、入力データと固定パターンの相関が高い場合に、フレーム同期を実施します。

この例では Stateflow チャート Frame Sync Controller は複素数の入力信号 IQ を受け取り、固定データ パターン trainSig を検索します。データ フレームの開始を認識した後、チャートは有効なデータを複素数の出力信号 frame に格納します。この出力信号は、有効なデータ ポイントと搬送波の位相角間の複素数積のベクトルです。その後、チャートは有効なデータを Frame Processor サブシステムに渡します。

このモデルには通信システムの残りの部分は含まれないことに注意してください。

データ フレームの同期

Frame Sync Controller チャートの look_for_sync ステートは、フレーム同期アルゴリズムを開始します。各タイム ステップで、MATLAB® 関数 correlate が入力信号 IQ と固定データ パターン trainSig の相関を計算します。関数は複素数相関を corr、その絶対値を corrAbs として保存します。corrAbs の値は相関のパーセンテージであり、範囲は 0 から 100 パーセントになります。0 パーセントには相関がありません。100 パーセントは完全相関を示します。

  • corrAbs が 50 パーセントを上回った場合は相関が高く、チャートはデータ フレームの開始点を記録します。チャートは get_payload ステートに遷移して、220 の有効なデータ点を複素数ベクトル frame に保存します。

  • corrAbs が 300 の連続データ点にわたり 50 パーセント未満にとどまった場合、フレームの同期アルゴリズムがリセットされます。チャートは frame_out ステートに遷移して、Frame Processor サブシステムをトリガーします。その後、チャートは look_for_sync ステートに戻ります。

スカラー データのベクトルへの保存

Frame Sync Controller チャートがデータ フレームの開始を認識すると、get_payload ステートは MATLAB 関数 get_carrier_phase を呼び出して搬送波の位相角を計算します。ステートはこの位相角をローカル データ オブジェクト phasor として保存します。その後、ステートは IQ*phasor の積のスカラー値をベクトル frame に集めます。インデックス カウンターとして余分な変数を使用しなくてもよいように、このステートは count 演算子を使ってこのベクトルにインデックス付けを行います。

  • ステートがアクティブになると、entry アクションは frame の最初の要素に積の初期値を保存します。

  • 後続するタイム ステップでは、during アクションはこの積の以降の値を frame の連続する要素に保存します。インデックス式 count(true) は、ステートがアクティブになってからのタイム ステップ数を返します。

220 タイム ステップ後、遷移条件 [after(220,tick)]true になり、チャートはステートから出ます。チャートが frame_out ステートに入る時点で、ベクトル frame には 220 個の積の値が含まれています。チャートはこのデータを Frame Processor サブシステムに渡し、その後 look_for_sync ステートに戻ります。

参考

|

関連するトピック