メインコンテンツ

stdchan

標準化チャネル モデル セットからのチャネル System object の構築

説明

chan = stdchan(chantype,rs,fd) は指定されている chantype に応じてフェージング チャネル オブジェクト chan を構築します。chantype は、サポートされている標準に示したチャネル モデルから選択されます。rs は入力信号のサンプル レートで、fd は最大ドップラー シフトです。

すべて折りたたむ

サンプルレートと最大ドップラー シフトを設定します。

rs = 20e6;
fd = 3;

典型的な都市部の CDMA チャネル モデル (TUx) のチャネル オブジェクトを作成し、周波数応答の可視化をオンにします。

chan = stdchan('cdmaTUx',rs,fd);
chan.Visualization = 'Frequency response';

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

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

QPSK 信号を CDMA チャネルでフィルター処理します。

y = chan(txSig);

GSM および EDGE シミュレーションに役立つチャネル モデルを作成します。低速の条件と高速の条件で実験します。

パラメーターと System object の構成

フレーム構成の変数を定義します。

M = 8;               % Modulation order, 8-PSK
phaseoffset = 0;     % Phase offset for 8-PSK symbols
Rbit = 9600;         % Input bit rate
Rs = Rbit / log2(M); % Symbol rate
Nsamples = 5e2;      % Number of samples per frame
Nframes = 10;        % Number of frames

低速モバイルのチャネル構成を定義し、6 タップのイコライズ テスト (EQx) プロファイル用の標準チャネル System object を作成します。

v = 10 * 1e3 / 3600;         % Mobile speed (m/s)
fc = 1800e6;                 % Carrier frequency
c = physconst('LightSpeed'); % Speed of light in free space
fd = v * fc / c;   % Maximum Doppler shift of diffuse component

channel = stdchan('gsmEQx6',Rs,fd);
channel.RandomStream = 'mt19937ar with seed'; % For reproducibility
channel.Visualization = 'Impulse and frequency responses';
channel.SamplesToDisplay = '100%';

コンスタレーション ダイアグラム System object を作成します。

refC = pskmod(0:M-1,M,phaseoffset);
constDiagram = comm.ConstellationDiagram( ...
    ReferenceConstellation=refC, ...
    XLimits=[-3 3], ...
    YLimits=[-3 3]);

低速でのシミュレーション

for iFrames = 1:Nframes
    msg = randi([0 M-1],Nsamples,1);
    modSignal = pskmod(msg,M,phaseoffset);
    chanOut = channel(modSignal);
    constDiagram(chanOut);
end

高速でのシミュレーション

チャネル オブジェクトとコンスタレーション ダイアグラム オブジェクトを解放して再構成します。

release(constDiagram);
release(channel);

v = 120 * 1e3 / 3600; % Mobile speed (m/s)
fd = v * fc / c;      % Maximum Doppler shift of diffuse component

channel.MaximumDopplerShift = fd; % Adjust maximum doppler shift

for iFrames = 1:Nframes
    msg = randi([0 M-1],Nsamples,1);
    modSignal = pskmod(msg,M,phaseoffset);
    chanOut = channel(modSignal);
    constDiagram(chanOut);
end

入力引数

すべて折りたたむ

チャネルのタイプ。string または文字ベクトルとして指定します。有効なオプションはサポートされている標準にリストされています。

例: stdchan('gsmRAx6c1',rs,fd) は、サンプルレート rs、最大ドップラー シフト fd を指定して、GSM の農村地域の典型的ケース (RAx)、6 タップ、ケース 1 のチャネル モデルを構成します。

データ型: char | string

サンプルレート (Hz 単位)。スカラーとして指定します。

データ型: double

最大ドップラー シフト (Hz 単位)。スカラーとして指定します。

データ型: double

出力引数

すべて折りたたむ

チャネル オブジェクト。comm.RayleighChannel または comm.RicianChannel System object として返されます。

詳細

すべて折りたたむ

バージョン履歴

R2007b で導入

すべて展開する

参考

関数

オブジェクト