Main Content

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

nrPerfectTimingEstimate

完全なタイミング推定

説明

[offset,mag] = nrPerfectTimingEstimate(pathGains,pathFilters) は、完全なタイミング推定を実行します。この関数は、チャネル インパルス応答のピークを検出するため、まず、チャネルのパス ゲイン pathGains とパス フィルターのインパルス応答 pathFilters からインパルス応答を再構築します。そして、タイミング推定の前に、このチャネル インパルス応答をすべてのチャネル スナップショットにわたって平均化し、すべての送信アンテナと受信アンテナにわたってその値を加算します。この関数は、推定されたタイミング オフセット offset およびチャネル インパルス応答の大きさ mag を返します。

すべて折りたたむ

nrTDLChannelSystem object を使用して、チャネル構成の構造体を定義します。TR 38.901 の Section 7.7.2 の遅延プロファイル TDL-C を使用します。

tdl = nrTDLChannel;
tdl.DelayProfile = 'TDL-C';
tdl.DelaySpread = 100e-9;

1 つのサブフレームの持続時間をもつランダムな波形を作成します。

tdlInfo = info(tdl);
Nt = tdlInfo.NumTransmitAntennas;
in = complex(zeros(100,Nt),zeros(100,Nt));

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

[~,pathGains] = tdl(in);

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

pathFilters = getPathFilters(tdl);

タイミング オフセットを推定します。

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

入力引数

すべて折りたたむ

フェージング プロセスのチャネル パス ゲイン。NCS×NP×NT×NR の複素数行列として指定します。ここで、以下のようになります。

  • NCS はチャネル スナップショットの数。

  • NP はパスの数。

  • NT は送信アンテナの数。

  • NR は受信アンテナの数。

データ型: single | double
複素数のサポート: あり

パス フィルターのインパルス応答。NHNP 列の実数行列として指定します。ここで、以下のようになります。

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

  • NP はパスの数。

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

データ型: double

出力引数

すべて折りたたむ

サンプル数で表されたタイミング オフセット。非負の整数として返されます。このサンプル数は、pathGains および pathFilters から再構築されたチャネル インパルス応答の最初のサンプルに対する相対値です。

データ型: double

各受信アンテナのチャネル インパルス応答の大きさ。NHNR 列の実数行列として返されます。

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

  • NR は受信アンテナの数。

magpathGains からデータ型を継承します。

データ型: single | double

拡張機能

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

バージョン履歴

R2018b で導入