Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

Simulink を使用した 256-QAM の調査

この例では、Simulink® を使用して直交振幅変調 (QAM)、加法性ホワイト ガウス ノイズ (AWGN) チャネル、および位相ノイズによる通信システムをモデル化する方法を示します。このモデルは、256-QAM 信号のコンスタレーション ダイアグラムを表示し、誤り率の計算を実行します。

概要

cm_commphasenoise モデルでは、256-QAM 信号に対する AWGN と位相ノイズの影響をシミュレートします。この Simulink モデルは、ランダム信号を生成し、QAM を使用してそれを変調し、AWGN と位相ノイズを信号に追加し、その信号を復調する通信システムの数学的モデルのグラフィカル表現です。モデルには、ビット誤り率、および変調信号のコンスタレーション ダイアグラムを表示するブロックも含まれます。

  • Bernoulli Binary Generator ブロックは、[0, 255] の範囲の一連の 8 ビット バイナリ値で構成される信号を生成します。

  • Rectangular QAM Modulator Baseband ブロックは、ベースバンド 256 値 QAM を使用して信号を変調します。

  • AWGN Channel ブロックは、ホワイト ガウス ノイズを変調信号に追加することでノイズの多いチャネルをモデル化します。

  • Phase Noise ブロックは、複素数の入力の信号の角度にノイズを追加します。

  • Rectangular QAM Demodulator Baseband ブロックは、信号を復調します。

モデル内の追加のブロックはシミュレーションの解釈に役立ちます。

  • Constellation Diagram ブロックには、AWGN と位相ノイズが追加された信号のコンスタレーション ダイアグラムが表示されます。

  • Error Rate Calculation ブロックは、受信信号と送信信号の間で異なるビット数をカウントします。

  • outputErr というラベルの付いた To Workspace ブロックは、結果をプロットしているときに使用するワークスペースに結果を出力します。Display BER Plot ブロックは、さまざまなレベルの位相ノイズにおける 256-QAM の送信と受信の Eb/N0 性能曲線を表示するビット誤り率 (BER) プロットを開きます。

デジタル変調

このモデルでは、デジタル信号を複素信号に変換する方法の 1 つである QAM をシミュレートします。モデルは、信号のコンスタレーションと呼ばれる複素平面内の格子上の点にある複素数シーケンスに信号を変調します。これらの点のプロットを信号の "散布図" または "コンスタレーション ダイアグラム" と呼びます。

ここに表示されているコンスタレーション ダイアグラムには、AWGN および AWGN と位相ノイズが追加されたベースバンド 256 値 QAM が表示されています。追加されたノイズのため、このコンスタレーション ダイアグラム上の点は、図に示したコンスタレーション上の位置とは正確に一致しません。位相ノイズによって複素変調信号の角度が変わり、コンスタレーション点が放射線状の変位になっています。

シミュレーションの実行

モデルの既定の構成では、実行時間は inf に設定されています。Error Rate Calculation ブロックは、誤りが 100 個発生するまで実行を継続するように構成されています。誤りが 100 個発生する前にシミュレーションを停止するには、[シミュレーション] タブで [停止] をクリックします。

誤り率の表示

Display ブロックは、AWGN チャネルと位相ノイズが原因で発生する誤り数を表示します。シミュレーションを実行すると、ブロック内に 3 つの小さなボックスが表示され、Error Rate Calculation ブロックのベクトル出力が示されます。

  • 1 番目のエントリは、BER です。

  • 2 番目のエントリは、誤りの合計数です。

  • 3 番目のエントリは、比較の合計回数です。

位相ノイズ プロットの表示

位相ノイズ設定の範囲に対して BER 対 Eb/N0 の曲線のシミュレーション結果をプロットする図を表示するには、モデルで Display BER Plot ブロックをダブルクリックします。

その他の調査

パラメーターを設定することで、Simulink ブロックの機能を制御することができます。シミュレーション パラメーターを表示または変更するには、ブロックをダブルクリックしてブロック マスクを開きます。

位相ノイズの量を変更するには、Phase Noise ブロック マスクを開き、[Phase noise level (dBc/Hz)] パラメーターに新しい値を入力します。[OK] をクリックすると新しい設定が適用されます。

ノイズの量を変更するには、AWGN Channel ブロック マスクを開き、[Eb/No (dB)] パラメーターに新しい値を入力します。このパラメーターの値を小さくすると、ノイズ レベルが高くなります。[OK] をクリックすると新しい設定が適用されます。

位相ノイズを小さくして Eb/N0 を大きくすると、モデルからノイズが除去されます。このモデルは誤りが 100 個発生するまで実行を継続するように構成されているため、ノイズが少ないモデルでシミュレーションを実行すると、シミュレーションの実行時間が長くなります。シミュレーションの最大実行時間を制限するには、実行時間を inf から 10 などの小さい値に変更します。

新しい結果を生成するには、変更した設定を使用してシミュレーションを実行します。

別の方法として、パラメーターに変数名を入力することもできます。その後、MATLAB® コマンド ラインで、その変数のワークスペースにおける値を設定します。コマンド ウィンドウでパラメーターを設定すると、異なるパラメーター値を使用して複数のシミュレーションを実行する必要がある場合などに便利です。

また、コールバック関数を使用してシミュレーションを構成することもできます。このモデルのいくつかのパラメーターに対する既定の設定は、PreLoadFcn コールバック関数を使用して設定されます。コールバック関数にアクセスするには、[モデル化] タブで [モデル設定][モデル プロパティ] を選択します。[モデル プロパティ] ダイアログで、[コールバック] タブを選択します。モデル プロパティとコールバック関数の詳細については、モデル コールバック (Simulink)を参照してください。

異なるノイズ レベルでの BER のプロット

この BER のプロットは、[Phase noise level (dBc/Hz)] パラメーターと [Eb/No (dB)] パラメーターにさまざまな値を設定して複数のシミュレーションを実行することで、plot_256qam_ber_curves.m MATLAB® プログラム ファイルから生成したものです。各曲線は、位相ノイズの固定量の S/N 比関数としての BER のプロットです。ビット誤りが 1000 個に達するか 1e8 のビットを比較した時点でシミュレーションを停止し、その時点の BER がプロットされています。入力信号とシミュレーションの損失はランダムであるため、結果は実行するたびに異なります。

関連するトピック