콘텐츠로 이동

채널 코딩 (Turbo · LDPC · Polar)

스펙 · 릴리즈

LTE: TS 36.212 §5.1 (CRC, 코드 블록 분할, Turbo, TBCC, 레이트 매칭) · NR: TS 38.212 §5 (Polar, LDPC), §6–7 (채널별 처리)

LTE Rel-8~ · NR Rel-15~

한눈에 보기

채널 코딩은 데이터에 일부러 여분의 비트(패리티)를 더해 수신기가 오류를 스스로 고칠 수 있게 하는 기술입니다.

  • CRC: 오류가 "있는지" 확인하는 체크섬. 고치지는 못합니다.
  • 오류 정정 부호: 오류를 "고치는" 부호. 이동통신 세대마다 바뀌었습니다.
    • LTE 데이터 → Turbo 부호
    • NR 데이터 → LDPC 부호 (고속 병렬 디코딩에 유리)
    • NR 제어 정보 → Polar 부호 (짧은 메시지에 강함)

코딩률(code rate)은 원래 정보 비트 ÷ 전송 비트입니다. 1/3이면 정보 1비트당 3비트를 보냅니다. 채널이 나쁘면 낮은 코딩률로 더 튼튼하게, 좋으면 높은 코딩률로 더 빠르게 보냅니다.

데이터 채널 처리 흐름

flowchart LR
    A[전송 블록<br/>TB] --> B[TB CRC 추가] --> C[코드 블록 분할<br/>+ CB CRC] --> D[채널 코딩<br/>Turbo / LDPC] --> E[레이트 매칭<br/>순환 버퍼] --> F[코드 블록 연결] --> G[스크램블링] --> H[변조]
  1. MAC이 내려준 전송 블록(TB)에 CRC를 붙입니다.
  2. 너무 길면 여러 코드 블록(CB)으로 나누고 각각에 CRC를 붙입니다.
  3. 각 CB를 부호화합니다.
  4. 할당된 자원에 정확히 맞도록 비트를 고르거나 반복합니다(레이트 매칭). 재전송 때 다른 부분을 고를 수 있도록 RV(Redundancy Version)로 시작 위치를 바꿉니다.

채널별 부호 정리

정보 LTE NR
데이터 (DL-SCH / UL-SCH) Turbo, R=1/3 모부호 LDPC (BG1 / BG2)
PBCH (MIB) TBCC (꼬리 물기 컨볼루션) Polar
DCI TBCC Polar
UCI 1비트 / 2비트 반복 / simplex 반복 / simplex
UCI 3–11비트 Reed-Muller (20,A) · (32,O) Reed-Muller (32,K)
UCI 12비트 이상 TBCC (PUSCH의 CQI) Polar
PCFICH (32,2) 블록 부호 — (채널 없음)
PHICH 3회 반복 — (채널 없음)

세 가지 부호 비교

항목 Turbo (LTE) LDPC (NR) Polar (NR)
원리 두 컨볼루션 부호 + 인터리버, 반복 디코딩 희소 패리티 검사 행렬, 메시지 전달 디코딩 채널 분극 — 신뢰 높은 비트 위치에 정보 배치
강점 성숙한 기술, 중간 길이에서 우수 병렬 디코딩 → 수 Gbps 처리량, 높은 코딩률에서 효율적 짧은 블록에서 우수, CRC 보조 리스트 디코딩
약점 직렬 구조 → 고속화 어려움 짧은 블록·낮은 코딩률에서 상대적 약세 긴 블록 디코딩 지연
최대 블록 크기 6144 비트 BG1 8448 / BG2 3840 비트 하향 N=512, 상향 N=1024
전문가 노트 — 크기 규칙과 선택 조건

CRC 규칙

대상 LTE NR
TB 24A 24A (TBS > 3824) / 16 (그 외)
CB (분할 시) 24B 24B
DCI 16 (RNTI로 마스킹) 24C (뒤 16비트를 RNTI로 스크램블)
PBCH 16 (안테나 수로 마스킹) 24C
UCI (Polar) — 6 (12 ≤ A ≤ 19) / 11 (A ≥ 20)

LTE Turbo. 8-state PCCC, 모부호 R = 1/3, QPP 인터리버. 허용 블록 크기 K는 40–6144의 188개 값입니다. TB+CRC가 6144를 넘으면 CB로 분할하고, 맞지 않는 크기는 filler 비트로 채웁니다. 꼬리 비트 12개로 트렐리스를 종료합니다.

NR LDPC base graph 선택 (TS 38.212 §7.2.2). TBS를 \(A\), 목표 코딩률을 \(R\)이라 하면

  • \(A \le 292\), 또는 \(A \le 3824\) 이고 \(R \le 0.67\), 또는 \(R \le 0.25\) → BG2
  • 그 외 → BG1
BG1 BG2
기본 행렬 크기 46 × 68 42 × 52
정보 열 \(K_b\) 22 최대 10
최저 모부호율 1/3 1/5
최대 CB 크기 \(K_{cb}\) 8448 3840

리프팅 크기 \(Z_c = a \times 2^j\) (\(a \in \{2,3,5,7,9,11,13,15\}\), \(Z_c \le 384\)) — 8개 집합(\(i_{LS}\) = 0…7)으로 나뉩니다. 부호화 후 앞쪽 \(2Z_c\) 시스테매틱 비트는 항상 펑처링(전송 안 함)합니다.

LDPC 레이트 매칭. 순환 버퍼에서 RV에 따라 시작점 \(k_0\)이 정해집니다. BG1에서는 대략 \(0,\ \tfrac{17}{66},\ \tfrac{33}{66},\ \tfrac{56}{66}\) 지점(\(N_{cb}\) 기준, \(Z_c\) 배수로 내림)입니다. 기본 RV 순서는 0 → 2 → 3 → 1이고, RV0과 RV3은 시스테매틱 비트를 많이 포함해 단독으로도 디코딩 가능성이 높습니다. 단말 소프트 버퍼가 제한되면 LBRM(Limited Buffer Rate Matching)으로 \(N_{cb}\)를 줄입니다.

Polar. 신뢰도 순서표(TS 38.212 Table 5.3.1.2-1, N=1024 기준)에서 가장 신뢰도 높은 위치에 정보+CRC 비트를 놓고 나머지는 frozen(0)으로 둡니다. DCI는 분산 CRC(distributed CRC)를 써서 리스트 디코딩 중 조기 종료가 가능합니다. 상향 UCI는 PC(parity-check) 비트를 추가로 씁니다. PBCH는 N=512, 32비트 페이로드 + 24비트 CRC → 864비트로 레이트 매칭됩니다.

관련 페이지