Main Content

nrCRCEncode

CRC(순환 중복 검사) 계산 및 추가

설명

blkcrc = nrCRCEncode(blk,poly)는 입력 데이터 blk에 대해 다항식 poly로 정의된 CRC를 계산합니다. 이 함수는 CRC 패리티 비트가 추가된 입력 데이터의 복사본인 CRC 인코딩된 데이터를 반환합니다. 관련 다항식에 대한 자세한 내용은 TS 38.212 Section 5.1[1]을 참조하십시오.

예제

blkcrc = nrCRCEncode(blk,poly,mask)mask의 정수 값을 사용하여 추가된 CRC 비트에 논리차(XOR) 마스크를 적용합니다. blkcrc에서 추가된 CRC 비트는 최상위 비트(MSB)에서 최하위 비트(LSB) 순으로 XOR 마스크 처리됩니다. 마스크 처리된 CRC는 (p0 xor m0), (p1 xor m1),…, (pL-1 xor mL-1) 형식이며, 여기서 L은 패리티 비트의 수이고 p0m0은 각각 CRC와 mask의 이진 표현 내 MSB입니다. 마스크 값이 2L - 1보다 크면 마스크에 대해 L개의 LSB가 사용됩니다.

예제

예제

모두 축소

CRC 패리티 비트를 계산하고, 이를 두 데이터 블록의 영점 행렬에 추가합니다. 그 결과, 124×2 크기의 영점 행렬이 생성됩니다.

blkcrc = nrCRCEncode(zeros(100,2),'24C');
any(blkcrc(:,1:2));

마스크 처리된 CRC 패리티 비트를 계산하고, 이를 두 데이터 블록의 영점 행렬에 추가합니다. 추가된 CRC 비트는 지정된 mask를 사용하여 MSB에서 LSB 순으로 XOR 마스크 처리됩니다. 그 결과, 마지막 위치의 요소를 제외하고 모든 요소가 0인 행렬이 생성됩니다.

mask = 1;
blkcrc = nrCRCEncode(zeros(100,2),'24C',mask);
blkcrc(end-5:end,1:2)
ans = 6×2

     0     0
     0     0
     0     0
     0     0
     0     0
     1     1

입력 인수

모두 축소

입력 데이터로, 실수로 구성된 행렬로 지정됩니다. 행렬의 각 열은 별개의 데이터 블록으로 처리됩니다.

데이터형: double | int8 | logical

CRC 다항식으로, '6', '11', '16', '24A', '24B' 또는 '24C'로 지정됩니다. 관련 다항식에 대한 자세한 내용은 TS 38.212 Section 5.1을 참조하십시오.

데이터형: char | string

XOR 마스크로, 음이 아닌 정수로 지정됩니다. 마스크는 일반적으로 무선 네트워크 임시 식별자(RNTI)입니다.

데이터형: double

출력 인수

모두 축소

CRC 인코딩된 데이터로, 실수로 구성된 행렬로 반환됩니다. blkcrc는 CRC 패리티 비트가 추가된 입력값 blk의 복사본입니다. 각 열은 CRC 인코딩된 별개 코드 블록에 해당합니다. blkcrc는 입력값 blk로부터 데이터형을 상속합니다.

데이터형: double | int8 | logical

참고 문헌

[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에 개발됨