このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
NR PUSCH のリソース割り当てと DM-RS および PT-RS 基準信号
この例では、New Radio (NR) 物理アップリンク共有チャネル (PUSCH)、ならびに関連する復調基準信号 (DM-RS) と位相トラッキング基準信号 (PT-RS) の時間-周波数の側面について説明します。この例では、PUSCH のリソース割り当てが DM-RS および PT-RS の時間-周波数構造に与える影響を示します。
はじめに
5G NR の PUSCH は、ユーザー データを伝送する物理アップリンク チャネルです。DM-RS および PT-RS は、PUSCH に関連付けられた基準信号です。DM-RS は、PUSCH のコヒーレント復調の一部としてチャネル推定に使用されます。共通位相誤差 (CPE) を補正するため、3GPP 5G NR では PT-RS が導入されています。局部発振器で発生する位相ノイズは、mmWave の周波数で大幅な劣化を引き起こします。これにより CPE とキャリア間干渉 (ICI) が発生します。CPE は、各サブキャリアで受信シンボルを同一方向に回転させます。ICI は、サブキャリア間の直交性の喪失につながります。PT-RS は、主にシステム パフォーマンスに対する CPE の影響を推定して最小化するために使用されます。
基準信号の時間-周波数構造は、TS 38.211 の Section 6.4.1.1 および 6.4.1.2 [1] で定義されているように、PUSCH 用に構成された波形のタイプによって異なります。トランスフォーム プリコーディングが無効になっている場合、構成される波形は巡回プレフィックス直交周波数分割多重 (CP-OFDM) になります。トランスフォーム プリコーディングが有効になっている場合、構成される波形は離散フーリエ変換拡散直交周波数分割多重 (DFT-s-OFDM) になります。
5G Toolbox™ には、物理 (PHY) レイヤーをさまざまな粒度でモデル化するための関数が用意されています。トランスポート チャネルおよび物理チャネルの処理を実行する PHY チャネル レベルの関数をはじめ、巡回冗長検査 (CRC) 符号化、コード ブロック セグメンテーション、低密度パリティ チェック (LDPC) チャネル符号化などを実行する個別チャネルの処理ステージ関数に至るまで、さまざまな粒度に対応しています。このツールボックスでは、PUSCH に関連付けられた基準信号の機能が、関数nrPUSCHDMRS、nrPUSCHDMRSIndices、nrPUSCHPTRS、およびnrPUSCHPTRSIndicesとして提供されています。
PUSCH
PUSCH は、ユーザー データを伝送する物理チャネルです。PUSCH に割り当てられたリソースは、TS 38.214 の Section 6.1.2 [2] で定義されているように、キャリアの bandwidth part (BWP) 内にあります。PUSCH の送信に関する時間領域のリソースは、downlink control information (DCI) の "Time domain resource assignment" フィールドによってスケジュールされます。このフィールドは、PUSCH のスロット オフセット 、開始シンボル "S"、割り当て長 "L"、およびマッピング タイプを示します。"S" および "L" の有効な組み合わせを表 1 に示します。

PUSCH の送信に関する周波数領域のリソースは、DCI の "Frequency domain resource assignment" フィールドによってスケジュールされます。このフィールドは、割り当てタイプに基づき、リソース ブロック (RB) のリソース割り当てが連続的か非連続的かを示します。割り当てられた RB は BWP 内にあります。
5G Toolbox™ には、BWP 内の PUSCH に関連するパラメーターを設定するためのnrCarrierConfigオブジェクトおよびnrPUSCHConfigオブジェクトが用意されています。
% Setup the carrier with 15 kHz subcarrier spacing and 10 MHz bandwidth carrier = nrCarrierConfig; carrier.SubcarrierSpacing = 15; carrier.CyclicPrefix = 'normal'; carrier.NSizeGrid = 52; carrier.NStartGrid = 0; % Configure the physical uplink shared channel parameters pusch = nrPUSCHConfig; pusch.NSizeBWP = []; % Empty implies that the value is equal to NSizeGrid pusch.NStartBWP = []; % Empty implies that the value is equal to NStartGrid pusch.PRBSet = 0:25; % Allocate half of the carrier bandwidth pusch.SymbolAllocation = [0 14]; % Symbol allocation [S L] pusch.MappingType = 'A'; % PUSCH mapping type ('A' or 'B') pusch.TransmissionScheme = 'nonCodebook'; % ('codebook' or 'nonCodebook') % The following parameters are applicable when TransmissionScheme is set % to 'codebook' pusch.NumAntennaPorts = 4; pusch.TPMI = 0;
CP-OFDM 用の DM-RS
DM-RS は、無線チャネルを推定するために使用されます。DM-RS は、PUSCH に対してスケジュールされた RB にのみ存在します。DM-RS の構造は、さまざまな展開シナリオとユース ケースをサポートするように設計されています。
時間リソースを制御するパラメーター
DM-RS の時間リソースは、次のパラメーターによって制御されます。
PUSCH シンボルの割り当て
マッピング タイプ
スロット内の周波数ホッピング
DM-RS タイプ A の位置
DM-RS 長
DM-RS の追加の位置
PUSCH シンボルの割り当ては、PUSCH の送信に割り当てられた OFDM シンボルのスロット内の位置を示します。マッピング タイプは、最初の DM-RS OFDM シンボルの位置と OFDM シンボルの持続時間 () を示します。マッピング タイプ A の場合、 は、割り当てられた PUSCH リソースのスロットにおける最初の OFDM シンボルから最後の OFDM シンボルまでの持続時間です。マッピング タイプ B の場合、 は、割り当てられた PUSCH リソースの持続時間です。スロット内周波数ホッピングが有効になっている場合、 は、ホップ 1 つあたりの持続時間です。スロット内周波数ホッピングが有効になっている場合、各ホップに DM-RS シンボルが存在します。スロット内周波数ホッピングが有効になっている場合、DM-RS は、追加位置の最大数が 0 または 1 である単一シンボルになります。DM-RS シンボルの位置は、TS 38.211 の Table 6.4.1.1.3-3、6.4.1.1.3-4、および 6.4.1.1.3-6 に示されています。図 1 は、PUSCH のマッピング タイプが A、スロット内周波数ホッピングが有効、DM-RS 追加位置の数が 1 の場合に、PUSCH において 14 シンボルを占める DM-RS シンボルの位置を示しています。この図は、各ホップに DM-RS が存在することを示しています。各ホップにおける DM-RS シンボルの位置は、各ホップで PUSCH に割り当てられた OFDM シンボルの数によって異なります。

その他の DM-RS パラメーターの詳細については、NR PDSCH のリソース割り当てと DM-RS および PT-RS 基準信号を参照してください。
% Assign intra-slot frequency hopping for PUSCH pusch.FrequencyHopping = 'intraSlot'; % 'neither', 'intraSlot', 'interSlot' pusch.SecondHopStartPRB = 26; % Set the parameters that control the time resources of DM-RS pusch.DMRS.DMRSTypeAPosition = 2; % 2 or 3 pusch.DMRS.DMRSLength = 1; % 1 or 2 (single-symbol or double-symbol) pusch.DMRS.DMRSAdditionalPosition = 1; % 0...3 (Number of additional DM-RS positions)
周波数リソースを制御するパラメーター
DM-RS の周波数リソースは、次のパラメーターによって制御されます。
DM-RS の構成タイプ
DM-RS のアンテナ ポート
構成タイプは、DM-RS の周波数密度を示し、RRC のメッセージ "dmrs-Type" によってシグナリングされます。構成タイプ 1 は、各アンテナ ポートの物理リソース ブロック (PRB) ごとに 6 つのサブキャリアを定義し、交互に入れ替わるサブキャリアで構成されます。構成タイプ 2 は、各アンテナ ポートの PRB ごとに 4 つのサブキャリアを定義し、連続する 2 つのサブキャリアから成る 2 つのグループで構成されます。関連付けられたアンテナ ポートまたは code division multiplexing (CDM) グループに応じ、使用する一連のサブキャリアにさまざまな差分シフトが適用されます。構成タイプ 1 の場合、使用可能な 8 つのアンテナ ポート (p=0...7) に対して 2 種類の CDM グループ/シフトが存在できます。構成タイプ 2 の場合、12 個のアンテナ ポート (p=0...11) に対して 3 種類の CDM グループ/シフトが存在できます。詳細については、NR PDSCH のリソース割り当てと DM-RS および PT-RS 基準信号を参照してください。
コードブックベースの PUSCH 処理の場合、各レイヤーに存在する DM-RS サブキャリア位置の結合がすべてのアンテナ ポートに投影されます。
% Set the parameters that control the frequency resources of DM-RS pusch.DMRS.DMRSConfigurationType = 1; % 1 or 2 pusch.DMRS.DMRSPortSet = 0; % The read-only properties DeltaShifts and DMRSSubcarrierLocations of DMRS % property of pusch object provides the values of delta shift(s) and DM-RS % subcarrier locations in an RB for each antenna port configured. pusch.DMRS.DeltaShifts
ans = 0
pusch.DMRS.DMRSSubcarrierLocations
ans = 6×1
0
2
4
6
8
10
シーケンスの生成
DM-RS で使用される疑似乱数シーケンスは、長さが である Gold シーケンスです。このシーケンスは、すべての共通リソース ブロック (CRB) にわたって生成されますが、データが送信されない周波数領域外のチャネル推定ではシーケンスが必要ないため、データに割り当てられた RB でのみ送信されます。すべての CRB について基準信号シーケンスを生成することで、マルチユーザー MIMO の場合において、時間-周波数リソースがオーバーラップする複数の UE で基となる同じ疑似乱数シーケンスが確実に使用されるようになります。シーケンスの生成は、次のパラメーターによって制御されます。
DM-RS スクランブリング アイデンティティ ()
DM-RS スクランブリング初期化 ()
スロット内の OFDM シンボルの数
無線フレーム内のスロット番号
DM-RS シンボルの位置
PRB の割り当て
キャリア オブジェクトの CyclicPrefix プロパティは、スロット内の OFDM シンボルの数を制御します。キャリア オブジェクトの NSlot プロパティは、スロット番号を制御します。
コードブックベースの PUSCH 処理の場合、シーケンスは、レイヤーの数、アンテナ ポートの数、および送信プリコーダー行列インジケーター (TPMI) に基づき、プリコーダー行列によって乗算されます。
% Set the parameters that only control the DM-RS sequence generation pusch.DMRS.NIDNSCID = 1; % Use empty to set it to NCellID of the carrier pusch.DMRS.NSCID = 0; % 0 or 1 % Generate DM-RS symbols pusch.NumLayers = numel(pusch.DMRS.DMRSPortSet); dmrsSymbols = nrPUSCHDMRS(carrier,pusch); % Plot the constellation scatterplot(dmrsSymbols) title('DM-RS Constellation') xlabel('Real') ylabel('Imaginary')

% The read-only properties TimeWeights and FrequencyWeights of DMRS % property of pusch object provides the values of time and frequency % weights applied to the DM-RS symbols. pusch.DMRS.TimeWeights
ans = 2×1
1
1
pusch.DMRS.FrequencyWeights
ans = 2×1
1
1
% Generate DM-RS indices dmrsIndices = nrPUSCHDMRSIndices(carrier,pusch); % Map the DM-RS symbols to the grid with the help of DM-RS indices if strcmpi(pusch.TransmissionScheme,'codebook') nports = pusch.NumAntennaPorts; else nports = pusch.NumLayers; end grid = zeros([12*carrier.NSizeGrid carrier.SymbolsPerSlot nports]); grid(dmrsIndices) = dmrsSymbols; figure imagesc(abs(grid(:,:,1))); axis xy; xlabel('OFDM Symbols'); ylabel('Subcarriers'); title('DM-RS Time-Frequency Locations');

CP-OFDM 用の PT-RS
PT-RS は、位相トラッキング基準信号です。PT-RS は、主にシステム パフォーマンスに対する CPE の影響を推定して最小化するために使用されます。位相ノイズの特性により、PT-RS 信号は周波数領域の密度が低く、時間領域の密度が高くなります。PT-RS は常に DM-RS と組み合わせて使用され、PT-RS を使用するようにネットワークが構成されている場合にのみ使用されます。
時間リソースを制御するパラメーター
PT-RS は、アップリンクの上位レイヤーのパラメーター "DMRS-UplinkConfig" を使用して構成します。PT-RS の時間リソースは、次のパラメーターによって制御されます。
DM-RS シンボルの位置
PT-RS の時間密度 ()
は、スケジュールされた変調および符号化スキームによって決まります。値は {1、2、4} のいずれかでなければなりません。DM-RS シンボルの位置を制御するパラメーターについては、DM-RS の時間リソースを制御するパラメーター (CP-OFDM) を参照してください。
% Set the EnablePTRS property in pusch to 1 pusch.EnablePTRS = 1; % Set the parameters that control the time resources of PT-RS pusch.PTRS.TimeDensity = 2;
周波数リソースを制御するパラメーター
PT-RS は、1 つの OFDM シンボルにつき RB 内の 1 つのサブキャリアのみを占有します。PT-RS の周波数リソースは、次のパラメーターによって制御されます。
PRB の割り当て
DM-RS の構成タイプ
PT-RS の周波数密度 ()
無線ネットワーク一時識別子 ()
リソース エレメントのオフセット
PT-RS のアンテナ ポート
は、スケジュールされた帯域幅によって決まります。値は 2 または 4 です。この値は、PT-RS が 2 つの RB ごとに現れるか 4 つの RB ごとに現れるかを示します。
詳細については、NR PDSCH のリソース割り当てと DM-RS および PT-RS 基準信号を参照してください。
% Set the parameters that control PT-RS subcarrier locations pusch.RNTI = 1; pusch.DMRS.DMRSConfigurationType = 1; pusch.DMRS.DMRSPortSet = 0; % Set the PT-RS parameters pusch.PTRS.FrequencyDensity = 2; % 2 or 4 pusch.PTRS.REOffset = '10'; % '00', '01', '10', '11' pusch.PTRS.PTRSPortSet = min(pusch.DMRS.DMRSPortSet);
シーケンスの生成
PT-RS の生成に使用されるシーケンスは、DM-RS のシーケンス生成に使用される疑似乱数シーケンスと同じです。スロット内周波数ホッピングがない場合、PT-RS シーケンスの値は最初の DM-RS シンボルの位置に依存します。スロット内周波数ホッピングがある場合、PT-RS シーケンスの値は各ホップの最初の DM-RS シンボルの位置によって異なります。詳細については、DM-RS のシーケンス生成 (CP-OFDM) のセクションを参照してください。
コードブックベースの PUSCH 処理の場合、シーケンスは、レイヤーの数、アンテナ ポートの数、および送信プリコーダー行列インジケーター (TPMI) に基づき、プリコーダー行列によって乗算されます。
% Set the parameters that control the PT-RS sequence generation pusch.DMRS.NIDNSCID = 1; % Use empty to set it to NCellID of the carrier pusch.DMRS.NSCID = 0; % 0 or 1
PUSCH、DM-RS、PT-RS のリソース エレメント (RE) インデックスを生成します。また、DM-RS シンボルと PT-RS シンボルも生成します。
% Control the resource elements available for data in DM-RS OFDM symbol % locations pusch.DMRS.NumCDMGroupsWithoutData = 1; % PUSCH, DM-RS and PT-RS indices pusch.NumLayers = numel(pusch.DMRS.DMRSPortSet); [puschIndices, puschInfo] = nrPUSCHIndices(carrier,pusch); dmrsIndices = nrPUSCHDMRSIndices(carrier,pusch); ptrsIndices = nrPUSCHPTRSIndices(carrier,pusch); % DM-RS and PT-RS symbols dmrsSymbols = nrPUSCHDMRS(carrier,pusch); ptrsSymbols = nrPUSCHPTRS(carrier,pusch);
PUSCH、DM-RS、および PT-RS の RE インデックスを、スケーリングされた値でグリッドにマッピングし、それぞれの位置をグリッド上で可視化します。
chpLevel = struct; chpLevel.PUSCH = 0.4; chpLevel.DMRS = 1; chpLevel.PTRS = 1.4; gridCPOFDM = complex(zeros([carrier.NSizeGrid*12 carrier.SymbolsPerSlot nports])); gridCPOFDM(puschIndices) = chpLevel.PUSCH; dmrsFactor = chpLevel.DMRS*(1/(max(abs(dmrsSymbols)))); gridCPOFDM(dmrsIndices) = dmrsFactor*dmrsSymbols; ptrsFactor = chpLevel.PTRS*(1/(max(abs(ptrsSymbols)))); gridCPOFDM(ptrsIndices) = ptrsFactor*ptrsSymbols; plotGrid(gridCPOFDM,1,chpLevel)

前の図では、物理アップリンク共有チャネルの割り当て内における OFDM シンボルの開始位置から PT-RS が配置されています。このシンボルは、他の PT-RS シンボルまたは DM-RS シンボルからホップ間隔 だけ離れた場所に現れます。PT-RS の連続するサブキャリア位置の差は 24 です。これは、RB 内のサブキャリアの数 (12) に PT-RS の周波数密度 (2) を乗算した数値です。
DFT-s-OFDM 用の DM-RS
DFT-s-OFDM は、単一レイヤー伝送のみをサポートし、主にカバレッジの狭いシナリオで使用されます。DFT-s-OFDM の DM-RS の時間-周波数リソースは、低いキュービック メトリックと高い電力増幅器効率を実現するように構成されています。他のアップリンク データ伝送で周波数多重化された基準信号を送信すると、キュービック メトリックが増加するため、電力増幅器の効率に大きな影響を与えます。基準信号はアップリンク伝送で時間多重化されるため、DM-RS を伝送する OFDM シンボルに含まれるデータ伝送用のリソース エレメントがすべてブロックされます。
時間リソースを制御するパラメーター
DFT-s-OFDM における DM-RS の時間リソースは、次のパラメーターによって制御されます。
PUSCH シンボルの割り当て
マッピング タイプ
スロット内の周波数ホッピング
DM-RS タイプ A の位置
DM-RS 長
DM-RS の追加の位置
これらのパラメーターは、CP-OFDM の DM-RS の時間リソースを制御するパラメーターと同じです。詳細については、DM-RS の時間リソースを制御するパラメーター (CP-OFDM) を参照してください。
% Set the TransformPrecoding property in pusch to 1 pusch.TransformPrecoding = 1; % Parameters that control the time resources pusch.DMRS.DMRSTypeAPosition = 2; pusch.DMRS.DMRSLength = 1; pusch.DMRS.DMRSAdditionalPosition = 0;
周波数リソースを制御するパラメーター
DFT-s-OFDM における DM-RS の周波数リソースは、次のパラメーターによって制御されます。
DM-RS の構成タイプ
DM-RS のアンテナ ポート
これら 2 つのパラメーターは、CP-OFDM のパラメーターと同じです。DM-RS の構成タイプは、常に 1 に設定されます。DM-RS のアンテナ ポートは、形式的に値 0 のスカラーとなります。

DFT-s-OFDM はカバレッジの狭いシナリオ向けであるため、マルチユーザー MIMO の状況をサポートする必要はありません。MIMO の状況をサポートしない場合、基準信号は、OFDM の場合のように CRB に対して生成されるのではなく、送信された PRB に対してのみ生成されます。DFT-s-OFDM では、単一のレイヤーおよび単一の構成タイプが許可されているため、RB 内の DM-RS に使用されるサブキャリア位置の数は一定となります。図 2 は、スロット全体にまたがる PUSCH に割り当てられた OFDM シンボルを使用してタイプ A をマッピングする場合の、DFT-s-OFDM における DM-RS サブキャリアの位置を示しています。
% Set the DM-RS antenna port
pusch.DMRS.DMRSPortSet = 0;シーケンスの生成
DM-RS シーケンスは、DFT-s-OFDM の ZadoffChu シーケンスです。この直交シーケンスは、1 つのグループ番号とシーケンス番号に対して複数のサイクリック シフトを使用することで生成されます。シーケンスの生成は、次のパラメーターによって制御されます。
PRB の割り当て
グループ ホッピング
シーケンス ホッピング
DM-RS スクランブリング アイデンティティ ()
DM-RS シンボルの位置
% Parameters that control the sequence generation pusch.DMRS.SequenceHopping = 0; % Sequence hopping (0 or 1) pusch.DMRS.GroupHopping = 1; % Group hopping (0 or 1) pusch.DMRS.NRSID = 1; % Use empty to set it to NCellID of carrier % Generate the DM-RS symbols and indices pusch.NumLayers = numel(pusch.DMRS.DMRSPortSet); dmrsSymbols = nrPUSCHDMRS(carrier,pusch); dmrsIndices = nrPUSCHDMRSIndices(carrier,pusch); dmrsFactor = chpLevel.DMRS*(1/(max(abs(dmrsSymbols)))); % Map DM-RS onto the grid grid = complex(zeros([12*carrier.NSizeGrid carrier.SymbolsPerSlot nports])); grid(dmrsIndices) = dmrsFactor*dmrsSymbols; % Generate PUSCH indices and map onto the grid puschIndices = nrPUSCHIndices(carrier,pusch); grid(puschIndices) = chpLevel.PUSCH; % Plot the grid titleText = 'Carrier Grid Containing PUSCH and DM-RS'; plotGrid(grid,1,struct('PUSCH',chpLevel.PUSCH,'DMRS',chpLevel.DMRS),titleText,{'PUSCH','DM-RS'})

DM-RS を占有する OFDM シンボル内のサブキャリア位置は、PUSCH に割り当てられません。
DFT-s-OFDM 用の PT-RS
DFT-s-OFDM の PT-RS は、トランスフォーム プリコーディングの段階でデータとともに挿入されます。
時間リソースを制御するパラメーター
DFT-s-OFDM で PT-RS の時間リソースを制御するパラメーターは、CP-OFDM で PT-RS の時間リソースを制御するパラメーターと同じです。DFT-s-OFDM では、 の値は 1 または 2 です。詳細については、PT-RS の時間リソースを制御するパラメーター (CP-OFDM) を参照してください。
% Generate a grid with shared channel allocation for an RB in a single slot % with complete symbol allocation of 14 symbols for a single layer % Set the carrier resource grid with one RB carrier.NSizeGrid = 1; % Configure PUSCH with DFT-s-OFDM and no frequency hopping pusch.TransformPrecoding = 1; pusch.FrequencyHopping = 'neither'; % Set the parameter that control PT-RS time resources pusch.EnablePTRS = 1; pusch.PTRS.TimeDensity = 2;
周波数リソースを制御するパラメーター
周波数領域における PT-RS のパターンは、CP-OFDM とはまったく異なります。PT-RS のサンプルは、チャンクまたはグループ () として挿入されます。各グループは、PT-RS が存在する各 OFDM シンボルに対してスケジュールされた帯域幅内の有限個のサンプル () で構成されます。
DFT-s-OFDM における PT-RS の周波数リソースは、次のパラメーターによって制御されます。
PRB の割り当て
グループ内の PT-RS サンプルの数 ()
PT-RS グループの数 ()
PT-RS のサンプル密度 ([]) の有効な組み合わせは、{[2 2]、[2 4]、[4 2]、[4 4]、[4 8]} です。DFT-s-OFDM では、OFDM シンボル内の PT-RS サンプルの数がすべての PT-RS グループ内の PT-RS サンプルの数に基づいて決定されます。この数は、PUSCH 内の RB の数に基づいて PT-RS サンプルの数が増加する CP-OFDM とは異なります。
図 3 は、PT-RS を伝送する OFDM シンボルに対し、PT-RS サンプルの数が 2 に設定され、PT-RS グループの数が 2 に設定された RB の PT-RS シンボルのサブキャリア位置を示しています。

PT-RS サンプルの密度 [2 2] は、スケジュールされた帯域幅内にそれぞれ 2 つのシンボルを持つ 2 つの PT-RS グループがあることを意味します。
PT-RS は、トランスフォーム プリコーディングの入力時にレイヤード シンボルとともに挿入されます。トランスフォーム プリコーディングの後、レイヤード シンボルと PT-RS の両方がデータとして扱われます。そのため、PT-RS はグリッド内で直接表示されません。
% Set the parameters that control PT-RS frequency resources pusch.PRBSet = 0:carrier.NSizeGrid-1; pusch.PTRS.NumPTRSSamples = 2; % 2, 4 pusch.PTRS.NumPTRSGroups = 2; % 2, 4, 8
シーケンスの生成
DFT-s-OFDM の PT-RS シーケンスは、修正された pi/2-BPSK シーケンスです。シーケンスの生成は、次のパラメーターによって制御されます。
PUSCH の割り当てにおける先頭の OFDM シンボル
スロット内の OFDM シンボルの数
無線フレーム内のスロット番号
PT-RS スクランブリング アイデンティティ ()
PT-RS サブキャリアの位置
% Set the parameters that control PT-RS sequence generation pusch.DMRS.NRSID = 1; pusch.PTRS.NID = 10; % Use empty to set it to NRSID of DMRS configuration
PUSCH および PT-RS の RE インデックスを生成します。
% PUSCH, and PT-RS indices
[puschIndices, puschInfoDFTsOFDM] = nrPUSCHIndices(carrier,pusch);
ptrsIndices = nrPUSCHPTRSIndices(carrier,pusch);PUSCH および PT-RS のリソース エレメントを定数値に設定します。
% Insert PT-RS along with the PUSCH data
GdPTRS = size(reshape(ptrsIndices,[],pusch.NumLayers),1);
dataWithPTRS = chpLevel.PUSCH*ones(puschInfoDFTsOFDM.Gd+GdPTRS,1);
dataWithPTRS(ptrsIndices(:,1)) = chpLevel.PTRS;PT-RS の投影をグリッド上にプロットします。
gridDFTsOFDM = zeros(numel(pusch.PRBSet)*12, carrier.SymbolsPerSlot); % Map the grid with data and reference signals gridDFTsOFDM(:,puschInfoDFTsOFDM.DMRSSymbolSet+1) = chpLevel.DMRS; gridDFTsOFDM(~(gridDFTsOFDM==chpLevel.DMRS)) = dataWithPTRS; % Plot the projections of data, DM-RS and PT-RS on grid before transform % precoding fNames = {'PUSCH','DM-RS+Res','PT-RS'}; titleText = 'Projection of Data, DM-RS, and PT-RS before Transform Precoding'; plotGrid(gridDFTsOFDM,1,chpLevel,titleText,fNames)

その他の調査
基準信号の時間リソースと周波数リソースに影響を与えるパラメーターを変更し、各信号の RE の位置がどのように変化するかを観察してみましょう。
DM-RS および PT-RS に設定されているアンテナ ポートの数を変更し、ポート間の基準信号とデータの変化を観察します。たとえば、2 つのアンテナ ポート 0 と 2 に構成タイプ 1 で DM-RS を構成し、アンテナ ポート 0 に PT-RS を構成してみます。PUSCH インデックス、DM-RS 信号 (インデックスとシンボル)、および PT-RS 信号 (インデックスとシンボル) を生成します。これらをグリッドにマッピングし、両方のポートのグリッドを可視化します。
PT-RS のシンボルとインデックスを使用し、チャネル推定と位相トラッキングを実行してみましょう。NR PUSCH スループットの手順に従ってスループットを計算します。
この例では、DM-RS と PT-RS のシーケンスを生成する方法、およびそれらのシーケンスを OFDM のキャリア リソース グリッドにマッピングする方法を示しています。また、さまざまな波形の基準信号の時間-周波数構造を制御するプロパティについて説明しています。たとえば、CP-OFDM および DFT-s-OFDM の基準信号の時間-周波数パターンや、さまざまな波形の基準信号に対して生成されるシーケンスの変化です。
参考文献
3GPP TS 38.211. "NR; Physical channels and modulation" 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.
3GPP TS 38.214. "NR; Physical layer procedures for data" 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.
3GPP TS 38.212. "NR; Multiplexing and channel coding" 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.
ローカル関数
function plotGrid(grid,nLayer,chpLevel,titleText,names) % plotGrid Display resource grid GRID of the layer number NLAYER with the % legend containing physical channel and associated reference signals, at % different power levels CHPLEVEL with title TITLETEXT. Legend is created % using a cell array of character vectors NAMES. if nargin < 4 titleText = 'Carrier Grid Containing PUSCH, DM-RS and PT-RS'; end if nargin < 5 names = {'PUSCH', 'DM-RS', 'PT-RS'}; end map = parula(64); cscaling = 40; im = image(1:size(grid,2),1:size(grid,1),cscaling*abs(grid(:,:,nLayer))); colormap(im.Parent,map); % Add legend to the image chpval = struct2cell(chpLevel); clevels = cscaling*[chpval{:}]; N = length(clevels); L = line(ones(N),ones(N), 'LineWidth',8); % Generate lines % Index the color map and associated the selected colors with the lines set(L,{'color'},mat2cell(map( min(1+clevels,length(map) ),:),ones(1,N),3)); % Set the colors according to map % Create legend legend(names{:}); axis xy; ylabel('Subcarriers'); xlabel('OFDM Symbols'); title(titleText); end