Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

チャネルの可視化

Communications Toolbox™ の以下のチャネル モデリング System object およびブロックには、フェージング チャネルの特性を可視化するオプションが含まれます。

チャネル可視化オプションを使用して、インパルス応答と周波数応答を個別に表示したり、1 つのプロット ウィンドウで左右に並べて表示したりできます。ドップラー スペクトルを表示することもできます。フェージング チャネルとそれらをモデル化するために使用できる機能の詳細については、フェージング チャネルを参照してください。

メモ

  • プロット ウィンドウでは、表示されるパス ゲインの位置と指定されたパス ゲインの位置が、最大で入力サンプル時間の 5% 異なる場合があります。

  • MIMO チャネルの場合、アンテナ選択プロパティが Off 以外の値に設定され、指定された送受信ペアが現在のフレーム伝送に選択されていない場合、何も表示されません。SISO チャネルに対しては、アンテナの選択は適用されません。

  • チャネルの可視化プロットを閉じると、チャネル モデルは通常の速度で実行されます。

  • コード生成は、可視化プロパティが Off に設定されている場合のみ使用可能です。

インパルス応答プロット

インパルス応答プロットは、パス ゲインとチャネル フィルター係数を表示します。パス ゲインは、指定されたパス遅延に対応する時点で発生し、入力サンプリング時間とは一致しない場合があります。実装では、実際のパス ゲインからチャネル フィルター係数を内挿し、係数を使用してチャネルをモデル化し、係数を入力サンプリング時間に合わせて並べます。パス ゲインがサンプリング時間と一致する場合、それらはチャネル フィルター係数と一部重なり合います。

次のプロットは、サンプル タイミングと一致するパス ゲインで構成されたレイリー フェージング チャネルのインパルス応答を示しています。パス ゲインはチャネル フィルター係数と一部重なり合い、係数は均等に分布します。

次のプロットは、サンプル タイミングと一致しないパス ゲインで構成されたレイリー フェージング チャネルのインパルス応答を示しています。パス ゲインはチャネル フィルター係数と重なり合いませんが、係数は依然として均等に分布します。実装では、係数の内挿をオーバーサンプリングして、目的のパス ゲインを忠実に再現します。

次のプロットは、周波数フラットなチャネルのインパルス応答を示しています。周波数フラットなチャネルは 1 つの係数で表現されます。内挿は必要ありません。

周波数応答プロット

周波数応答プロットは、チャネル フィルター係数の離散フーリエ変換を取得してチャネル スペクトルを表示します。MIMO の場合、この変換は指定した送信/受信アンテナ ペアに対して実行されます。既定の設定では、箱型ウィンドウを使用します。ウィンドウの長さは、チャネル モデルの構成に従って設定されます。プロットの y 軸の範囲は、正規化された平均パス ゲイン値に基づいて計算されます。

次のプロットは、周波数選択性チャネルの周波数応答プロットを示しています。

インパルス応答および周波数応答プロット

インパルス応答および周波数応答プロットは、左側のサブプロットにパス ゲインとチャネル フィルター係数を表示し、右側のサブプロットに周波数応答を表示します。

次のプロットは、サンプル タイミングと一致するパス ゲインで構成されたレイリー フェージング チャネルのインパルス応答と周波数応答を示しています。

ドップラー スペクトル プロット

ドップラー スペクトル プロットには、理論上のドップラー スペクトルと経験的に決定されたデータ点の両方が表示されます。内部バッファーがフィルター処理されたガウス サンプルで完全に満たされた場合、経験的プロットは更新されます。経験的プロットは、満たされた各バッファーから計算されたスペクトルのランニング平均です。次の更新が表示される前に必要なサンプル数は、サンプル レートと最大ドップラー シフトの関数です。

次のプロットは、Jakes ドップラー スペクトルを含むチャネルを示しています。

静的チャネルでは、ドップラー スペクトルが 1 点に縮約されます。プロット ウィンドウの下部ツール バーには、Reset fading channel for next update というメッセージが表示されます。

チャネル可視化の例

さまざまなフェージング チャネルでの FSK 変調の適用

FSK 信号をレイリー マルチパス フェージング チャネル経由で渡します。信号帯域幅を変更して、フェージング チャネルの影響を FSK スペクトルで観察します。

フラット フェージング チャネル

変調次数を 4、変調後のシンボル レートを 45 bps、周波数分離を 200 Hz に、それぞれ設定します。

M = 4;           % Modulation order
symbolRate = 45; % Symbol rate (bps)
freqSep = 200;   % Frequency separation (Hz)

シンボルあたりのサンプル数パラメーター sampPerSym を、変調次数、周波数分離およびシンボル レートの関数として計算します。出力信号のエイリアシングを回避するには、sampPerSymsymbolRate の積が MfreqSep の積より大きくなければなりません。FSK 出力信号のサンプルレートを計算します。

sampPerSym = ceil(M*freqSep/symbolRate);
fsamp = sampPerSym*symbolRate;

FSK 変調器を作成します。

fskMod = comm.FSKModulator(M, ...
    FrequencySeparation=freqSep, ...
    SamplesPerSymbol=sampPerSym, ...
    SymbolRate=symbolRate);

3 パス フェージング チャネルのパス遅延と平均パス ゲインを設定します。

pathDelays = [0 3 10]*1e-6; % Discrete delays (s)
avgPathGains = [0 -3 -6];   % Average path gains (dB)

慣例により、最初のパスの遅延は一般にゼロに設定されます。それ以降のパスの場合、1 マイクロ秒の遅延はパス長では 300 m の違いに相当します。チャネルの平均遅延プロファイルは、パス遅延とパス ゲインの影響を受けます。

定義されたパラメーターを使用してレイリー チャネルを作成します。Visualization プロパティを設定して、インパルス応答と周波数応答を表示します。

channel = comm.RayleighChannel( ...
    SampleRate=fsamp, ...
    PathDelays=pathDelays, ...
    AveragePathGains=avgPathGains, ...
    MaximumDopplerShift=0.01, ...
    Visualization='Impulse and frequency responses', ...
    SamplesToDisplay='10%');

ランダム データ シンボルを生成して FSK 変調を適用します。

data = randi([0 3],2000,1);
modSig = fskMod(data);

FSK 変調信号とフラット フェージング チャネル フィルター処理後の受信信号をプロットするスペクトル アナライザー オブジェクトを作成します。

sa1 = spectrumAnalyzer( ...
    SampleRate=fsamp, ...
    ChannelNames=["FSK modulated signal", ...
        "Flat fading channel"]);

変調信号は、200 Hz で区切られ、それぞれが約 20 dBm のピーク強度をもつ 4 つのトーンで構成されています。

信号をレイリー フェージング チャネルを通して渡し、25 dB の S/N 比をもつ AWGN を適用します。

snrdB = 25;
raylFadedData = channel(modSig);

rxSig = awgn(raylFadedData,snrdB);

インパルス応答と周波数応答から、チャネルがフラットであるかのように動作していることが分かります。このようにフラットな応答になるのは、信号帯域幅 800 Hz がコヒーレンス帯域幅 50 kHz よりもはるかに小さいためです。

チャネル フィルター処理の前と後で、FSK 変調信号の信号スペクトルをプロットします。FSK 信号で構成される 4 つのトーンは、同一の周波数分離とピーク強度レベルを互いに相対するように維持します。絶対ピーク強度レベルは、フェージング チャネルによって低下しています。

sa1(modSig,rxSig)
release(sa1)

周波数選択性フェージング

シンボル レートを 45 kbps、周波数分離を 200 kHz に上げます。シンボルあたりのサンプル数とサンプルレート パラメーターの新しい値を計算します。FSK 変調器オブジェクトを解放し、その構成を更新します。

symbolRate = 45e3;
freqSep = 200e3;

release(fskMod)
fskMod.SymbolRate = symbolRate;
fskMod.FrequencySeparation = freqSep;

FSK 変調信号と周波数選択性フェージング チャネル フィルター処理後の受信信号をプロットするスペクトル アナライザー オブジェクトを作成します。

sampPerSym = ceil(M*freqSep/symbolRate);
sa2 = spectrumAnalyzer( ...
    SampleRate=sampPerSym*symbolRate, ...
    ChannelNames=["FSK modulated signal", ...
        "Frequecy-selective fading channel"]);

送信データに FSK 変調を適用します。

modSig = fskMod(data);

チャネル オブジェクトを解放し、チャネルのサンプル レート プロパティを更新します。レイリー フェージング チャネルを通して信号を渡し、AWGN を適用します。インパルス応答と周波数応答から、マルチパス フェージングが周波数選択的であることが分かります。

release(channel)
fsamp = sampPerSym*symbolRate;
channel.SampleRate = fsamp;

rxSig = awgn(channel(modSig),25);

チャネル フィルター処理の前と後で、FSK 変調信号の信号スペクトルをプロットします。スペクトルの形状はフラット フェージングの場合と同じですが、今度は 4 つのトーンが 200 kHz で区切られています。4 つのトーンはまだ識別可能ですが、周波数選択性フェージングによって、トーンの相対的なピーク強度レベルが異なっています。800 kHz の信号帯域幅が、50 kHz のコヒーレンス帯域幅よりも大きくなっています。

sa2(modSig,rxSig)
release(sa2)

フェージング チャネルの QPSK 変調

QPSK 信号をレイリー マルチパス フェージング チャネル経由で渡します。信号帯域幅を変更して、フェージング チャネルの影響を QPSK コンスタレーションで観察します。

フラット フェージングの QPSK 変調

シンボル レート パラメーターを 500 bps に設定します。

symbolRate = 500;

ランダム データ シンボルを生成して QPSK 変調を適用します。

data = randi([0 3],10000,1);
modSig = pskmod(data,4,pi/4,'gray');

フェージング チャネルのパス遅延と平均パス ゲインを設定します。

pathDelays = [0 3 10]*1e-6; % Discrete delays of three-path channel (s)
avgPathGains = [0 -3 -6];   % Average path gains (dB)

慣例により、最初のパスの遅延は一般にゼロに設定されます。それ以降のパスの場合、1 マイクロ秒の遅延はパス長では 300 メートルの違いに相当します。チャネルの平均遅延プロファイルは、パス遅延とパス ゲインの影響を受けます。

定義されたパラメーターを使用してレイリー チャネルを作成します。Visualization プロパティを設定して、インパルス応答と周波数応答を表示します。

fsamp = symbolRate;
channel = comm.RayleighChannel( ...
    SampleRate=fsamp, ...
    PathDelays=pathDelays, ...
    AveragePathGains=avgPathGains, ...
    MaximumDopplerShift=0.01, ...
    Visualization="Impulse and frequency responses");

レイリー チャネルを通して信号を渡し、AWGN を適用します。

rxSig = awgn(channel(modSig),25);

インパルス応答と周波数応答から、チャネルがフラットであるかのように動作していることが分かります。これは、信号帯域幅 500 Hz がコヒーレンス帯域幅 50 kHz よりもはるかに小さいためです。あるいは、チャネルの遅延スパン (10 マイクロ秒) が QPSK シンボル周期 (2 ミリ秒) よりもはるかに小さいため、結果として得られる帯域制限インパルス応答がほぼフラットになっています。

コンスタレーションをプロットします。

constDiagram = comm.ConstellationDiagram;
constDiagram(rxSig)

QPSK コンスタレーションは、フェージング チャネルの影響を示します。しかし、信号には依然として 4 つの識別可能な状態があります。

周波数選択性フェージングの QPSK 変調

シンボル レートを 500 kbps に増やし、関連するチャネル プロパティを更新します。レイリー チャネルを通して信号を渡し、AWGN を適用します。

symbolRate = 500e3;

release(channel)
channel.SampleRate = symbolRate;

rxSig = awgn(channel(modSig),25);

インパルス応答と周波数応答から、マルチパス フェージングが周波数選択的であることが分かります。

コンスタレーションをプロットします。

constDiagram(rxSig)

信号帯域幅が 500 Hz から 500 kHz に増加すると、信号は大きく歪みます。この歪みは、広帯域信号の時間分散から生じる符号間干渉 (ISI) によるものです。チャネルの遅延スパン (10 マイクロ秒) が QPSK シンボル周期 (2 マイクロ秒) よりも大きくなったため、結果として得られる帯域制限インパルス応答がフラットではなくなります。あるいは、信号帯域幅がコヒーレンス帯域幅 50 kHz よりもはるかに大きくなります。

参考

ブロック

オブジェクト