Main Content

nrTransformPrecode

トランスフォーム プリコーディングされたシンボルの生成

説明

tpSym = nrTransformPrecode(modSym,mrb) は、TS 38.211 の Section 6.3.1.4 および 6.3.2.6.4[1]で定義されているように、変調シンボル modSym のトランスフォーム プリコーディングされたシンボルを生成します。mrb は、物理アップリンク共有チャネル (PUSCH)、物理アップリンク制御チャネル (PUCCH) フォーマット 3、または PUCCH フォーマット 4 の送信に割り当てられたリソース ブロックの数です。mrb は、個別にトランスフォーム プリコーディングされた modSym に含まれるサブブロックの長さを決定します。

NR アップリンクでは、トランスフォーム プリコーディングと CP-OFDM 変調が併用されて SC-FDMA (DFT-s-OFDM) 波形が作成されます。トランスフォーム プリコーディングは次の送信にのみ適用されます。

  • 単一レイヤーの送信を使った PUSCH における MIMO プリコーディングの前。

  • PUCCH フォーマット 3 送信におけるシンボル変調の後。

  • PUCCH フォーマット 4 送信におけるブロック単位の拡散の後。

すべて折りたたむ

960 ビットの PUSCH コードワードに対応するバイナリ値のランダム シーケンスを生成します。

cw = randi([0 1],960,1);

指定した物理レイヤーのセル ID 番号と RNTI で初期化された PUSCH スクランブルを実行します。

ncellid = 42;
rnti = 101;
scrambled = nrPUSCHScramble(cw,ncellid,rnti);

16-QAM 変調スキームを使用し、スクランブル後の PUSCH コードワードを変調します。

modulation = '16QAM';
modSym = nrSymbolModulate(scrambled,modulation);

単一のトランスミッション レイヤーを使用し、レイヤー マッピングを実行します。

layeredSym = nrLayerMap(modSym,1);

2 つのリソース ブロックが割り当てられた PUSCH 帯域幅を使用し、トランスフォーム プリコーディングされたシンボルを生成します。

tpSym = nrTransformPrecode(layeredSym,2);

入力引数

すべて折りたたむ

変調シンボル。複素行列として指定します。modSym の行数は、mrb×12 の倍数でなければなりません。通常、modSym は、単一レイヤーの送信に対応する列ベクトルとして指定します。modSym が行列の場合、関数 nrTransformPrecode は各列を個別に処理して行列を返します。

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

PUSCH、PUCCH フォーマット 3、または PUCCH フォーマット 4 の送信に割り当てられたリソース ブロックの数。正の整数として指定します。mrb は、個別にトランスフォーム プリコーディングされた modSym に含まれるサブブロックの長さを決定します。mrb の値は、2α2 × 3α3 × 5α5 の形式を推奨します。ここで、α2、α3、および α5 は、規格で指定された非負の整数です。

データ型: double

出力引数

すべて折りたたむ

トランスフォーム プリコーディングされたシンボル。複素行列として返されます。tpSym は、入力 modSym の次元を継承します。

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

参照

[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++ コードを生成します。

バージョン履歴

R2019a で導入