Main Content

info

フェージング チャネル オブジェクトの特性情報

説明

infostruct = info(obj) はフェージング チャネル System object™ に関する特性情報が含まれる構造体を返します。

すべて折りたたむ

オブジェクト関数 info を使用して comm.RayleighChannel オブジェクトから情報を取得します。

レイリー チャネル オブジェクトおよび何らかのデータを作成し、チャネルを介してデータを渡します。

rayleighchan = comm.RayleighChannel('SampleRate',1000,'PathDelays',[0 0],'AveragePathGains',[0 0])
rayleighchan = 
  comm.RayleighChannel with properties:

             SampleRate: 1000
             PathDelays: [0 0]
       AveragePathGains: [0 0]
     NormalizePathGains: true
    MaximumDopplerShift: 1.0000e-03
        DopplerSpectrum: [1x1 struct]
       ChannelFiltering: true
    PathGainsOutputPort: false

  Show all properties

data = randi([0 1],600,1);

レイリー チャネル オブジェクト情報をチェックします。

info(rayleighchan)
ans = struct with fields:
           ChannelFilterDelay: 0
    ChannelFilterCoefficients: [2x1 double]
          NumSamplesProcessed: 0

チャネルを介してデータを渡し、オブジェクト情報を再度チェックします。

rayleighchan(data);
info(rayleighchan)
ans = struct with fields:
           ChannelFilterDelay: 0
    ChannelFilterCoefficients: [2x1 double]
          NumSamplesProcessed: 600

属性を更新できるようにオブジェクトを解放します。1.5e-3 秒のパス遅延を 2 番目の遅延パスに追加します。

release(rayleighchan)
rayleighchan.PathDelays = [0 1.5e-3]
rayleighchan = 
  comm.RayleighChannel with properties:

             SampleRate: 1000
             PathDelays: [0 0.0015]
       AveragePathGains: [0 0]
     NormalizePathGains: true
    MaximumDopplerShift: 1.0000e-03
        DopplerSpectrum: [1x1 struct]
       ChannelFiltering: true
    PathGainsOutputPort: false

  Show all properties

チャネルを介してデータを渡し、オブジェクト情報を再度チェックします。

rayleighchan(data);
info(rayleighchan)
ans = struct with fields:
           ChannelFilterDelay: 6
    ChannelFilterCoefficients: [2x16 double]
          NumSamplesProcessed: 600

オブジェクト関数 info を使用して comm.RicianChannel オブジェクトから情報を取得します。

ライス チャネル オブジェクトおよび何らかのデータを作成し、チャネルを介してデータを渡します。

ricianchan = comm.RicianChannel('SampleRate',500)
ricianchan = 
  comm.RicianChannel with properties:

                SampleRate: 500
                PathDelays: 0
          AveragePathGains: 0
        NormalizePathGains: true
                   KFactor: 3
    DirectPathDopplerShift: 0
    DirectPathInitialPhase: 0
       MaximumDopplerShift: 1.0000e-03
           DopplerSpectrum: [1x1 struct]
          ChannelFiltering: true
       PathGainsOutputPort: false

  Show all properties

data = randi([0 1],600,1);

ライス チャネル オブジェクト情報をチェックします。

info(ricianchan)
ans = struct with fields:
           ChannelFilterDelay: 0
    ChannelFilterCoefficients: 1
          NumSamplesProcessed: 0

チャネルを介してデータを渡し、オブジェクト情報を再度チェックします。

ricianchan(data);
info(ricianchan)
ans = struct with fields:
           ChannelFilterDelay: 0
    ChannelFilterCoefficients: 1
          NumSamplesProcessed: 600

属性を更新できるようにオブジェクトを解放します。遅延が 3.1e-3 秒、平均パス ゲインが -3 dB である 2 番目のパス遅延を追加します。

release(ricianchan)
ricianchan.PathDelays = [0 3.1e-3];
ricianchan.AveragePathGains = [0 -3]
ricianchan = 
  comm.RicianChannel with properties:

                SampleRate: 500
                PathDelays: [0 0.0031]
          AveragePathGains: [0 -3]
        NormalizePathGains: true
                   KFactor: 3
    DirectPathDopplerShift: 0
    DirectPathInitialPhase: 0
       MaximumDopplerShift: 1.0000e-03
           DopplerSpectrum: [1x1 struct]
          ChannelFiltering: true
       PathGainsOutputPort: false

  Show all properties

チャネルを介してデータを渡し、オブジェクト情報を再度チェックします。

ricianchan(data);
info(ricianchan)
ans = struct with fields:
           ChannelFilterDelay: 6
    ChannelFilterCoefficients: [2x16 double]
          NumSamplesProcessed: 600

オブジェクト関数 info を使用して comm.MIMOChannel オブジェクトから情報を取得します。

MIMO チャネル オブジェクトおよび何らかのデータを作成し、チャネルを介してデータを渡します。

mimo = comm.MIMOChannel('SampleRate',1000);
data = randi([0 1],600,2);

MIMO チャネル オブジェクトの情報をチェックします。

info(mimo)
ans = struct with fields:
           ChannelFilterDelay: 0
    ChannelFilterCoefficients: 1
          NumSamplesProcessed: 0

チャネルを介してデータを渡し、オブジェクト情報を再度チェックします。

mimo(data);
info(mimo)
ans = struct with fields:
           ChannelFilterDelay: 0
    ChannelFilterCoefficients: 1
          NumSamplesProcessed: 600

属性を更新できるようにオブジェクトを解放します。2.5e-3 秒のパス遅延を追加します。オブジェクトの情報を再チェックします。

release(mimo)
mimo.PathDelays = 2.5e-3;
info(mimo)
ans = struct with fields:
           ChannelFilterDelay: 5
    ChannelFilterCoefficients: [-0.0326 0.0403 -0.0504 0.0646 -0.0861 ... ]
          NumSamplesProcessed: 0

正弦波加算フェージング手法を使用するように構成された MIMO チャネル System object を使用して、不連続送信のためにチャネル状態が維持されていることを示します。連続チャネル応答に重なる不連続チャネル応答セグメントを観測します。

チャネルのプロパティを設定します。

fs = 1000;               % Sample rate (Hz)
pathDelays = [0 2.5e-3]; % Path delays (s)
pathPower = [0 -6];      % Path power (dB)
fD = 5;                  % Maximum Doppler shift (Hz)
ns = 1000;               % Number of samples
nsdel = 100;             % Number of samples for delayed paths

連続時間範囲と 3 つの不連続時間セグメントを定義します。この上にチャネル応答をプロットして表示します。時刻 0 から開始する 1000 サンプル連続チャネル応答と、時刻 0.1 秒、0.4 秒、および 0.7 秒から開始する 3 つの 100 サンプル連続チャネル応答を別々に表示します。

to0 = 0.0;
to1 = 0.1;
to2 = 0.4;
to3 = 0.7;
t0 = (to0:ns-1)/fs;      % Transmission 0
t1 = to1+(0:nsdel-1)/fs; % Transmission 1
t2 = to2+(0:nsdel-1)/fs; % Transmission 2
t3 = to3+(0:nsdel-1)/fs; % Transmission 3

チャネル フィルター処理を無効化し、1000 Hz のサンプリング レート、正弦波加算フェージング手法、および表示するサンプル数を指定して、フラット フェージング 2x2 MIMO チャネル System object を作成します。結果を反復できるように、シードの値を指定します。既定の InitialTime プロパティ設定を使用して、フェージング チャネルが時刻 0 からシミュレーションされるようにします。

mimoChan1 = comm.MIMOChannel('SampleRate',fs, ...
    'MaximumDopplerShift',fD, ...
    'RandomStream','mt19937ar with seed', ...
    'Seed',17, ...
    'FadingTechnique','Sum of sinusoids', ...
    'ChannelFiltering',false, ...
    'NumSamples',ns);

MIMO チャネル System object のクローンを作成します。遅延パスのサンプル数および初期時間のソースを変更し、System object を呼び出す際にフェージング チャネルのオフセット時間を入力引数として指定できるようにします。

mimoChan2 = clone(mimoChan1);
mimoChan2.InitialTimeSource = 'Input port';
mimoChan2.NumSamples = nsdel;

mimoChan1 オブジェクトを使用して連続チャネル応答のパス ゲイン出力を保存し、初期時間オフセットを入力引数として指定した mimoChan2 オブジェクトを使用して、不連続遅延チャネル応答のパス ゲイン出力を保存します。

pg0 = mimoChan1();
pg1 = mimoChan2(to1);
pg2 = mimoChan2(to2);
pg3 = mimoChan2(to3);

info メソッドを使用して、2 つのチャネルによって処理されたサンプル数を比較します。結果は mimoChan1 が 1000 サンプルを処理したことを、mimoChan2 が 300 サンプルしか処理していないことを示しています。

G = info(mimoChan1);
H = info(mimoChan2);
[G.NumSamplesProcessed H.NumSamplesProcessed]
ans = 1×2

        1000         300

最初の送信アンテナと最初の受信アンテナに対応するパスについて、パス ゲインをデシベルに変換します。

pathGain0 = 20*log10(abs(pg0(:,1,1,1)));
pathGain1 = 20*log10(abs(pg1(:,1,1,1)));
pathGain2 = 20*log10(abs(pg2(:,1,1,1)));
pathGain3 = 20*log10(abs(pg3(:,1,1,1)));

連続的な場合と非連続的な場合のパス ゲインをプロットします。結果は、3 つのセグメントのゲインが、連続的な場合のゲインに一致していることを示しています。2 つの一致は、正弦波の和の手法は、データが送信されていない場合でもチャネル特性が保たれるため、パケット化されたデータのシミュレーションに最適であることを示しています。

plot(t0,pathGain0,'r--')
hold on
plot(t1,pathGain1,'b')
plot(t2,pathGain2,'b')
plot(t3,pathGain3,'b')
grid
title('Continuous and Discontinuous Channel Response')
xlabel('Time (sec)')
ylabel('Path Gain (dB)')
legend('Continuous','Discontinuous','location','nw')

Figure contains an axes object. The axes object with title Continuous and Discontinuous Channel Response contains 4 objects of type line. These objects represent Continuous, Discontinuous.

入力引数

すべて折りたたむ

情報を取得する System object。comm.MIMOChannelcomm.RayleighChannel、または comm.RicianChannel System object として指定します。

出力引数

すべて折りたたむ

System object に関する情報をもつ、以下のフィールドを含む構造体。

チャネル フィルターの遅延 (サンプル単位)。正の整数として返されます。

チャネル フィルター係数。行列として返されます。係数行列は、各サンプルと送信および受信アンテナの各ペア用にパス ゲインをチャネル フィルター タップ ゲインに変換するために使用されます。

前回のリセット以降にチャネル オブジェクトによって処理されたサンプル数。正の整数として返されます。

最後のフレームの終了時間 (秒)。正のスカラーとして返されます。この値を使用して、シミュレーション時間を確認します。

依存関係

このプロパティは、FadingTechnique プロパティが 'Sum of sinusoids'InitialTimeSource プロパティが 'Input port' である場合に適用されます。

バージョン履歴

R2012a で導入