channelDelay
チャネルのタイミング遅延
説明
[
は、チャネル インパルス応答のピークを検出してチャネルのタイミング遅延を計算します。この関数は、チャネル パス ゲイン配列とパス フィルターのインパルス応答行列からインパルス応答を再構成します。この関数は、チャネルのタイミング遅延 (サンプル単位) とチャネル インパルス応答の振幅を返します。詳細については、チャネル遅延と振幅の計算を参照してください。delay
,mag
] = channelDelay(pathGains
,pathFilters
)
例
2 行 2 列の MIMO チャネルを構成します。オブジェクト関数 info
を使用してパス フィルターを取得します。
chan = comm.MIMOChannel('SampleRate',1000,'PathDelays',[0 1.5e-3], ... 'AveragePathGains',[1 0.8],'RandomStream','mt19937ar with seed', ... 'Seed',10,'PathGainsOutputPort',true); chanInfo = info(chan); pathFilters = chanInfo.ChannelFilterCoefficients;
チャネルを通してインパルスを渡し、パス ゲインを計算します。
[~,pathGains] = chan(ones(1,2));
取得したパス フィルターと計算したパス ゲインを指定して、チャネルのタイミング遅延を計算します。
delay = channelDelay(pathGains,pathFilters)
delay = 6
時間の経過に沿ってレイリー チャネルの相対タイミング遅延を計算および表示します。
3 つのパスで構成され、インパルス応答の可視化を有効にしたcomm.RayleighChannel
System object™ を作成します。
chan = comm.RayleighChannel; chan.SampleRate = 1e3; chan.PathDelays = [0 5.3e-3 10.1e-3]; chan.AveragePathGains = [0.1 1 0.5]; chan.PathGainsOutputPort = true; chan.RandomStream = 'mt19937ar with seed'; chan.Seed = 1; chan.Visualization = 'Impulse response'; chan.MaximumDopplerShift = 1;
オブジェクト関数 info
を使用してレイリー チャネル パス フィルターを取得します。ループ内で、レイリー チャネルを通じてすべて 1 の静的信号を渡します。関数 channelDelay
では、チャネルを通じて各パスからのチャネル パス ゲイン配列および (関数 info
で返される) パス フィルター係数 chanInfo.ChannelFilterCoefficients
を使用して、相対チャネル タイミング遅延が計算されます。インパルス応答はそれぞれの反復で異なります。最後の反復のインパルス応答を次に示します。delay
ベクトルは、それぞれの反復に対して計算された相対チャネル タイミング遅延を示しています。
chanInfo = info(chan); numIter = 12; delay = zeros(1,numIter); for p=1:numIter [~,pg] = chan(ones(1e3,1)); delay(p) = channelDelay(pg,chanInfo.ChannelFilterCoefficients); end
delay
delay = 1×12
12 7 12 2 12 7 12 7 7 7 2 2
入力引数
チャネル パス ゲイン。Ncs x Np x Nt x Nr 配列として指定します。ここでは、次のとおりです。
Ncs は、チャネル スナップショットの数です。
Np は、パスの数です。
Nt は、送信アンテナの数です。
Nr は、受信アンテナの数です。
pathGains
のいずれかの要素が NaN
の場合、関数は送信機と受信機の間にパスが存在しないと仮定します。
データ型: double
| single
複素数のサポート: あり
パス フィルターのインパルス応答。Np 行 Nh 列の行列として指定します。Np はパスの数で、Nh はインパルス応答のサンプル数です。
データ型: double
| single
複素数のサポート: あり
出力引数
チャネルのタイミング遅延 (サンプル単位)。整数として返されます。この値は、pathGains
と pathFilters
の入力から再構成されたチャネル インパルス応答の最初のサンプルに相対する遅延のサンプル数を表します。関数は、複合チャネル インパルス応答のピークを検出してチャネルのタイミング遅延を計算します。詳細については、チャネル遅延と振幅の計算を参照してください。
各受信アンテナのチャネル インパルス応答の振幅。Nh 行 Nr 列の行列として返されます。Nh はインパルス応答のサンプル数で、Nr は受信アンテナの数です。詳細については、チャネル遅延と振幅の計算を参照してください。
詳細
チャネル遅延とインパルス応答の振幅の計算では、複合チャネル インパルス応答を使用します。
複合チャネル インパルス応答は、パス ゲイン配列で表されるすべてのチャネル スナップショットでインパルス応答の平均を求めることで得られます。入力パス ゲイン配列は、Ncs x Np x Nt x Nr の形式でなければなりません。ここでは、次のとおりです。
Ncs は、チャネル スナップショットの数です。
Np は、パスの数です。
Nt は、送信アンテナの数です。
Nr は、受信アンテナの数です。
単一値として出力されるチャネルのタイミング遅延は、チャネル インパルス応答の最初のサンプルに相対します。関数は、複合チャネル インパルス応答のピークを検出してこの値を計算します。複合チャネル インパルス応答は、すべての送信アンテナおよび受信アンテナのインパルス応答の総和です。
受信インパルス応答の振幅は、Nh 行 Nr 列の行列として出力されます。Nh はインパルス応答のサンプル数で、Nr は受信アンテナの数です。受信インパルス応答の振幅を計算するために、次が行われます。
すべてのチャネル スナップショットでパス ゲインが合計されます。
すべての送信アンテナおよび受信アンテナのチャネル インパルス応答に各パスからの寄与が追加されます。
送信アンテナ パスがチャネル インパルス応答配列に結合され、インパルス応答のサンプルと受信アンテナの行列が残されます。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
この関数は、GPU 配列の入力をサポートします。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2020a で導入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)