このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Simulink を使用した 256-QAM の調査
この例では、Simulink® を使用して直交振幅変調 (QAM)、加法性ホワイト ガウス ノイズ (AWGN) チャネル、および位相ノイズによる通信システムをモデル化する方法を示します。このモデルは、256-QAM 信号のコンスタレーション ダイアグラムを表示し、ビット エラー レート (BER) の計算を実行します。
概要
cm_commphasenoise
モデルでは、256-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 性能曲線を表示するプロットを開きます。
デジタル変調
このモデルでは、デジタル信号を複素信号に変換する方法の 1 つである QAM をシミュレートします。モデルは、信号コンスタレーションと呼ばれる複素平面内の格子上の点にある複素数シーケンスに信号を変調します。これらの点のプロットを信号の "散布図" または "コンスタレーション ダイアグラム" と呼びます。
ここに表示されているコンスタレーション ダイアグラムには、AWGN および AWGN と位相ノイズが追加されたベースバンド 256 値 QAM が表示されています。追加されたノイズのため、このコンスタレーション ダイアグラム上の点は、図に示したコンスタレーション上の位置とは正確に一致しません。位相ノイズによって複素変調信号の角度が変わり、コンスタレーション点が放射線状の変位になっています。
シミュレーションの実行
モデルの既定の構成では、実行時間は inf
に設定されています。Error Rate Calculation ブロックは、誤りが 100 個発生するまで実行を継続するように構成されています。誤りが 100 個発生する前にシミュレーションを停止するには、[シミュレーション] タブで [停止] をクリックします。
エラー レートの表示
Display ブロックは、AWGN チャネルと位相ノイズが原因で発生する誤り数を表示します。シミュレーションを実行すると、ブロック内に 3 つの小さなボックスが表示され、Error Rate Calculation ブロックのベクトル出力が示されます。ベクトル値は [BER, 誤りの合計数, 比較されたビットの合計数] です。
位相ノイズ プロットの表示
位相ノイズ設定の範囲に対して 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 がプロットされています。入力信号とシミュレーションの劣化要因はランダムであるため、結果は実行するたびに異なります。