Main Content

nrTransformDeprecode

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

説明

tdpSym = nrTransformDeprecode(modSym,mrb) は、TS 38.211 Section 6.3.1.4 および Section 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);

対応するトランスフォーム デプリコーディング済みシンボルを復元します。

tdpSym = nrTransformDeprecode(tpSym,2);

入力引数

すべて折りたたむ

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

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

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

データ型: double

出力引数

すべて折りたたむ

トランスフォーム デプリコーディングされたシンボル。複素行列として返されます。tdpSym は、入力 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 で導入

参考

関数