주요 콘텐츠

nrPolarDecode

설명

decbits = nrPolarDecode(rec,K,E,L)은 (N,K) 극성 코드에 대한 레이트 복원 입력값 rec를 디코딩합니다. TS 38.212 Section 5[1]의 내용에 따라 Nrec의 길이이고 K는 디코딩된 비트 decbits의 길이입니다. 이 함수는 CRC(순환 중복 검사) 기반의 길이가 L인 연속 제거 리스트 디코더를 사용합니다. 기본적으로 출력 디인터리빙(deinterleaving)이 활성화되어 있으며, 입력값의 최대 길이는 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)은 지정된 최대 길이 2nmax, iil로 지정된 출력 디인터리빙, CRClen로 지정된 추가된 CRC 비트 개수로 입력값을 디코딩합니다. 이 구문에서는 송신단의 정보 블록이 CRC 인코딩 전에 1로 미리 채워지지 않았으며 RNTI가 0과 같다고 가정합니다.

  • DL(다운링크) 구성의 경우 nmax, iil, CRClen의 유효한 값은 각각 9, true, 24입니다.

  • UL(업링크) 구성의 경우 nmaxiil 의 유효한 값은 각각 10과 false이고 CRClen의 유효한 값은 11 또는 6입니다.

예제

모두 축소

극성 인코딩된 데이터 블록을 송신하고 연속 제거 리스트(Successive-Cancellation List)를 사용하여 데이터를 디코딩합니다.

잡음 분산이 1.0인 가산성 백색 가우스 잡음(AWGN) 채널을 만듭니다.

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

길이가 K인 랜덤 메시지의 극성 인코딩을 수행합니다. 레이팅 매칭된 출력의 길이는 E입니다.

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

극성 인코딩된 데이터를 변조합니다.

mod = nrSymbolModulate(enc,'QPSK');

변조된 데이터를 AWGN 채널을 통해 전송합니다.

rSig = chan(mod);

소프트 복조를 수행합니다.

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

길이가 L인 연속 제거 리스트 디코더를 사용하여 극성 디코딩을 수행합니다.

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인 경우, E의 범위는 K + 3 < E ≤ 8192여야 합니다.

  • K > 30인 경우, E의 범위는 K < E ≤ 8192여야 합니다.

데이터형: double

디코딩 리스트의 길이로, 2의 거듭제곱으로 지정됩니다.

데이터형: double

CRC 인코딩 전 미리 채우기로, false 또는 true로 지정됩니다. CRC 인코딩 전의 송신단 정보 블록이 극성 인코딩 전에 모두 1로 미리 채워진 경우 padCRCtrue로 설정하십시오.

데이터형: logical

UE의 RNTI로, 0과 65,535 사이의 정수로 지정됩니다.

데이터형: double

레이트 복원 입력값의 최대 길이의 밑이 2인 로그로, 9 또는 10으로 지정됩니다.

  • DL 구성의 경우 9로 지정합니다.

  • UL 구성의 경우 10으로 지정합니다.

Nrec의 길이(단위: 비트)라면 N2nmax입니다. TS 38.212 Section 5.3.1.2를 참조하십시오.

데이터형: double

출력 디인터리빙으로, true 또는 false로 지정됩니다.

  • DL 구성의 경우 true로 지정합니다.

  • UL 구성의 경우 false으로 지정합니다.

데이터형: logical

추가된 CRC 비트 수로, 24, 11 또는 6으로 지정됩니다.

  • DL 구성의 경우 24로 지정합니다.

  • UL 구성의 경우 11 또는 6으로 지정합니다.

숫자 24, 11, 6은 TS 38.212 Section 5.1[1]에 설명된 바와 같이 각각 다항식 gCRC24C, gCRC11, gCRC6에 해당합니다.

데이터형: 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에 개발됨

모두 확장