Main Content

nrPolarEncode

説明

enc = nrPolarEncode(in,E) は、TS 38.212 の Section 5 [1]で規定されているように、入力メッセージ in の Polar 符号化出力およびレートマッチ後の出力長 E を返します。既定では、入力インターリーブが有効で、符号化されたメッセージの最大長が 512 です。この構文をダウンリンク構成に使用します。

enc = nrPolarEncode(in,E,nmax,iil) は、指定された最大長 2nmax の入力と、iil で指定された入力インターリーブを符号化します。

  • ダウンリンク (DL) 構成の場合、nmaxiil の有効値はそれぞれ 9 と true

  • アップリンク (UL) 構成の場合、nmaxiil の有効値はそれぞれ 10 と false

すべて折りたたむ

長さ K のランダム メッセージの Polar 符号化を実行します。E は、符号化メッセージ enc の長さとは異なるレートマッチ後の出力長を指定します。enc の長さは常に 2 のべき乗です。

K = 132;
E = 300;
msg = randi([0 1],K,1,'int8');
enc = nrPolarEncode(msg,E)
enc = 512x1 int8 column vector

   0
   0
   0
   0
   0
   0
   1
   1
   1
   0
      ⋮

データの Polar 符号化ブロックを送信し、逐次除去リスト復号器を使用してそのデータを復号化します。

1.0 のノイズ分散を使って、加法性ホワイト ガウス ノイズ (AWGN) チャネルを作成します。

nVar = 1.0; 
chan = comm.AWGNChannel('NoiseMethod','Variance','Variance',nVar);

長さ K のランダム メッセージの Polar 符号化を実行します。レートマッチ後の出力は、長さ E です。

K = 132;
E = 256;
msg = randi([0 1],K,1,'int8');
enc = nrPolarEncode(msg,E);

Polar 符号化データを変調します。

mod = nrSymbolModulate(enc,'QPSK');

変調後のデータを AWGN チャネルで送信します。

rSig = chan(mod);

ソフト復調を行います。

rxLLR = nrSymbolDemodulate(rSig,'QPSK',nVar); 

長さ L の逐次除去リスト復号器を使用して Polar 復号化を実行します。

L = 8;
rxBits = nrPolarDecode(rxLLR,K,E,L);

AWGN チャネルで発生したビット エラーの数を求めます。

numBitErrs = biterr(rxBits,msg);
disp(['Number of bit errors: ' num2str(numBitErrs)])
Number of bit errors: 0

入力引数

すべて折りたたむ

入力メッセージ。バイナリ値の列ベクトルとして指定します。in には、CRC ビットが含まれます (該当する場合)。

データ型: double | int8

レートマッチ後の出力長 (ビット単位)。正の整数として指定します。E は、入力メッセージ in の長さ K によって異なります。

  • 18 ≤ K ≤ 25 の場合、E は K + 3 < E ≤ 8192 の範囲内でなければならない。

  • K > 30 の場合、E は K < E ≤ 8192 の範囲内でなければならない。

データ型: double

符号化済みメッセージの最大長の基底 2 の対数。9 または 10 として指定します。

  • DL 構成では 9 を指定。

  • UL 構成では 10 を指定。

N がビット単位の Polar 符号化メッセージの長さである場合、N2nmax になります。TS 38.212 の Section 5.3.1.2 [1]を参照してください。

データ型: double

入力インターリーブ。true または false として指定します。

  • DL 構成では true を指定。

  • UL 構成では false を指定。

データ型: logical

出力引数

すべて折りたたむ

Polar 符号化メッセージ。バイナリ値の列ベクトルとして返されます。enc は、入力メッセージ in からデータ型を継承します。

Polar 符号化メッセージの長さ N は 2 のべき乗でなければなりません。詳細については、TS 38.212 の Section 5.3.1 を参照してください。

  • DL 構成では N ≤ 512。

  • UL 構成では N ≤ 1024。

データ型: double | int8

参照

[1] 3GPP TS 38.212. “NR; Multiplexing and channel coding.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network..

拡張機能

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

バージョン履歴

R2018b で導入