Main Content

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

nrPolarDecode

説明

decbits = nrPolarDecode(rec,K,E,L) は、TS 38.212 の Section 5[1]で規定されているように、(N,K) Polar 符号のレート リカバリされた入力 rec を復号化します。ここで、Nrec の長さ、K は復号化されたビット decbits の長さです。この関数は、巡回冗長検査 (CRC) を備えた長さ L の逐次除去リスト復号器を使用します。既定では、出力デインターリーブが有効で、入力の最大長は 512、追加される CRC ビットの数は 24 です。この構文をダウンリンク構成に使用します。

decbits = nrPolarDecode(rec,K,E,L,padCRC) は、CRC 符号化の前に送信端の情報ブロックを 1 で事前パディングするかどうかを指定します。

decbits = nrPolarDecode(rec,K,E,L,padCRC,rnti) は、無線ネットワーク一時識別子 (RNTI) を指定します。rnti の値によって送信端の CRC パリティ ビットがマスクされる場合、この構文を使用できます。

decbits = nrPolarDecode(rec,K,E,L,nmax,iil,CRClen) は、指定した最大長 2nmaxiil で指定された出力デインターリーブ、および CRClen で指定された CRC 付加ビット数を使って、入力を復号化します。この構文は、CRC 符号化の前に送信端の情報ブロックを 1 で事前パディングされず、RNTI が 0 に等しいと仮定しています。

  • ダウンリンク (DL) 構成の場合、nmaxiil、および CRClen の有効値はそれぞれ 9、true、および 24 です。

  • アップリンク (UL) 構成の場合、nmaxiil の有効値はそれぞれ 10 と false であり、CRClen の有効値は 11 または 6 です。

すべて折りたたむ

データの 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

入力引数

すべて折りたたむ

レート リカバリされた入力。実数の列ベクトルとして指定します。入力 rec は、負のバイポーラ マッピングが行われた場合のビットごとの対数尤度比を表します。そのため、01 にマッピングされ、1-1 にマッピングされます。rec の長さは 2 のべき乗でなければなりません。

データ型: single | double

情報ブロックの長さ (ビット単位)。正の整数として指定します。該当する場合、K には CRC ビットが含まれます。

データ型: double

レートマッチ後の出力長 (ビット単位)。正の整数として指定します。

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

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

データ型: double

復号化リスト。2 のべき乗として指定します。

データ型: double

CRC 符号化前の事前パディング。false または true として指定します。Polar 符号化を実行する前、CRC 符号化の前に送信端の情報ブロックをすべて 1 で事前パディングした場合は、padCRCtrue に設定します。

データ型: logical

UE の RNTI。0 ~ 65,535 の整数として指定します。

データ型: double

レート リカバリされた入力の最大長の基底 2 の対数。9 または 10 として指定します。

  • DL 構成では 9 を指定。

  • UL 構成では 10 を指定。

N がビット単位の rec の長さである場合、N2nmax になります。TS 38.212 の Section 5.3.1.2 を参照してください。

データ型: double

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

  • DL 構成では true を指定。

  • UL 構成では false を指定。

データ型: logical

追加される CRC ビットの数。2411、または 6 として指定します。

  • DL 構成では 24 を指定。

  • UL 構成では 11 または 6 を指定。

24、11、および 6 という数は、それぞれ多項式 gCRC24C、gCRC11、および gCRC6 に対応します。TS 38.212 のSection 5.1[1]を参照してください。

データ型: double

出力引数

すべて折りたたむ

復号化されたメッセージ。バイナリ値から成る K 行 1 列の列ベクトルとして返されます。

データ型: int8

参照

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

[2] Tal, I. and Vardy, A., “List decoding of Polar Codes“, IEEE Transactions on Information Theory. Vol. 61, No. 5, pp. 2213-2226, May 2015.

[3] Niu, K., and Chen, K., “CRC-Aided Decoding of Polar Codes“, IEEE Communications Letters, Vol. 16, No. 10, pp. 1668-1671, Oct. 2012.

[4] Stimming, A. B., Parizi, M. B., and Burg, A., “LLR-Based Successive Cancellation List Decoding of Polar Codes“, IEEE Transaction on Signal Processing, Vol. 63, No. 19, pp.5165-5179, 2015.

拡張機能

バージョン履歴

R2018b で導入

すべて展開する