Main Content

nrLDPCEncode

LDPC(저밀도 패리티 검사) 인코딩

설명

예제

out = nrLDPCEncode(in,bgn)은 TS 38.212 Section 5.3.2[1]에 명시된 대로 입력 데이터 행렬 in과 베이스 그래프 번호 bgn에 대해 LDPC 인코딩 출력 배열을 반환합니다. 해당하는 경우, 함수는 입력값에 -1로 표시되는 각 채움 비트(filler bit)를 0으로 바꿉니다. 인코딩 후, 함수는 각 채움 비트를 다시 -1로 바꿉니다. 인코딩에는 체계적인 정보 비트 중 일부에 대해 수행된 펑처가 포함됩니다.

예제

모두 축소

인코딩을 위해 길이가 2560이며 끝이 36 채움 비트로 채워진 코드 블록 세그먼트가 두 개 있는 입력 데이터를 만듭니다.

C = 2;          
K = 2560;       
F = 36;         
cbs = ones(K-F,C);
fillers = -1*ones(F,C);
cbs = [cbs;fillers];   

두 개의 코드 블록 세그먼트에 대해 LDPC 코드워드를 생성합니다. 베이스 그래프 번호는 2를 사용합니다.

bgn = 2;        
codedcbs = nrLDPCEncode(cbs,bgn);
size(codedcbs)
ans = 1×2

       12800           2

입력 인수

모두 축소

인코딩 전의 코드 블록 세그먼트로, 행렬 또는 열 벡터로 지정됩니다. in의 열 개수는 전송 블록에서 스케줄링된 코드 블록 세그먼트의 개수와 같습니다. in의 행 개수는 채움 비트(있는 경우)를 포함한 코드 블록 세그먼트의 길이와 같습니다.

참고

채움 비트는 -1로 표시되며 인코딩 수행 시 0으로 처리됩니다.

데이터형: double | int8

베이스 그래프 번호로, 1 또는 2로 지정됩니다. 이들 값은 TS 38.212 Section 5.3.2[1]에 정의된 두 개의 베이스 그래프에 대응합니다.

데이터형: double

출력 인수

모두 축소

인코딩된 LDPC 코드워드 출력값으로, 행렬로 반환됩니다. out의 열 개수는 전송 블록에서 스케줄링된 코드 블록 세그먼트의 개수와 같습니다. out의 행 개수는 코드워드의 길이와 같습니다. 각 코드워드는 체계적인 비트 중 일부에 대해 펑처를 수행하며 채움 비트를 포함할 수 있습니다.

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