メインコンテンツ

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

nrPUSCHDMRSIndices

PUSCH DM-RS インデックスの生成

説明

ind = nrPUSCHDMRSIndices(carrier,pusch) は、TS 38.211 の Section 6.4.1.1.1 [1]の定義に基づき、物理アップリンク共有チャネル (PUSCH) の復調基準信号 (DM-RS) のリソース エレメント (RE) インデックスを含む行列を返します。carrier は、特定の OFDM numerology のキャリア構成パラメーターを指定します。pusch は、PUSCH 構成パラメーターを指定します。線形インデックス形式を使用して返されるインデックスは 1 ベースです。

ind = nrPUSCHDMRSIndices(carrier,pusch,Name,Value) は、1 つ以上の名前と値のペアの引数を使用して、出力フォーマット オプションを指定します。指定していないオプションは既定値になります。

すべて折りたたむ

既定のプロパティを使用してキャリア構成オブジェクトを作成します。このオブジェクトは、サブキャリア間隔が 15 kHz である 10 MHz キャリアに対応します。

carrier = nrCarrierConfig;

物理アップリンク共有チャネル (PUSCH) 構成オブジェクトを作成してプロパティを指定します。トランスフォーム プリコーディングが 0 に設定されている場合、波形タイプは、サイクリック プレフィックス直交周波数分割多重 (CP-OFDM) です。

pusch = nrPUSCHConfig;
pusch.TransformPrecoding = 0;
pusch.TransmissionScheme = 'codebook';
pusch.NumAntennaPorts = 4;
pusch.TPMI = 0;

指定したパラメーターで PUSCH 復調基準信号 (DM-RS) オブジェクトを構成します。

pusch.DMRS.DMRSAdditionalPosition = 2;
pusch.DMRS.DMRSTypeAPosition = 2;
pusch.DMRS.DMRSPortSet = 3;
pusch.DMRS.NIDNSCID = 15;
pusch.DMRS.NSCID = 1;

添え字インデックス形式の PUSCH に関連付けられた DM-RS インデックスを生成します。

ind = nrPUSCHDMRSIndices(carrier,pusch,'IndexStyle','subscript')
ind = 3744×3 uint32 matrix

    2    3    1
    4    3    1
    6    3    1
    8    3    1
   10    3    1
   12    3    1
   14    3    1
   16    3    1
   18    3    1
   20    3    1
   22    3    1
   24    3    1
   26    3    1
   28    3    1
   30    3    1
      ⋮

サブキャリア間隔が 30 kHz で伝送帯域幅が 5 MHz のキャリア構成を作成します。

carrier = nrCarrierConfig;
carrier.SubcarrierSpacing = 30;
carrier.NSizeGrid = 11;

物理アップリンク共有チャネル (PUSCH) 構成オブジェクトを作成してプロパティを指定します。トランスフォーム プリコーディングが 1 に設定されている場合、波形タイプは離散フーリエ変換拡散直交周波数分割多重 (DFT-s-OFDM) です。

pusch = nrPUSCHConfig;
pusch.NSizeBWP = 9;
pusch.NStartBWP = 1;
pusch.PRBSet = 0:3;
pusch.TransformPrecoding = 1;
pusch.FrequencyHopping = 'intraSlot';
pusch.SecondHopStartPRB = 5;

PUSCH 復調基準信号 (DM-RS) オブジェクトを作成してプロパティを指定します。

dmrs = nrPUSCHDMRSConfig;
dmrs.DMRSAdditionalPosition = 1;
dmrs.DMRSTypeAPosition = 2;
dmrs.DMRSPortSet = 3;
dmrs.GroupHopping = 1;
dmrs.SequenceHopping = 0;
dmrs.NRSID = 10;

PUSCH DM-RS 構成オブジェクトを PUSCH 構成オブジェクトの DMRS プロパティに割り当てます。

pusch.DMRS = dmrs;

キャリア構成、PUSCH 構成、および出力フォーマットの name-value ペアの引数を指定して、PUSCH DM-RS のシンボルとインデックスを生成します。

sym = nrPUSCHDMRS(carrier,pusch,'OutputDataType','single')
sym = 96×1 single column vector

  -0.7071 - 0.7071i
  -0.7071 - 0.7071i
  -0.7071 - 0.7071i
   0.7071 - 0.7071i
  -0.7071 - 0.7071i
  -0.7071 - 0.7071i
  -0.7071 - 0.7071i
   0.7071 - 0.7071i
   0.7071 + 0.7071i
  -0.7071 + 0.7071i
  -0.7071 - 0.7071i
  -0.7071 + 0.7071i
  -0.7071 - 0.7071i
   0.7071 + 0.7071i
  -0.7071 - 0.7071i
      ⋮

ind = nrPUSCHDMRSIndices(carrier,pusch,'IndexBase','0based','IndexOrientation','bwp')
ind = 96×1 uint32 column vector

   217
   219
   221
   223
   225
   227
   229
   231
   233
   235
   237
   239
   241
   243
   245
      ⋮

bandwidth part (BWP) グリッドを作成し、DM-RS シンボルをグリッドにマッピングします。

bwp = complex(zeros([pusch.NSizeBWP*12 carrier.SymbolsPerSlot pusch.NumLayers]));
bwp(ind+1) = sym; % Map the DM-RS symbols

BWP をキャリア リソース グリッドにマッピングし、キャリア グリッドを表示します。

grid = complex(zeros([carrier.NSizeGrid*12 carrier.SymbolsPerSlot pusch.NumLayers])); % Create carrier resource grid
offset = pusch.NStartBWP-carrier.NStartGrid; % BWP start location in the carrier grid
grid(offset*12+1:(offset+pusch.NSizeBWP)*12,:,:) = bwp;
imagesc(abs(grid(:,:,1)));
axis xy;
xlabel('OFDM Symbols');
ylabel('Subcarriers');
title('PUSCH DM-RS Resource Elements in the Carrier Resource Grid');

Figure contains an axes object. The axes object with title PUSCH DM-RS Resource Elements in the Carrier Resource Grid, xlabel OFDM Symbols, ylabel Subcarriers contains an object of type image.

入力引数

すべて折りたたむ

特定の OFDM numerology のキャリア構成パラメーター。nrCarrierConfig オブジェクトとして指定します。この関数は、nrCarrierConfig オブジェクトの次のプロパティのみを使用します。

PUSCH 構成パラメーター。nrPUSCHConfig オブジェクトとして指定します。この関数は、nrPUSCHConfig オブジェクトの次のプロパティのみを使用します。

周波数範囲 1 (FR1) の共有スペクトル チャネル アクセスの操作では、Interlacing プロパティを true に設定し、RBSetIndex オブジェクト プロパティと InterlaceIndex オブジェクト プロパティを使用して、割り当てられた周波数リソースを指定します。 (R2023b 以降)

名前と値の引数

すべて折りたたむ

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: 'IndexStyle','subscript','IndexBase','0based' は、既定以外のリソース エレメントのインデックス形式プロパティを指定します。

RE インデックス形式。次の値のいずれかとして指定します。

  • 'index' — 線形インデックス形式のインデックス

  • 'subscript' — 添字行形式 [subcarrier, symbol, antenna] のインデックス

データ型: char | string

RE インデックス ベース。次の値のいずれかとして指定します。

  • '1based' — 1 からカウントを開始するインデックス

  • '0based' — 0 からカウントを開始するインデックス

データ型: char | string

リソース エレメントのインデックス方向。'IndexOrientation' と次の値のいずれかで構成されるコンマ区切りのペアとして指定します。

  • 'carrier' — キャリア グリッドを基準として参照されるインデックス

  • 'bwp' — bandwidth part を基準として参照されるインデックス

データ型: char | string

出力引数

すべて折りたたむ

DM-RS リソース エレメントのインデックス。次の値のいずれかとして返されます。

  • NP 列の行列 — 'IndexStyle''index' に設定されている場合、関数はこのタイプの値を返します。列数は nrPUSCHConfig オブジェクトの TransmissionScheme プロパティにより決まり、これらの値のいずれかとして返されます。

    • トランスミッション レイヤーの数 — トランスミッション スキームが非コードブックの場合

    • 構成されたアンテナ ポートの数 — トランスミッション スキームがコードブックの場合

  • M 行 3 列の行列 — 'IndexStyle''subscript' に設定されている場合、関数はこのタイプの値を返します。行列の列は、サブキャリア の数、OFDM シンボル、およびアンテナ ポートの数をそれぞれベースとした添字 [subcarrier, symbol, antenna] に対応します。

'IndexBase' の値に応じて、関数は 1 ベースのインデックスまたは 0 ベースのインデックスのいずれかを返します。'IndexOrientation' の値に応じて、関数はキャリアに基づくインデックスまたは BMP に基づくインデックスのいずれかを返します。

データ型: uint32

参照

[1] 3GPP TS 38.211. “NR; Physical channels and modulation.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

拡張機能

すべて展開する

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

バージョン履歴

R2020a で導入

すべて展開する