Main Content

このページは前リリースの情報です。該当の英語のページはこのリリースで削除されています。

周波数選択性フェージングの影響の可視化

フェージング チャネルにおける FSK 変調

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);

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

pathDelays = [0 3 10]*1e-6; % Discrete delays of three-path channel (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 変調した信号のスペクトルをプロットします。

spectrum = dsp.SpectrumAnalyzer('SampleRate',fsamp);
spectrum(modSig)

Figure Spectrum Analyzer contains an axes object and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes object contains an object of type line. This object represents Channel 1.

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

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

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

Figure Frequency Response contains an axes object and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes object contains 2 objects of type text, line. This object represents Channel 1.

Figure Impulse Response contains an axes object and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes object contains 3 objects of type stem, text. These objects represent Path Gain, Channel Filter Coefficient.

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

受信信号スペクトルをプロットします。

spectrum(rxSig)

Figure Spectrum Analyzer contains an axes object and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes object contains an object of type line. This object represents Channel 1.

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

周波数選択性フェージングにおける FSK 変調

シンボル レートを 45 kbps、周波数分離を 200 kHz に上げます。シンボルあたりのサンプル数とサンプルレート パラメーターの新しい値を計算します。

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

FSK 変調器のプロパティを更新します。

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

スペクトル アナライザー のサンプルレート プロパティ sa.SampleRate を更新します。FSK 変調を適用し、結果として得られるスペクトルをプロットします。

release(spectrum)
spectrum.SampleRate = sampPerSym*symbolRate;

modSig = fskMod(data);
spectrum(modSig)

Figure Spectrum Analyzer contains an axes object and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes object contains an object of type line. This object represents Channel 1.

スペクトルの形状はフラット フェージングの場合と同じですが、今度は 4 つのトーンが 200 kHz で区切られています。

チャネルのサンプルレート プロパティを更新します。レイリー フェージング チャネルを通して信号を渡し、AWGN を適用します。

release(channel)
channel.SampleRate = fsamp;

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

Figure Impulse Response contains an axes object and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes object contains 3 objects of type text, stem. These objects represent Path Gain, Channel Filter Coefficient.

Figure Frequency Response contains an axes object and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes object contains 2 objects of type text, line. This object represents Channel 1.

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

受信信号スペクトルをプロットします。

spectrum(rxSig)

Figure Spectrum Analyzer contains an axes object and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes object contains an object of type line. This object represents Channel 1.

4 つのトーンはまだ識別可能ですが、周波数選択性フェージングによって、トーンの相対的なピーク強度レベルが異なっています。信号帯域幅 800 kHz は、コヒーレンス帯域幅 50 kHz より大きくなっています。

フェージング チャネルにおける 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 m の違いに相当します。チャネルの平均遅延プロファイルは、パス遅延とパス ゲインの影響を受けます。

定義されたパラメーターを使用してレイリー チャネルを作成します。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 よりはるかに大きくなります。