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');

受信アンテナを 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')

入力引数

すべて折りたたむ

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 で導入

すべて展開する

参考

オブジェクト