Main Content

M-PSK Demodulator Baseband

PSK 変調データの復調

  • M-PSK Demodulator Baseband block

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

説明

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

すべて展開する

doc_8psk_model モデルを開くには、[モデルを開く] ボタンを使用します。モデルは、8-PSK 信号を生成し、ホワイト ノイズを適用して結果のコンスタレーション ダイアグラムを表示し、誤り統計を計算します。

モデルを実行します。

誤り統計をベクトル ErrorVec で収集します。Eb/No が 15 dB であるため、測定されたシンボルの誤りはありません。

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 変調された信号のベースバンド表現を受け入れます。

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

出力

すべて展開する

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

データ型: single | double | fixed point

パラメーター

すべて展開する

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

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

例: 2 | 16

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

復調器出力を硬判定、対数尤度比 (LLR) または近似 LLR に指定します。LLR 出力および近似 LLR 出力を、Viterbi Decoder などの軟判定入力をサポートするエラー復号化器とともに使用して、優れたパフォーマンスを実現します。このパラメーターは、[Output type]Bit のときに使用できます。

アルゴリズムの詳細については、位相変調を参照してください。[Log-likelihood ratio][Approximate log-likelihood ratio] の判定タイプの出力値は、入力値と同じデータ型です。

ノイズ分散の推定のソースを指定します。このパラメーターは、[Decision type][Log-likelihood ratio] または [Approximate log-likelihood ratio] の場合に使用できます。

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

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

ノイズの分散の推定を正のスカラーとして指定します。このパラメーターは、[Noise variance source][Dialog] の場合に使用できます。

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

メモ

厳密な LLR アルゴリズムは有限の精度演算で指数を計算します。非常に大きな正または負の振幅による指数の計算では、以下が得られることがあります。

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

  • ノイズ分散および信号強度の両方が極度に小さい値である場合は、NaN

出力でこれらの値のいずれかが返される場合は、近似 LLR アルゴリズムの使用を試してください。このアルゴリズムでは指数が計算されないためです。

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

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

  • [Constellation ordering][Binary] に設定されている場合、変調されたシンボルは exp(jϕ+j2πm/M) となります。ここで、ϕ は位相オフセット (ラジアン)、m は 0 ≤ m ≤ M – 1 となる整数出力、M は変調次数です。

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

例: [0 3 2 1]

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

このベクトルの最初の要素は 0 + [Phase offset] の角度にあるコンスタレーション点に対応し、続く要素は反時計回りに実行されます。最後の要素は -2π/M + [Phase offset] のコンスタレーション点に対応します。

初期コンスタレーションの位相オフセットをラジアン単位の実数スカラーで指定します。

例: pi/4

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

[データ型アシスタント] は、データ属性の設定を支援します。[データ型アシスタント] を使用するには、[データ型アシスタントを表示] をクリックします。詳細については、データ型アシスタントを利用したデータ型の指定 (Simulink)を参照してください。

ブロックの特性

データ型

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 より前に導入