5G New Radio Polar 符号化
この例では、5G New Radio (NR) 通信システムに採用された新しい Polar チャネル符号化について説明します。3GPP で指定されている 2 種類の主な符号構造のうち、この例では CRC-Aided Polar (CA-Polar) による符号化スキームをモデル化します。この例では、Polar 符号化スキームの主なコンポーネントについて、レートマッチングを行う際の符号構築、符号化、復号化に関連する個々のコンポーネントと併せて説明します。Polar 符号化され、AWGN で QPSK 変調されたリンクをモデル化し、符号化スキームについて、さまざまなメッセージ長および符号化率でのブロック誤り率の結果を示します。
はじめに
5G NR 通信システムの制御チャネルに対するチャネル符号化手法として Polar 符号が選択されたことは、Arikan の発見 [ 1 ] の利点を実証するものであり、商用システムでの応用を確立させることになるでしょう [ 6 ]。チャネル分極の概念に基づけば、この新しい符号化ファミリは、容量近似型であるだけでなく、容量達成型でもあります。これは、LDPC 符号やターボ符号に匹敵するかそれ以上の性能を有するため、LTE システムの制御チャネルに使用されているテールバイティング畳み込み符号に置き換わるものです。この符号化は、enhanced mobile broadband (eMBB) のユースケースにおける Downlink Control Information (DCI) と uplink control information (UCI) に加え、ブロードキャスト チャネル (BCH) にも適用されています。代わりに、eMBB のデータ チャネル用のチャネル符号化スキームは、ブロック サイズを問わない柔軟な LDPC として規定されています。
この例では、AWGN チャネルでの QPSK 変調を使用した Polar 符号化ダウンリンク シミュレーションを可能にするコンポーネントについて説明します。続く節で、Polar 符号化の個々のコンポーネントについてさらに詳しく説明します。
s = rng(100); % Seed the RNG for repeatability
シミュレーションに使用する符号パラメーターを設定します。
% Code parameters K = 54; % Message length in bits, including CRC, K > 30 E = 124; % Rate matched output length, E <= 8192 EbNo = 0.8; % EbNo in dB L = 8; % List length, a power of two, [1 2 4 8] numFrames = 10; % Number of frames to simulate linkDir = 'DL'; % Link direction: downlink ('DL') OR uplink ('UL')
Polar 符号化
以下の図は、ダウンリンクの送信側の処理を示したもので、関連するコンポーネントとそのパラメーターを強調表示しています。
ダウンリンクでは、入力ビットが Polar 符号化の前にインターリーブされます。したがって、情報ビットの末尾に付加された CRC ビットが CA-Polar スキームに向けて分散されることになります。このインターリーブは、アップリンクでは指定されません。
Polar 符号化では、SNR 非依存型の方法を使用して、各サブチャネルの信頼性をオフラインで計算し、順序付きシーケンスを最大符号長で格納します [ 6 ]。Polar 符号は入れ子の特性をもつため、このシーケンスは、あらゆる符号化率、および最大符号長よりも短いすべての符号長で使用されます。
このシーケンスは、指定されたレートマッチ後の出力長 E
および情報長 K
をもとに、関数nrPolarEncode
によって計算されます。この関数は、入力された K
ビットの非組織的な符号化を実装するものです。
if strcmpi(linkDir,'DL') % Downlink scenario (K >= 36, including CRC bits) crcLen = 24; % Number of CRC bits for DL, Section 5.1, [6] poly = '24C'; % CRC polynomial nPC = 0; % Number of parity check bits, Section 5.3.1.2, [6] nMax = 9; % Maximum value of n, for 2^n, Section 7.3.3, [6] iIL = true; % Interleave input, Section 5.3.1.1, [6] iBIL = false; % Interleave coded bits, Section 5.4.1.3, [6] else % Uplink scenario (K > 30, including CRC bits) crcLen = 11; poly = '11'; nPC = 0; nMax = 10; iIL = false; iBIL = true; end
以下の図は、ペイロード サイズが 19
ビットを超え、かつコードブロック セグメンテーションがない場合のアップリンクの送信側の処理を示したもので、関連するコンポーネントとそのパラメーターを強調表示しています。
レート マッチングとレート リカバリ
Polar 符号化された一連のビット (N
) はレートマッチングされ、指定されたビット数 (E
) がリソース エレメント マッピングのために出力されます [ 7 ]。符号化されたビットは、サブ ブロック インターリーブされ、長さ N
のリング バッファーに渡されます。バッファーからの出力ビットを読み取ることによって、目的の符号化率、および K
、E
、N
の選択値に応じて、反復 (E >= N
)、パンクチャ、短縮 (E < N
) のいずれを実際に行うかが決まります。
パンクチャの場合、
E
ビットが末尾から取得される短縮の場合、
E
ビットが先頭から取得される反復の場合、
N
を法としてE
ビットが反復される。
選択されたビットは、ダウンリンクでは変調マッパーに渡されますが、アップリンクではマッピングする前にさらにインターリーブされます。レートマッチング処理は、関数nrRateMatchPolar
によって実装されます。
受信側では、次の場合にレート リカバリが実行されます。
パンクチャの場合、削除されたビットに対応する LLR がゼロに設定される
短縮の場合、削除されたビットに対応する LLR が大きな値に設定される
反復の場合、先頭の
N
ビットに対応する LLR セットが選択される。
レート復元処理は、関数nrRateRecoverPolar
によって実装されます。
R = K/E; % Effective code rate bps = 2; % bits per symbol, 1 for BPSK, 2 for QPSK EsNo = EbNo + 10*log10(bps); snrdB = EsNo + 10*log10(R); % in dB noiseVar = 1./(10.^(snrdB/10)); % Channel chan = comm.AWGNChannel('NoiseMethod','Variance','Variance',noiseVar);
Polar 復号化
ダウンリンク (DCI または BCH) またはアップリンク (UCI) のメッセージ ビットの暗黙的な CRC 符号化により、チャネル復号化器アルゴリズムとして CRC-Aided Successive Cancellation List (CA-SCL) 復号化 [ 3 ] の使用が決定されます。CA-SCL 復号化がターボ符号や LDPC 符号よりも性能が優れていることはよく知られており [ 4 ]、そのことが 3GPP で Polar 符号が採用された主な要因の 1 つでした。
Tal および Vardy [ 2 ] は、尤度 (確率) の観点から SCL 復号化アルゴリズムについて説明しています。しかし、アンダーフローにより、固有の計算が数値的に不安定になります。この問題を解決するため、Stimming ら [ 5 ] は、対数尤度比 (LLR) 領域での単独的な SCL 復号化を提唱しています。このリスト復号化を特徴付けているのは、保持されている可能性が最も高い復号化パスの数を表す L
パラメーターです。復号化が終わった時点で、L
個のパスの中で最も可能性の高い符号パスが復号化器の出力になります。L
が増えれば復号化器のパフォーマンスも向上しますが、収穫逓減効果が伴います。
CRC で連結された入力メッセージについて、少なくとも 1 つのパスが正しい CRC をもつ場合、CA-SCL 復号化では、無効な CRC のパスをすべて削除します。最終的なパス選択におけるこの追加的なインサイトにより、SCL 復号化と比較した場合のパフォーマンスがより向上します。ダウンリンクでは 24 ビットの CRC が使用されますが、アップリンクでは K
の値に応じて 6 ビットまたは 11 ビットの CRC が指定されます。
復号化器は、3 つの CRC 長すべてをサポートする関数nrPolarDecode
によって実装されます。復号化器関数は、復号化されたビットを出力する前に、ダウンリンク用の送信機で指定された入力ビットのインターリーブも考慮します。
% Error meter
ber = comm.ErrorRate;
フレーム処理ループ
この節では、前述の Polar 符号化のコンポーネントがブロック誤り率 (BLER) のシミュレーションでどのように使用されるかについて説明します。以下の図では、シミュレーション リンクを強調表示しています。
処理フレームごとに、以下の手順が実行されます。
K-crcLen
のランダム ビットが生成され、CRC が計算され、そのビットに付加される
CRC が付加されたビットが、母符号ブロック長に Polar 符号化される
E
ビットを送信するためにレートマッチングが実行されるE
ビットが QPSK 変調される指定されたパワーのホワイト ガウス ノイズが付加される
LLR 値を出力するためにノイズ信号がソフト QPSK 変調される
パンクチャ、短縮、反復のいずれかを反映したレート リカバリが実行される
復元された LLR 値が、デインターリーブを含む CA-SCL アルゴリズムを使用して Polar 復号化される。
BLER とビット誤り率 (BER) のメトリクスを更新するために、復号化された
K
ビットとは別に、最初のK-crcLen
ビットと送信されたビットが比較される。
シミュレーションの最後に、2 つのパフォーマンス インジケーターである BLER と BER が報告されます。
numferr = 0; for i = 1:numFrames % Generate a random message msg = randi([0 1],K-crcLen,1); % Attach CRC msgcrc = nrCRCEncode(msg,poly); % Polar encode encOut = nrPolarEncode(msgcrc,E,nMax,iIL); N = length(encOut); % Rate match modIn = nrRateMatchPolar(encOut,K,E,iBIL); % Modulate modOut = nrSymbolModulate(modIn,'QPSK'); % Add White Gaussian noise rSig = chan(modOut); % Soft demodulate rxLLR = nrSymbolDemodulate(rSig,'QPSK',noiseVar); % Rate recover decIn = nrRateRecoverPolar(rxLLR,K,N,iBIL); % Polar decode decBits = nrPolarDecode(decIn,K,E,L,nMax,iIL,crcLen); % Compare msg and decoded bits errStats = ber(double(decBits(1:K-crcLen)), msg); numferr = numferr + any(decBits(1:K-crcLen)~=msg); end disp(['Block Error Rate: ' num2str(numferr/numFrames) ... ', Bit Error Rate: ' num2str(errStats(1)) ... ', at SNR = ' num2str(snrdB) ' dB']) rng(s); % Restore RNG
Block Error Rate: 0, Bit Error Rate: 0, at SNR = 0.20002 dB
結果
有意な結果を得るには、シミュレーションの実行時間を長くする必要があります。C コード生成をサポートする関数に上記の処理をカプセル化するスクリプトを使用し、QPSK 変調を伴う両方のリンク方向について、さまざまな符号化率とメッセージ長における結果を以下に示します。
上記の結果は、各 SNR 点について、最大 1000 個のフレーム誤りまたは最大 100e3 個のフレーム数のうち最初に発生したほうをシミュレーションして生成したものです。
BLER のパフォーマンス結果は、Polar 符号が通信リンクに適していることと、ビットレベルの粒度におけるレート互換性を暗黙的にサポートすることを示しています。
C コード生成ツールをコンポーネントに使用すれば、シミュレーションの主な懸念事項である実行時間を短縮できます。C コード生成は、MATLAB Coder™ で有効にできます。
まとめとその他の調査
この例では、New Radio 制御チャネル情報 (DCI、UCI) およびブロードキャスト チャネル (BCH) に関して 3GPP で規定されている Polar 符号化スキームの 1 つ (CRC-Aided Polar) について説明しました。処理の全段階 (符号化、レートマッチング、レート復元、復号化) におけるコンポーネントの使用について示し、それらを AWGN チャネルで QPSK 処理したリンクで使用しました。さまざまな符号化率およびメッセージ長に関するパフォーマンス結果は、パラメーターおよびシミュレーションのばらつきの仮定内に収まり、公表されているトレンドと一致していることを示しました。
シンプルなパラメーターの変化 (K
、E
、L
) と、それらが BLER でのパフォーマンスに与える影響について調査します。Polar 符号化関数は、Downlink Control Information/uplink control information の両方とブロードキャスト チャネルに適用できるように、オープンな MATLAB® コードとして実装されています。CA-Polar スキームは、次の両方に適用できます。
ダウンリンク (すべてのメッセージ長)、および
アップリンク (
K > 30
であり、crcLen = 11
、nPC = 0
、nMax = 10
、iIL = false
、iBIL = true
の場合)。
DCI 関数および BCH 関数内での Polar 符号化関数の使用については、それぞれ、Downlink Control Information のモデル化およびNR セル サーチおよび MIB と SIB1 の復元の例を参照してください。
取り上げた Polar 符号化関数は、パリティチェック Polar 符号の構築と符号化もサポートしています。UCI のペイロードが 18 <= K <= 25
の範囲内であれば、これをアップリンクに適用できます。これは、アップリンク制御符号化関数 nrUCIEncode
および nrUCIDecode
によってサポートされています。これらの関数は、適切な値 K
および E
についてのコード ブロック セグメンテーションも含みます。
参考文献
Arikan, E., "Channel Polarization: A Method for constructing Capacity-Achieving Codes for Symmetric Binary-Input Memoryless Channels," IEEE Transactions on Information Theory, vol. 55, No. 7, pp. 3051-3073, July 2009.
Tal, I, and Vardy, A., "List decoding of Polar Codes", IEEE Transactions on Information Theory, vol. 61, No. 5, pp. 2213-2226, May 2015.
Niu, K., and Chen, K., "CRC-Aided Decoding of Polar Codes," IEEE Communications Letters, vol. 16, No. 10, pp. 1668-1671, Oct. 2012.
Niu, K., Chen, K., and Lin, J.R., "Beyond turbo codes: rate compatible punctured polar codes", IEEE International Conference on Communications, pp. 3423-3427, 2013.
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.
3GPP TS 38.212. "NR; Multiplexing and channel coding" 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.
R1-1711729. "WF on circular buffer of Polar Code", 3GPP TSG RAN WG1 meeting NR Ad-Hoc#2, Ericsson, Qualcomm, MediaTek, LGE. June 2017.