Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

getPathFilters

リンクレベル MIMO チャネルのパス フィルター インパルス応答の取得

説明

pathFilters = getPathFilters(channel) は、指定されたリンクレベルの多入力多出力 (MIMO) チャネル channel のパス フィルター インパルス応答を返します。nrCDLChannelnrTDLChannel、または nrHSTChannel の System object™ としてチャネルを指定します。完全なチャネル推定を再構築するには、チャネル オブジェクトによって返される出力引数 pathGains と一緒に pathFilters を使用します。

メモ

  • channel が HST-SFN チャネル プロファイルをもつ nrHSTChannel System object である場合、パス フィルターは時変であり、チャネルの状態に依存します。この場合、返されるパス フィルターは、常にチャネル オブジェクトの最後の呼び出しに関連したものになります。他のすべてのチャネルでは、チャネル オブジェクトの呼び出しによってパス フィルターが変化することはありません。

すべて折りたたむ

チャネル インパルス応答を再構築し、TR 38.901 の Section 7.7.1 の遅延プロファイル CDL-D を使った Clustered Delay Line (CDL) チャネル モデルのパス フィルターを使用してタイミング オフセット推定を実行します。

nrCDLChannel System object を使用して、チャネル構成の構造体を定義します。遅延プロファイル CDL-D、遅延スプレッド 10 ns、および UE 速度 15 km/h を使用します。

v = 15.0;                    % UE velocity in km/h
fc = 4e9;                    % carrier frequency in Hz
c = physconst('lightspeed'); % speed of light in m/s
fd = (v*1000/3600)/c*fc;     % UE max Doppler frequency in Hz
 
cdl = nrCDLChannel;
cdl.DelayProfile = 'CDL-D';
cdl.DelaySpread = 10e-9;
cdl.CarrierFrequency = fc;
cdl.MaximumDopplerShift = fd;

送信アレイを [M N P Mg Ng] = [2 2 2 1 1] として構成します。これは、2 行 2 列のアンテナ アレイ (M=2、N=2) を備え、かつ偏波角 P=2 である 1 つのパネル (Mg=1、Ng=1) を表します。受信アンテナ アレイを [M N P Mg Ng] = [1 1 2 1 1] として構成します。これは、同じ場所に配置された交差偏波アンテナの単一のペアを表します。

cdl.TransmitAntennaArray.Size = [2 2 2 1 1];
cdl.ReceiveAntennaArray.Size = [1 1 2 1 1];

8 つのアンテナでサブフレーム時間 1 のランダムな波形を作成します。

SR = 15.36e6;
T = SR * 1e-3;
cdl.SampleRate = SR;
cdlinfo = info(cdl);
Nt = cdlinfo.NumTransmitAntennas;
 
txWaveform = complex(randn(T,Nt),randn(T,Nt));

チャネルを介して入力波形を送信します。

[rxWaveform,pathGains] = cdl(txWaveform);

チャネル フィルター処理で使用されるパス フィルターを取得します。

pathFilters = getPathFilters(cdl);

nrPerfectTimingEstimate を使用してタイミング オフセット推定を実行します。

[offset,mag] = nrPerfectTimingEstimate(pathGains,pathFilters);

チャネル インパルス応答の大きさをプロットします。

[Nh,Nr] = size(mag);
plot(0:(Nh-1),mag,'o:');
hold on;
plot([offset offset],[0 max(mag(:))*1.25],'k:','LineWidth',2);
axis([0 Nh-1 0 max(mag(:))*1.25]);
legends = "|h|, antenna " + num2cell(1:Nr);
legend([legends "Timing offset estimate"]);
ylabel('|h|');
xlabel('Channel impulse response samples');

Figure contains an axes object. The axes object with xlabel Channel impulse response samples, ylabel |h| contains 3 objects of type line. These objects represent |h|, antenna 1, |h|, antenna 2, Timing offset estimate.

受信アンテナを 1 つもつ HST-SFN マルチタップ チャネル モデルを作成します。

hst = nrHSTChannel( ...
    ChannelProfile='HST-SFN', ...
    NumReceiveAntennas=1);

gNodeB 間の距離を 700 m に設定します。線路と gNodeB の間の最小距離を 150 m に設定します。

hst.Ds = 700;
hst.Dmin = 150;

列車の速度を 500 km/h に設定します。最大ドップラー シフトを 870 Hz に設定します。

hst.Velocity = 500;
hst.MaximumDopplerShift = 870;

チャネル フィルタリングを無効にします。

hst.ChannelFiltering = false;

サンプル レートとチャネル サンプル数を設定して、1 ms のパス ゲイン サンプルを計算します。

hst.SampleRate = 30.72e6;
hst.NumTimeSamples = hst.SampleRate*1e-3; 

チャネルの初期時間を設定し、列車の開始位置を構成します。リモート gNodeB に対する列車の相対位置によって、各 gNodeB の信号の遅延が決まります。

hst.InitialTime = (hst.Ds/3)/(hst.Velocity/3.6);

チャネルからパス ゲインを取得します。

pathGains = hst();

前のチャネル呼び出しに関連するチャネル パス フィルター応答を取得します。各 gNodeB の信号の遅延は時間とともに変化します。

pathFilters = getPathFilters(hst); 

タイミング オフセットを取得してチャネル遅延を推定します。

offset = nrPerfectTimingEstimate(pathGains,pathFilters);

パス フィルターと推定チャネル遅延を表示します。

plot(0:size(pathFilters,1)-1,pathFilters);
hold on
stem(repmat(offset,1,hst.NumTaps),pathFilters(1+offset,:),'k')
legend(["Tap "+ (1:hst.NumTaps) "Timing offset"])
xlabel('Filter Delay (Samples)') 
ylabel('Amplitude')
title('Impulse Response of Channel Filters')

Figure contains an axes object. The axes object with title Impulse Response of Channel Filters, xlabel Filter Delay (Samples), ylabel Amplitude contains 5 objects of type line, stem. These objects represent Tap 1, Tap 2, Tap 3, Tap 4, Timing offset.

入力引数

すべて折りたたむ

MIMO チャネル モデル。nrCDLChannelnrTDLChannel、または nrHSTChannel (R2022b 以降) の System object として指定します。

出力引数

すべて折りたたむ

パス フィルターのインパルス応答。Nh 行 Np 列の実数の行列として返されます。ここで、

  • NH は、インパルス応答のサンプルの数です。

  • Np は、パスの数です。

行列の各列には、遅延プロファイルの各パスに対するフィルターのインパルス応答が格納されます。

データ型: double

参照

[1] 3GPP TR 38.901. “Study on channel model for frequencies from 0.5 to 100 GHz.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

[2] 3GPP TS 38.101-4. “NR; User Equipment (UE) radio transmission and reception; Part 4: Performance requirements.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2018b で導入

すべて展開する

参考

オブジェクト