メインコンテンツ

M-PSK Demodulator Baseband

PSK 変調データの復調

  • M-PSK Demodulator Baseband block

ライブラリ:
Communications Toolbox / Modulation / Digital Baseband Modulation / PSK
Communications Toolbox HDL Support / Modulation / PM

説明

M-PSK Demodulator Baseband ブロックは、PSK 変調された信号のベースバンド表現を復調します。変調次数 M は、信号コンスタレーション点数に相当し、[M-ary 数] パラメーターにより決定されます。このブロックは、スカラーまたは列ベクトルの入力信号を受け入れます。

すべて展開する

ノイズを含む 8-PSK 信号を生成および復調します。

doc_8psk_model モデルを開きます。モデルは、Random Integer Generatorブロックを使用してランダム データを生成します。ランダム データを変調するため、モデルは、変調次数が 8 で、コンスタレーション順序がグレイ符号に設定されたM-PSK Modulator Basebandブロックを使用します。その後、変調されたデータは、加法性ホワイト ガウス ノイズ チャネル (AWGN Channelブロック) を通過します。モデルは、ノイズを含むコンスタレーションをConstellation Diagramブロックで表示します。ノイズを含むこの信号を復調するため、モデルは、変調器と同じ変調次数とコンスタレーション順序が設定されたM-PSK Demodulator Basebandブロックを使用します。最後に、モデルは、Error Rate Calculationを使用して誤り統計を計算します。

モデルを実行します。

誤り統計をベクトル ErrorVec に収集します。Eb/No が 15 dB のときにシンボル エラーの数が 0 であることを確認します。

Number of symbol errors = 0

AWGN Channel ブロックの Eb/No を 15 dB から 5 dB に変更します。コンスタレーション ダイアグラムを見ると、ノイズが増えていることが分かります。

ノイズ レベルが増加しているため、シンボル エラーの数は 0 より大きくなります。

Number of symbol errors = 21

この例では、doc_gray_code を使用して、M-PSK 変調のビット エラー レート (BER) とシンボル エラー レート (SER) を計算します。AWGN 環境下での M-PSK 変調の理論上のエラー レート性能を、グレイ符号シンボル マッピングのエラー レート性能およびバイナリ符号シンボル マッピングのエラー レート性能と比較します。

Random Integer Generator ブロックはソースとして機能し、整数のシーケンスを生成します。Integer to Bit Converter ブロックは、各整数を対応するバイナリ表現に変換します。doc_gray_code モデルのM-PSK Modulator Basebandブロックは、次を行います。

  • [0, (M - 1] の範囲の整数を表すバイナリ値の入力を受け入れる。ここで、M は変調次数です。

  • グレイ符号の順序付けを使用して、バイナリ表現をコンスタレーション点に割り当てる。

  • [0, (2 $\pi$ (M - 1) / M)] の範囲の等間隔の位相をもつ、単位振幅の複素フェーザ出力を生成する。

AWGN Channel ブロックは、変調されたデータにホワイト ガウス ノイズを付加します。M-PSK Demodulator Baseband ブロックは、ノイズを含むデータを復調します。Bit to Integer Converter ブロックは、各バイナリ表現を、対応する整数に変換します。次に、2 つの個別のError Rate Calculationブロックが、復調されたデータのエラー レートを計算します。"SER Calculation" というラベルの付いたブロックは整数データを比較してシンボル エラー レートの統計を計算し、"BER Calculation" というラベルの付いたブロックはビット データを比較してビット エラー レートの統計を計算します。Error Rate Calculation ブロックの出力は、計算されたエラー レート、観察された誤り数、および処理されたデータ量を含む 3 要素ベクトルになります。

シミュレーションの実行時間を短縮し、かつ Eb/N0 比が増加してもエラーの統計値が確実に安定するように、モデルは 100 個のエラーが発生するか 1e8 ビットが送信されるまで実行するように構成されています。

モデルは、コールバック関数 PreLoadFcn を使用して、ブロック パラメーターの構成に使用する変数を初期化します。詳細については、モデル コールバック (Simulink)を参照してください。

エラー レート曲線の生成

関数berawgnを使用して、AWGN 環境下での非差分 8-PSK の理論上の BER を Eb/N0 値の範囲にわたって計算します。グレイ符号シンボル マッピングを使用し、同じ範囲の Eb/N0 値にわたって doc_gray_code モデルをシミュレーションします。

"Constellation orders" パラメーターを Gray ではなく Binary に設定するように M-PSK Modulator Baseband ブロックと M-PSK Demodulator Baseband ブロックを変更して、グレイ符号化とバイナリ符号化を比較します。バイナリ符号シンボル マッピングを使用し、同じ範囲の Eb/N0 値にわたって doc_gray_code モデルをシミュレーションします。

関数semilogyを使用して結果をプロットします。グレイ符号システムは、バイナリ符号システムよりも優れたエラー レート性能を実現します。さらに、グレイ符号のエラー レートは、理論上のエラー レート統計と一致しています。

端子

入力

すべて展開する

入力端子。PSK 変調された信号のベースバンド表現を受け入れます。

この端子は、Var 端子を有効にするまで、ブロックで名前なしになります。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean

ノイズ分散の推定。正のスカラーとして指定します。

メモ

厳密な LLR アルゴリズムは有限の精度演算で指数を計算します。計算に非常に大きな正または負の振幅が含まれる場合、厳密な LLR アルゴリズムの結果は次のようになります。

  • ノイズ分散が極度に大きい値の場合は、Inf または -Inf

  • ノイズ分散と信号強度の両方が非常に小さい値の場合は NaN

近似 LLR アルゴリズムでは指数が計算されません。近似 LLR アルゴリズムを使用することによって、Inf-Inf、および NaN の結果を回避できます。

依存関係

このパラメーターは、[ノイズ分散ソース][端子] に設定した場合に適用されます。

データ型: double | single

出力

すべて展開する

出力信号。スカラーまたはベクトルとして返されます。出力は PSK 変調された信号を復調したものです。

データ型: single | double | fixed point

パラメーター

すべて展開する

ブロック パラメーターを対話的に編集するには、プロパティ インスペクターを使用します。Simulink® ツールストリップの [シミュレーション] タブの [準備] ギャラリーで [プロパティ インスペクター] を選択します。

メイン

変調次数を正の 2 の整数乗として指定します。

例: 2 | 16

入力信号の要素を整数またはビットとして指定します。[出力タイプ][ビット] にした場合、フレームあたりのサンプル数は、シンボルあたりのビット数 log2(M) の整数倍です。

復調器出力を硬判定、対数尤度比 (LLR) または近似 LLR に指定します。LLR 出力および近似 LLR 出力を、Viterbi Decoder などの軟判定入力をサポートするエラー復号化器とともに使用して、優れたパフォーマンスを実現します。詳細については、アルゴリズムを参照してください。

[対数尤度比][近似対数尤度比] の判定タイプの出力値は、入力値と同じデータ型です。

依存関係

このパラメーターは、[出力タイプ]Bit に設定した場合に適用されます。

ノイズ分散推定のソース。次のいずれかのオプションとして指定します。

  • [ノイズ分散] パラメーターを使用してノイズ分散を定義するには、このパラメーターを [ダイアログ] に設定します。

  • Var 端子を使用してノイズ分散を定義するには、このパラメーターを [端子] に設定します。

ノイズ分散の推定のソースを指定します。

  • ダイアログ ボックスでノイズ分散を指定するには、[Dialog] を選択します。

  • 入力端子からノイズ分散を入力するには、[Port] を選択します。

依存関係

このパラメーターは、[判定タイプ][対数尤度比] または [近似対数尤度比] に設定した場合に適用されます。

ノイズの分散の推定を正のスカラーとして指定します。

このパラメーターはすべてのシミュレーション モードで調整可能です。Simulink Coder™ ラピッド シミュレーション (RSIM) ターゲットを使用して RSIM 実行可能ファイルを作成する場合は、モデルを再コンパイルせずにパラメーターを調整できます。再コンパイルの回避は、異なる量のノイズでシミュレーションを複数回 (おそらく複数のコンピューターで) 実行するモンテ カルロ シミュレーションに便利です。

メモ

厳密な LLR アルゴリズムは有限の精度演算で指数を計算します。計算に非常に大きな正または負の振幅が含まれる場合、厳密な LLR アルゴリズムの結果は次のようになります。

  • ノイズ分散が極度に大きい値の場合は、Inf または -Inf

  • ノイズ分散と信号強度の両方が非常に小さい値の場合は NaN

近似 LLR アルゴリズムでは指数が計算されません。近似 LLR アルゴリズムを使用することによって、Inf-Inf、および NaN の結果を回避できます。

調整可能: Yes

依存関係

このパラメーターは、[ノイズ分散ソース][ダイアログ] に設定した場合に適用されます。

整数または log2(M) ビットのグループを対応するシンボルにマッピングする方法を指定します。

  • [Constellation ordering][グレイ] に設定した場合、出力シンボルはグレイ符号化された信号コンスタレーションを使用して入力信号にマッピングされます。

  • [Constellation ordering][バイナリ] に設定した場合、変調されたシンボルは ej(ϕ+2πm/M) となります。ここで、ϕ は位相オフセット (ラジアン)、m0 ≤ m ≤ M – 1 となる整数出力、M は変調次数です。

  • [Constellation ordering][ユーザー定義] に設定した場合は、範囲 [0, M–1] の一意の整数値をもつサイズ M のベクトルを指定します。このベクトルの最初の要素は e の値をもつコンスタレーション点に対応し、続く要素は反時計回りに実行されます。

例: QPSK コンスタレーションの場合は [0 3 2 1]

入力整数が出力整数にマッピングされるときの次数を指定します。このパラメーターは [Constellation ordering][ユーザー定義] のときに使用可能で、範囲が [0, M – 1] の一意の整数値をもつサイズ M の行または列ベクトルでなければなりません。

このベクトルの最初の要素は (0 + ϕ) の角度にあるコンスタレーション点に対応し、続く要素は反時計回りに順次対応します。最後の要素は、(–2π/M + ϕ) のコンスタレーション点に対応します。ϕ はラジアン単位の位相オフセット ([位相オフセット (rad)]) であり、M は変調次数 ([M-ary 数]) です。

依存関係

このパラメーターは、[Constellation ordering][ユーザー定義] に設定すると適用されます。

初期コンスタレーションの位相オフセット (ラジアン)。スカラーとして指定します。

例: pi/4

データ型

復号された出力信号のデータ型を指定します。

データ型の指定に関する詳細については、データ型アシスタントを参照してください。

ブロックの特性

データ型

Boolean | double | fixed pointa, b, c | integer | single

多次元信号

なし

可変サイズの信号

あり

a M = 2, 4, 8 のみ。

b 固定小数点入力は符号付きでなければなりません。

c [ハードウェア実行] ペインで [ASIC/FPGA] が選択されている場合、ビット出力は ufix(1)、整数出力は ufix(ceil(log2(M))) になります。

詳細

すべて展開する

アルゴリズム

すべて展開する

参照

[1] Proakis, John G. Digital Communications. 4th ed. New York: McGraw Hill, 2001.

拡張機能

すべて展開する

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2006a より前に導入