info
フェージング チャネル オブジェクトの特性情報
説明
例
オブジェクト関数 info を使用して comm.RayleighChannel オブジェクトから情報を取得します。
2 つのパスを含むレイリー チャネル オブジェクトとそのチャネルを介して渡すデータを作成します。
rayleighchan = comm.RayleighChannel( ... SampleRate=1000, ... PathDelays=[0 4e-3], ... AveragePathGains=[0 0])
rayleighchan =
comm.RayleighChannel with properties:
SampleRate: 1000
PathDelays: [0 0.0040]
AveragePathGains: [0 0]
NormalizePathGains: true
MaximumDopplerShift: 1.0000e-03
DopplerSpectrum: [1×1 struct]
ChannelFiltering: true
PathGainsOutputPort: false
Show all properties
data = randi([0 1],600,1);
レイリー チャネル オブジェクト情報をチェックします。
info(rayleighchan)
ans = struct with fields:
ChannelFilterCoefficients: [2×5 double]
ChannelFilterDelay: 0
NumSamplesProcessed: 0
チャネルを介してデータを渡し、オブジェクト情報を再度チェックして、処理済みのサンプル数が情報構造体に含まれていることを確認します。
rayleighchan(data); Sint = info(rayleighchan)
Sint = struct with fields:
ChannelFilterCoefficients: [2×5 double]
ChannelFilterDelay: 0
NumSamplesProcessed: 600
パスごとの群遅延を詳しく見ていくと、指定された PathDelays と SampleRate の積により、([0 4e-3]*1000) = [0 4] サンプルのパス遅延が生じます。要求されたパス遅延はすべて整数値であるため、実装されたチャネル フィルターによってチャネル出力に超過遅延は追加されず、ChannelFilterDelay フィールドには遅延が 0 サンプルと出力されます。構成に従って、チャネルではパスごとに (PathDelays*SampleRate + ChannelFilterDelay) = ([0 4e-3]*1000 + 0) = [0 4] サンプルに等しい一定の群遅延が発生します。関数grpdelayを使用して、パスごとの群遅延を確認します。
figure subplot(2,1,1) grpdelay(Sint.ChannelFilterCoefficients(1,:),1) title('Integer Path Delay: Group Delay for First Delay Path') subplot(2,1,2) grpdelay(Sint.ChannelFilterCoefficients(2,:),1) title('Integer Path Delay: Group Delay for Second Delay Path')

属性を更新できるようにオブジェクトを解放します。2 番目のパス遅延を非整数値の 1.5e-3 秒に変更します。非整数のパス遅延を使用してフィルターを実装すると、超過群遅延が発生します。オブジェクト関数 info は、情報構造体の ChannelFilterDelay フィールドにこの超過遅延を出力します。オブジェクトの構成と情報を再確認します。
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: [1×1 struct]
ChannelFiltering: true
PathGainsOutputPort: false
Show all properties
rayleighchan(data); Snonint = info(rayleighchan)
Snonint = struct with fields:
ChannelFilterCoefficients: [2×16 double]
ChannelFilterDelay: 6
NumSamplesProcessed: 600
パスごとの群遅延を詳しく見ていくと、指定された PathDelays と SampleRate の積により、([0 1.5e-3]*1000) = [0 1.5] サンプルのパス遅延が生じます。要求されたパス遅延には少なくとも 1 つの非整数値が含まれているため、実装されたチャネル フィルターによってチャネル出力で超過群遅延が発生し、ChannelFilterDelay フィールドには遅延が 6 サンプルと出力されています。構成に従って、チャネルではパスごとに (PathDelays*SampleRate + ChannelFilterDelay) = ([0 1.5e-3]*1000 + 6) = [6 7.5] サンプルに等しい一定の群遅延が発生します。関数grpdelayを使用して、パスごとの群遅延を確認します。
figure subplot(2,1,1) grpdelay(Snonint.ChannelFilterCoefficients(1,:),1) title('Noninteger Path Delay: Group Delay for First Delay Path') subplot(2,1,2) grpdelay(Snonint.ChannelFilterCoefficients(2,:),1) title('Noninteger Path Delay: Group Delay for Second Delay Path')

オブジェクト関数 info を使用して comm.RicianChannel オブジェクトから情報を取得します。
2 つのパスを含むライス チャネル オブジェクトとそのチャネルを介して渡すデータを作成します。
ricianchan = comm.RicianChannel( ... SampleRate=500, ... PathDelays=[0 2e-3], ... AveragePathGains=[0 0])
ricianchan =
comm.RicianChannel with properties:
SampleRate: 500
PathDelays: [0 0.0020]
AveragePathGains: [0 0]
NormalizePathGains: true
KFactor: 3
DirectPathDopplerShift: 0
DirectPathInitialPhase: 0
MaximumDopplerShift: 1.0000e-03
DopplerSpectrum: [1×1 struct]
ChannelFiltering: true
PathGainsOutputPort: false
Show all properties
data = randi([0 1],600,1);
ライス チャネル オブジェクト情報をチェックします。
info(ricianchan)
ans = struct with fields:
ChannelFilterCoefficients: [2×2 double]
ChannelFilterDelay: 0
NumSamplesProcessed: 0
チャネルを介してデータを渡し、オブジェクト情報を再度チェックして、処理済みのサンプル数が情報構造体に含まれていることを確認します。
ricianchan(data); Sint = info(ricianchan)
Sint = struct with fields:
ChannelFilterCoefficients: [2×2 double]
ChannelFilterDelay: 0
NumSamplesProcessed: 600
パスごとの群遅延を詳しく見ていくと、指定された PathDelays と SampleRate の積により、([0 2e-3]*500) = [0 1] サンプルのパス遅延が生じます。要求されたパス遅延はすべて整数値であるため、実装されたチャネル フィルターによってチャネル出力に超過遅延は追加されず、ChannelFilterDelay フィールドには遅延が 0 サンプルと出力されます。構成に従って、チャネルではパスごとに (PathDelays*SampleRate + ChannelFilterDelay) = ([0 2e-3]*500 + 0) = [0 1] サンプルに等しい一定の群遅延が発生します。関数grpdelayを使用して、パスごとの群遅延を確認します。
figure subplot(2,1,1) grpdelay(Sint.ChannelFilterCoefficients(1,:),1) title('Integer Path Delay: Group Delay for First Delay Path') subplot(2,1,2) grpdelay(Sint.ChannelFilterCoefficients(2,:),1) title('Integer Path Delay: Group Delay for Second Delay Path')

属性を更新できるようにオブジェクトを解放します。2 番目のパス遅延を非整数値 (2.2e-3 秒など) に変更します。非整数のパス遅延を使用してフィルターを実装すると、超過群遅延が発生します。オブジェクト関数 info は、情報構造体の ChannelFilterDelay フィールドにこの超過遅延を出力します。オブジェクトの構成と情報を再確認します。
release(ricianchan) ricianchan.PathDelays = [0 2.2e-3]; ricianchan(data); Snonint = info(ricianchan)
Snonint = struct with fields:
ChannelFilterCoefficients: [2×16 double]
ChannelFilterDelay: 6
NumSamplesProcessed: 600
パスごとの群遅延を詳しく見ていくと、指定された PathDelays と SampleRate の積により、([0 2.2e-3]*500) = [0 1.1] サンプルのパス遅延が生じます。要求されたパス遅延には少なくとも 1 つの非整数値が含まれているため、実装されたチャネル フィルターによってチャネル出力で超過群遅延が発生し、ChannelFilterDelay フィールドには遅延が 6 サンプルと出力されています。ライス チャネルでは、フィルターが対称ではありません。これは、2 番目のパスの群遅延が変動していることによって観測できます。構成に従って、チャネルではパスごとに (PathDelays*SampleRate + ChannelFilterDelay) = ([0 2.2e-3]*500 + 6) = [6 7.1] サンプルを中心に群遅延が発生します。関数grpdelayを使用して、パスごとの群遅延を確認します。
figure subplot(2,1,1) grpdelay(Snonint.ChannelFilterCoefficients(1,:),1) title('Noninteger Path Delay: Group Delay for First Delay Path') subplot(2,1,2) grpdelay(Snonint.ChannelFilterCoefficients(2,:),1) title('Noninteger Path Delay: Group Delay for Second Delay Path')

オブジェクト関数 info を使用して comm.MIMOChannel オブジェクトから情報を取得します。
1 つのパスを含む MIMO チャネル オブジェクトとそのチャネルを介して渡すデータを作成します。
mimo = comm.MIMOChannel( ... SampleRate=1000, ... PathDelays=4e-3, ... AveragePathGains=0)
mimo =
comm.MIMOChannel with properties:
SampleRate: 1000
PathDelays: 0.0040
AveragePathGains: 0
NormalizePathGains: true
FadingDistribution: 'Rayleigh'
MaximumDopplerShift: 1.0000e-03
DopplerSpectrum: [1×1 struct]
SpatialCorrelationSpecification: 'Separate Tx Rx'
TransmitCorrelationMatrix: [2×2 double]
ReceiveCorrelationMatrix: [2×2 double]
AntennaSelection: 'Off'
NormalizeChannelOutputs: true
ChannelFiltering: true
PathGainsOutputPort: false
Show all properties
data = randi([0 1],600,2);
MIMO チャネル オブジェクトの情報をチェックします。
info(mimo)
ans = struct with fields:
ChannelFilterCoefficients: [0 0 0 0 1]
ChannelFilterDelay: 0
NumSamplesProcessed: 0
チャネルを介してデータを渡し、オブジェクト情報を再度チェックして、処理済みのサンプル数が情報構造体に含まれていることを確認します。
mimo(data); Sint = info(mimo)
Sint = struct with fields:
ChannelFilterCoefficients: [0 0 0 0 1]
ChannelFilterDelay: 0
NumSamplesProcessed: 600
群遅延を詳しく見ていくと、指定された PathDelays と SampleRate の積により、(4e-3*1000) = 4 サンプルのパス遅延が生じます。要求されたパス遅延はすべて整数値であるため、実装されたチャネル フィルターによってチャネル出力に超過遅延は追加されず、ChannelFilterDelay フィールドには遅延が 0 サンプルと出力されます。構成に従って、チャネルでは (PathDelays*SampleRate + ChannelFilterDelay) = (4e-3*1000 + 0) = 4 サンプルに等しい一定の群遅延が発生します。関数grpdelayを使用して、整数パス遅延の群遅延を確認します。
grpdelay(Sint.ChannelFilterCoefficients,1)
title('Integer Path Delay: Group Delay')
属性を更新できるようにオブジェクトを解放します。パス遅延を非整数値 (2.5e-3 秒など) に変更します。非整数のパス遅延を使用してフィルターを実装すると、超過群遅延が発生します。オブジェクト関数 info は、情報構造体の ChannelFilterDelay フィールドにこの超過遅延を出力します。オブジェクトの構成と情報を再確認します。
release(mimo) mimo.PathDelays = 2.5e-3
mimo =
comm.MIMOChannel with properties:
SampleRate: 1000
PathDelays: 0.0025
AveragePathGains: 0
NormalizePathGains: true
FadingDistribution: 'Rayleigh'
MaximumDopplerShift: 1.0000e-03
DopplerSpectrum: [1×1 struct]
SpatialCorrelationSpecification: 'Separate Tx Rx'
TransmitCorrelationMatrix: [2×2 double]
ReceiveCorrelationMatrix: [2×2 double]
AntennaSelection: 'Off'
NormalizeChannelOutputs: true
ChannelFiltering: true
PathGainsOutputPort: false
Show all properties
Snonint = info(mimo)
Snonint = struct with fields:
ChannelFilterCoefficients: [-0.0326 0.0403 -0.0504 0.0646 -0.0861 0.1238 -0.2101 0.6359 0.6359 -0.2101 0.1238 -0.0861 0.0646 -0.0504 0.0403 -0.0326]
ChannelFilterDelay: 5
NumSamplesProcessed: 0
群遅延を詳しく見ていくと、指定された PathDelays と SampleRate の積により、(2.5e-3*1000) = 2.5 サンプルのパス遅延が生じます。要求されたパス遅延には非整数値が含まれているため、実装されたチャネル フィルターによってチャネル出力で超過群遅延が発生し、ChannelFilterDelay フィールドには遅延が 5 サンプルと出力されています。構成に従って、チャネルでは (PathDelays*SampleRate + ChannelFilterDelay) = (2.5e-3*1000 + 5) = 7.5 サンプルに等しい一定の群遅延が発生します。関数grpdelayを使用して、整数パス遅延と非整数パス遅延の群遅延を比較します。
figure subplot(2,1,1) grpdelay(Sint.ChannelFilterCoefficients,1) title('Integer Path Delay: Group Delay') subplot(2,1,2) grpdelay(Snonint.ChannelFilterCoefficients,1) title('Noninteger Path Delay: Group Delay')

正弦波加算フェージング手法を使用するように構成された 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')

入力引数
情報を取得する System object。comm.MIMOChannel、comm.RayleighChannel、または comm.RicianChannel System object として指定します。
出力引数
System object に関する情報をもつ、以下のフィールドを含む構造体。
サンプル単位の超過フィルター遅延。正の整数として返されます。
チャネル オブジェクトの
PathDelaysプロパティをすべて整数値の遅延で構成した場合、実装されたチャネル フィルターによってチャネル出力に超過遅延は追加されません。この場合、ChannelFilterDelayフィールドには超過パス遅延が0と出力されます。チャネル オブジェクトの
PathDelaysプロパティを整数値以外の遅延で構成した場合、実装されたチャネル フィルターによってチャネル出力に超過遅延が追加される可能性があります。この場合、ChannelFilterDelayフィールドには、超過パス遅延として非ゼロの値が出力される可能性があります。
チャネル フィルター係数。行列として返されます。この非変動フィルターに、時間とともに変化するパス ゲインがゲインとして適用され、時間の経過とともにチャネル出力が生成されます。
前回のリセット以降にチャネル オブジェクトによって処理されたサンプル数。正の整数として返されます。
最後のフレームの終了時間 (秒)。正のスカラーとして返されます。この値を使用して、シミュレーション時間を確認します。
依存関係
このプロパティは、FadingTechnique プロパティが 'Sum of sinusoids'、InitialTimeSource プロパティが 'Input port' である場合に適用されます。
バージョン履歴
R2012a で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)