Steve Yoon

View on GitHub

Mastering 5G NR PHY

Technical specifications

CRC (Cyclic Redundancy Check)

Channel Coding

기본 BPSK

일반 BPSK에서는 심볼이 두 가지 위상을 가집니다:

\[s_k = \begin{cases} +1, & \text{if bit = 0}\\ -1, & \text{if bit = 1} \end{cases}\]

즉, 위상은 또는 180°(π rad) 이고, 신호는 다음과 같이 표현됩니다:

\[s(t) = A \cos(2\pi f_c t + \phi_k)\]

여기서


π/2-BPSK의 개념

π/2-BPSK에서는 심볼마다 위상을 π/2(=90°)만큼 회전시킵니다.

즉, 단순히 +1, −1을 사용하는 대신 각 심볼의 위상이 이전 심볼에서 π/2만큼 이동합니다.

\(s_k = a_k \cdot e^{j\theta_k}\) \(\theta_k = \theta_{k-1} + \frac{\pi}{2} \cdot (2a_k - 1)\)

결과적으로 신호의 궤적이 I-Q 평면에서 (1, 0) → (0, 1) → (−1, 0) → (0, −1) 형태로 순환하게 됩니다.


I/Q 신호 형태

심볼 순서 I 성분 Q 성분 위상
1 +1 0
2 0 +1 90°
3 −1 0 180°
4 0 −1 270°
5 +1 0 360° (=0°)

👉 특징: I-축만 사용하는 BPSK와 달리, π/2-BPSK는 I와 Q축을 번갈아 사용하여 위상이 부드럽게 회전합니다.


장점

DC 성분 제거 → 송신 신호의 스펙트럼 중심 왜곡이 적음
지속적인 위상 변화 → 송신 필터링 용이, PAPR 감소
I/Q 불균형에 강함
5G NR, LTE Uplink 등에서 효율적


5G / LTE에서의 적용 예시


시각적 예시 (I/Q 평면)

위상이 심볼마다 시계 방향 또는 반시계 방향으로 90°씩 회전하며, 신호가 원을 그리듯 이동합니다.


요약 비교

항목 BPSK π/2-BPSK
위상 변화 0°, 180° 매 심볼마다 ±90° 회전
신호 성분 I-축만 사용 I, Q 축 모두 사용
DC 성분 존재 거의 없음
PAPR 높음 낮음
주요 응용 단순 디지털 통신 LTE/5G Uplink, Bluetooth LE 등

요약 문장

π/2-BPSK는 BPSK의 단순성과 위상 연속성을 결합하여, DC 성분을 줄이고 송신 효율을 개선한 변조 방식이다.
LTE와 5G NR의 업링크 전송에서 널리 사용된다.

OFDM (Orthogonal Frequency Division Multiplexing)

기본 개념


필요성


직교성 (Orthogonality)


송신 과정

  1. 직렬 데이터 → 병렬 분할
  2. QPSK / 16QAM 등으로 변조
  3. IFFT로 부반송파 합성
  4. Cyclic Prefix (CP) 추가
  5. 아날로그 변환 후 송신

수신 과정

  1. CP 제거
  2. FFT로 부반송파 분리
  3. 복호화 및 병렬→직렬 변환
  4. 원래 데이터 복원

장점


단점


적용 사례


요약

OFDM은 고속 데이터를 여러 직교 부반송파로 나누어 전송하는 기술로,
다중경로 환경에 강하고 효율적인 현대 무선 통신의 핵심 기술이다.

Multipath Propagation

다중경로 전파 (Multipath Propagation)

Multipath의 주요 원인

Multipath로 인한 문제


OFDM이 Multipath 문제를 해결하는 방법

  1. 부대역 분할 (Subcarrier Division)
    • 전체 대역폭을 여러 개의 좁은 서브채널로 나누어,
      각 부채널을 거의 평탄한 채널(frequency-flat channel) 로 만듭니다.
    • 따라서 복잡한 채널 이퀄라이저가 필요하지 않습니다.
  2. Cyclic Prefix (순환 접두사, CP)
    • OFDM 심볼 앞부분에 심볼 끝부분 일부를 복사하여 붙입니다.
    • 이렇게 하면 Multipath로 인한 지연이 CP 길이 이내일 경우,
      ISI(심볼 간 간섭) 을 방지할 수 있습니다.
    • 또한, 채널을 순환(convolution) 형태로 만들어 FFT 처리가 가능해집니다.
  3. 직교성 유지 (Orthogonality)
    • 부반송파 간 간섭을 제거하여 Multipath 환경에서도 안정적인 전송이 가능하게 합니다.

송신 과정 (Transmitter)

  1. 입력 데이터 직렬 → 병렬 분할
  2. QPSK / 16QAM 변조
  3. IFFT 로 부반송파 합성
  4. Cyclic Prefix 추가
  5. D/A 변환 후 송신

수신 과정 (Receiver)

  1. CP 제거
  2. FFT 로 부반송파 분리
  3. 복호화 및 병렬 → 직렬 변환
  4. 원래 데이터 복원

장점


단점


요약

Multipath Propagation 은 신호가 여러 경로로 전파되어 간섭을 일으키는 현상이며,
OFDM 은 이를 부반송파 분할과 Cyclic Prefix 로 효과적으로 해결하는
현대 무선 통신의 핵심 기술이다.

Cyclic Prefix (CP)

정의


역할


수학적 의미


동작 과정

  1. IFFT로 OFDM 심볼 생성
  2. 심볼의 마지막 일부를 복사
  3. 복사된 부분을 앞에 추가 → CP 생성
  4. 수신기에서는 CP 제거 후 FFT 수행

CP 길이 선택


장점

단점


개념도

📡 5G NR / LTE 자원 단위 정리

Resource Block (RB)


Common Resource Block (CRB)


Physical Resource Block (PRB)


Bandwidth Part (BWP)


관계

System Bandwidth
└── CRB (전체 대역 기준)
  └── BWP (단말이 사용하는 구간)
    └── PRB (실제 할당 자원)


요약

| 용어 | 기준 | 설명 | | — | ——– | ———————– | | RB | 기본 단위 | 12 subcarriers × 1 slot | | CRB | 전체 대역 기준 | 시스템 전체 RB 위치 | | PRB | BWP 기준 | 실제 단말에 할당되는 RB | | BWP | 주파수 대역 | 단말이 사용하는 부분 대역 |

SSB (Signal Synchronization Block)

개요 — SSB란 무엇인가?**

SSB (Synchronization Signal Block)
단말(UE, User Equipment)이 5G 기지국(gNB) 을 처음 인식하고 동기화하기 위해 수신하는 기본 물리 신호 묶음입니다.

즉, UE가 “이 근처에 어떤 5G 셀이 있고, 어디 주파수·타이밍으로 동작 중인지” 를 알아내기 위한 셀 탐색(Synchronization & Cell Identification) 용 신호입니다.


SSB 구성 요소**

SSB는 아래 세 가지 신호로 구성됩니다.

구성요소 약어 역할
Primary Synchronization Signal PSS 셀 ID 그룹 내 셀 식별(0~2) 및 타이밍 동기
Secondary Synchronization Signal SSS 셀 그룹 ID (0~335) 및 프레임 동기 정보 제공
Physical Broadcast Channel PBCH 시스템 파라미터 전달 (예: Subcarrier Spacing, Cell ID, System Frame Number, 등)

즉,

SSB = PSS + SSS + PBCH


역할 정리

항목 설명
PSS 단말이 셀의 시간 동기를 잡고, 소그룹 내 Cell ID(0~2)를 인식
SSS 단말이 프레임 동기를 맞추고, 셀 그룹 ID(0~335)를 파악
PBCH 단말이 시스템 파라미터 (MIB 등) 을 디코딩하여 초기 접속 절차를 시작

SSB의 주파수 및 시간 배치

5G NR은 다양한 Subcarrier Spacing (SCS)에 따라 SSB의 위치와 주기(period) 가 다릅니다.

Subcarrier Spacing 사용 대역 SSB 주기 SSB 개수 (Beam 수)
15 kHz / 30 kHz FR1 (Sub-6GHz) 기본 20 ms 최대 4개
120 kHz FR2 (mmWave) 기본 20 ms 최대 64개

Beamforming과 SSB의 관계

5G는 빔포밍(Beamforming)을 사용하기 때문에,
기지국은 여러 방향(beam) 으로 SSB를 순차적으로 전송합니다.

이를 SS Burst Set 이라고 부르며,
한 세트 내에서 여러 개의 SS Block (SSB)각기 다른 빔 방향으로 송신됩니다.

예를 들어:


셀 탐색(Cell Search) 절차

  1. PSS 탐색 → 타이밍 동기 획득
  2. SSS 탐색 → 프레임 동기 및 Cell ID 획득
  3. PBCH 디코딩 → MIB 수신 및 시스템 정보 획득
  4. RACH(Random Access Channel) 절차로 셀에 접속

SSB 구조 (시간-주파수 평면)

Frequency 
↑
│
│   ┌───────────────┐
│   │     PBCH      │  ← Physical Broadcast Channel
│   ├──────┬────────┤
│   │ PSS  │  SSS   │  ← Synchronization Signals
│   └──────┴────────┘
│──────────────────────────→ Time

주요 파라미터 요약

항목 설명
구성 PSS + SSS + PBCH
주기 일반적으로 20 ms (configurable: 5, 10, 20 ms)
Subcarrier Spacing FR1: 15/30 kHz, FR2: 120/240 kHz
빔 수 FR1 ≤ 4, FR2 ≤ 64
목적 셀 탐색, 동기화, 시스템 정보 획득

핵심 요약

SSB (Synchronization Signal Block) 는 5G NR에서 단말이 처음 셀을 인식하고
시간·주파수 동기를 맞춘 뒤 시스템 정보를 얻는 신호 묶음으로,
PSS, SSS, PBCH 로 구성되며 빔포밍 기반 다방향 송신 구조를 가집니다.

SSBurst

SS Burst란 무엇인가?

SS Burst (Synchronization Signal Burst)
5G 기지국(gNB)이 일정한 주기마다 하나 이상의 SSB(Synchronization Signal Block) 를 묶어서 한 세트로 송신하는 구조입니다.

즉,

여러 방향(beam)으로 송신되는 SSB들의 집합(Set) 이 바로 SS Burst 입니다.


SSB vs SS Burst vs SS Burst Set

구분 구성 요소 의미 관계
SSB (Synchronization Signal Block) PSS + SSS + PBCH 단일 방향(beam)으로 송신되는 기본 블록 단위 신호
SS Burst 여러 개의 SSB 묶음 일정 주기(20 ms 등) 내에 연속적으로 송신되는 여러 SSB 빔 탐색용 묶음
SS Burst Set 여러 SS Burst 묶음 더 큰 주기 내에서 반복되는 SS Burst들의 모음 전체 커버리지 탐색 단위

왜 SS Burst가 필요한가?

5G는 Massive MIMO + Beamforming 을 기반으로 하므로,
기지국이 여러 방향(beam) 으로 신호를 송신해야 합니다.

따라서 하나의 SSB만으로는 모든 방향의 단말을 커버할 수 없기 때문에,
기지국은 한 주기(예: 20 ms) 동안 여러 방향으로 SSB를 순차적으로 송신합니다.
이렇게 전송되는 모든 SSB들의 묶음이 바로 SS Burst 입니다.


SS Burst의 시간적 구조

예시 (FR1, Sub-6GHz)

예시 (FR2, mmWave)


SSB Index와 Beam Index

각 SSB는 고유의 SSB Index (0 ~ 63) 를 가집니다.
이 인덱스는 곧 Beam Index (빔 방향) 과 1:1로 대응합니다.

즉,

UE는 모든 SSB를 탐색해 가장 강한 빔 방향을 선택합니다.


SS Burst의 프레임 내 배치 (Time–Frequency Structure)

Time →
┌──────────────────────────────────────┐
│ SSB#0 │ SSB#1 │ SSB#2 │ SSB#3 │ ...  │← 하나의 SS Burst(20 ms 주기)
└──────────────────────────────────────┘

주요 파라미터 요약

항목 설명
구성 여러 개의 SSB (최대 64개)
주기 기본 20 ms (configurable: 5, 10, 20 ms)
역할 Beam 탐색 및 셀 검색 (Cell Search) 지원
SSB 간 간격 FR1: 최대 4개, FR2: 최대 64개
관련 파라미터 (3GPP 명시) ssbPeriodicityServingCell, ssbSubcarrierSpacing, ssb-PositionsInBurst

셀 탐색에서의 관계 요약

SS Burst Set
└── SS Burst (주기적으로 반복)
  └── 여러 SSB (서로 다른 빔 방향)
    └── PSS + SSS + PBCH

즉,

SSB는 빔 단위 신호, SS Burst는 빔 집합, SS Burst Set은 반복 주기 단위 구조 입니다.


핵심 요약

SS Burst 는 5G NR에서 기지국이 여러 빔 방향으로 송신하는 SSB들의 묶음이며,
단말(UE)은 이 SS Burst를 탐색하여 가장 강한 빔 방향을 선택하고
초기 동기화 및 셀 접속 절차를 시작합니다.

PBCH and PBCH DMRS

@startuml
:PBCH Payload Generation;
:Scrambling;
:CRC Attachment;
:Polar coding;
:Rate matching;
:Scrambling;
:Modulation;
:RE mapping;
:IFFT and CP insertion;
@enduml

PSS, SSS, PBCH and DMRS mapping in SSB

위 그림에서 숫자는 Subcarrier number이고 D는 DMRS입니다. DMRS는 그림에서와 같이 PBCH에 존재하며 그 위치는 다음과 같이 결정됩니다.

📡 DMRS 위치의 수학적 표현 (5G NR)

기본 정의


시퀀스 초기화 식 (3GPP TS 38.211 §7.4.1.4)

\(c_{init} = 2^{11} \times \left\lfloor \frac{N_{ID}^{cell}}{4} \right\rfloor + ( N_{ID}^{cell} \bmod 4 ) + 8 \times i_{SSB}\) → DMRS 시퀀스는 $N_{ID}^{cell}$ 과 $i_{SSB}$ 의 함수.


주파수 위치

\(f_{DMRS} = f_{carrier\_center} + k_{SSB}(i_{SSB}) + k_{DMRS,offset}\)


시간 위치


요약

| 항목 | 의존 변수 | 설명 | | —— | —————————- | ——————— | | 시퀀스 위상 | \(N_{ID}^{cell}, i_{SSB}\) | Gold sequence 초기화 | | 주파수 위치 | \(i_{SSB}\) | 빔별 Subcarrier offset | | 시간 위치 | 고정 | SSB의 세 번째 OFDM symbol |

따라서 DMRS의 위치와 시퀀스는 모두 SSB Index와 Physical Cell ID의 함수로 표현 가능하다.

PRB (Physical Resource Block)

PRB란 무엇인가?

PRB (Physical Resource Block)
시간(time)과 주파수(frequency) 영역에서 단말(UE)에 실제로 할당되는 최소 물리 자원 단위입니다.

즉,

“무선 자원을 얼마나, 어디에 줄 것인가”를 결정할 때 기지국이 사용하는 기본 단위 블록이에요.


PRB의 기본 구조

영역 구성 요소 설명
주파수 영역 12 subcarriers Subcarrier Spacing (SCS)에 따라 대역폭이 결정됨
시간 영역 1 slot (기본: 14 OFDM symbols) 전송 단위 시간
결과적으로 12 subcarriers × 14 symbols = 168 Resource Elements (REs)

PRB의 대역폭 계산

각 PRB는 12개의 서브캐리어를 포함하므로, PRB 하나의 주파수 폭은 다음과 같습니다.

Subcarrier Spacing (SCS) PRB 대역폭
15 kHz 180 kHz
30 kHz 360 kHz
60 kHz 720 kHz
120 kHz 1440 kHz

따라서 5G NR은 SCS에 따라 PRB 폭이 달라집니다.


PRB의 역할

역할 설명
자원 할당 단위 gNB가 UE에게 자원을 스케줄링할 때 “몇 개의 PRB”로 할당
MCS 결정 기준 한 PRB 내 신호 품질(SINR)을 기준으로 변조 및 부호율 결정
DMRS 배치 기준 참조신호(DMRS)는 PRB 구조에 맞춰 배치됨
HARQ/CSI 보고 단위 PRB 단위로 CQI, PMI, RI 등의 채널 정보를 보고

PRB vs RB vs CRB의 관계

용어 기준 설명
RB (Resource Block) 일반적 표현 시간–주파수 자원의 기본 블록 (이론적 개념)
CRB (Common Resource Block) 전체 대역 기준 시스템 전체 대역에서의 RB 인덱스 (절대 위치)
PRB (Physical Resource Block) BWP 기준 UE에 실제 할당된 물리적 RB (상대 위치)

📘 요약:

PRB = 실제 무선자원 단위 (BWP 내에서 UE가 사용하는 자원)
CRB = 시스템 전체 기준의 절대 위치
RB = 개념적 단위 (공통 용어)


PRB의 시간–주파수 평면 구조 (개념도)

Frequency ↑
│
│   ┌──────────────────────────────────────────────┐
│   │              12 Subcarriers (Δf)             │
│   ├──────────────────────────────────────────────┤
│   │                                              │
│   │                PRB (1 Slot)                  │
│   │     14 OFDM Symbols × 12 Subcarriers         │
│   │                                              │
│   └──────────────────────────────────────────────┘
│──────────────────────────────────────────────→ Time

PRB 개수 예시 (대역폭에 따른 PRB 수)

대역폭 15 kHz SCS 30 kHz SCS 60 kHz SCS 120 kHz SCS
5 MHz 25 PRB 11 PRB
10 MHz 52 PRB 24 PRB
20 MHz 106 PRB 51 PRB 24 PRB
100 MHz 273 PRB 135 PRB 66 PRB

즉, PRB 수 = 주파수 대역폭 / (12 × SCS)
(단, 보호대역(guard band) 제외)


PRB는 실제 전송 자원 단위

PRB 내부에는 다양한 신호가 매핑됩니다.

종류 설명
PDSCH / PUSCH 실제 사용자 데이터 전송
DMRS 복조 기준신호
PTRS / CSI-RS / SRS 채널 품질 측정 신호
Control (PDCCH / PUCCH) 제어 정보

즉, PRB는 “데이터 + 참조 신호 + 제어 신호”가 함께 존재하는 물리적 전송 자원 단위입니다.


핵심 요약

| 항목 | 설명 | | ——- | ———————————— | | 정의 | 시간–주파수 영역의 최소 물리 자원 단위 | | 구성 | 12 Subcarriers × 1 Slot (14 Symbols) | | 대역폭 | SCS에 따라 180~1440 kHz | | 기준 | BWP 내 상대 위치 | | 역할 | 스케줄링, 채널 추정, 데이터 전송의 기본 단위 | | 수량 | 시스템 대역폭과 SCS에 따라 다름 |

PDCCH

@startuml
:DCI;
:CRC(CRC24C) Attachment;
:RNTI masking;
:Interleaving;
:Polar coding;
:Rate matching;
:Scrambling;
:Modulation;
:RE mapping;
:IFFT and CP insertion;
@enduml

PDCCH란 무엇인가?

PDCCH (Physical Downlink Control Channel)
단말(UE)에게 다운링크 및 업링크 전송 자원 할당 정보를 전달하는 제어 채널입니다.

즉,

“지금부터 이 PRB, 이 MCS, 이 타이밍으로 데이터를 보내줄게.”
“이 타이밍에 업링크로 데이터 보내.”
이런 명령이 모두 PDCCH 를 통해 전송됩니다.

PDCCH의 주요 역할

역할 설명
1. Scheduling Information 어떤 PRB에 데이터가 실리는지 (PDSCH/PUSCH 자원 할당)
2. MCS Configuration 변조방식(QPSK, 16QAM, 64QAM, 256QAM 등)과 부호율 정보
3. HARQ Control 재전송 명령 (ACK/NACK), HARQ 프로세스 번호 전달
4. Timing Control 전송 타이밍 지연 설정
5. Beam & BWP Info 사용 중인 빔이나 Bandwidth Part 변경 정보

PDCCH의 계층 구조

PDCCH는 다른 채널들과 달리 “Control 영역” 에 존재하며,
논리/전송/물리 채널로 아래처럼 매핑됩니다.

계층 채널 이름 역할
Logical Channel DCCH (Dedicated Control Channel) UE별 제어 논리 채널
Transport Channel DCI (Downlink Control Information) 제어정보 패킷 형태
Physical Channel PDCCH 실제 무선상으로 전송되는 제어 신호

즉,

UE는 PDCCH를 수신하고 내부에서 DCI를 디코딩하여 실제 제어명령을 해석합니다.


PDCCH 구조 (Time–Frequency Plane)

PDCCH는 CORESET (Control Resource Set) 영역 안에서 전송됩니다.

Frequency ↑
│
│   ┌────────────────────────────┐
│   │        CORESET             │ ← Control Resource Set
│   │ ┌───────────┬───────────┐  │
│   │ │  PDCCH #1 │  PDCCH #2 │  │ ← 여러 UE의 제어 정보
│   │ └───────────┴───────────┘  │
│   └────────────────────────────┘
│──────────────────────────────→ Time

CORESET과 PDCCH의 관계

구성 요소 약어 설명
CORESET (Control Resource Set) CORESET PDCCH가 위치할 수 있는 시간–주파수 영역
Search Space (SS) UE가 PDCCH를 탐색하는 후보 영역  
CCE (Control Channel Element) PDCCH를 구성하는 기본 단위 (6 REGs = 72 REs)  
DCI (Downlink Control Information) 실제 제어정보 비트 시퀀스 (스케줄링 정보 포함)  

➡️ 요약 관계

CORESET → Search Space → CCE → PDCCH → DCI


목적 PDCCH가 전달하는 내용 수신 후 단말 동작
Downlink Scheduling “PDSCH 할당 정보” UE가 데이터 수신
Uplink Grant “PUSCH 자원 정보” UE가 업링크 송신
HARQ ACK/NACK “재전송 요청 여부” UE가 재전송 수행
BWP/Beam 변경 “활성화할 BWP, Beam ID” UE가 전송 설정 변경

PDCCH의 물리적 구성 단위

단위 구성 설명
RE (Resource Element) 1 subcarrier × 1 symbol 최소 자원 단위
REG (Resource Element Group) 12 REs OFDM 상 한 Subcarrier 그룹
CCE (Control Channel Element) 6 REGs = 72 REs PDCCH의 기본 구성 블록
Aggregation Level (L) CCE의 묶음 단위 (1, 2, 4, 8, 16) 신호 강도에 따라 가변

즉,

PDCCH는 여러 CCE로 구성되고,
각 CCE는 6개의 REG (=72 REs)로 구성됩니다.


PDCCH 관련 파라미터 (3GPP 38.211/38.213)

파라미터 설명
n_CCE 사용된 Control Channel Element 개수
L (Aggregation Level) CCE 묶음 크기
DCI Format DCI 0_0, 1_0, 1_1 등 (전송 타입별 제어 포맷)
CORESET ID CORESET 식별 번호
SearchSpace ID 탐색 공간 식별 번호

  1. gNB가 UE에 PDSCH 자원을 할당해야 함
    2️. DCI(포맷 1_0) 생성
    3️. DCI를 CCE에 매핑하여 PDCCH로 전송
    4️. UE가 Search Space에서 해당 PDCCH를 탐색 및 디코딩
    5️. DCI 정보로 PDSCH 위치·MCS·HARQ 설정
    6️. PDSCH에서 데이터 수신

핵심 요약

항목 설명
이름 PDCCH (Physical Downlink Control Channel)
역할 자원 할당, HARQ, BWP/Beam 제어 등
위치 CORESET 영역 내
기본 단위 CCE (Control Channel Element)
탐색 방식 Search Space 기반
전송 정보 DCI 포맷 (0_0, 1_0, 1_1 등)

DCIs

DCI란 무엇인가?

DCI (Downlink Control Information)
단말(UE)에게 무선자원 스케줄링과 제어 명령을 전달하는 정보 포맷입니다.

즉,

PDCCH가 껍질(shell) 이라면,
DCI는 그 안에 들어 있는 핵심 제어 메시지(payload) 입니다.


DCI의 역할

역할 설명
다운링크 스케줄링 UE에게 어떤 PRB, 어떤 MCS로 데이터를 수신해야 하는지 알려줌
업링크 스케줄링 (UL Grant) UE에게 업링크 전송용 자원을 할당
HARQ 제어 재전송(ACK/NACK) 및 프로세스 번호 제어
파워 제어 전송 전력 보정 지시
BWP / Beam 제어 활성화할 Bandwidth Part 및 빔 정보
CSI 요청 채널 상태 정보(CQI/PMI/RI) 보고 명령

DCI의 전송 구조

DCI는 PDCCH를 통해 전송됩니다.
아래 구조로 계층이 연결되어 있어요:

CORESET → Search Space → PDCCH → DCI

즉:


DCI의 주요 포맷 (5G NR 기준)

DCI에는 여러 포맷이 정의되어 있습니다.
각 포맷은 전송 방향(DL/UL)과 전송 타입(공유, 공용, 특정 UE)에 따라 달라집니다.

DCI 포맷 방향 역할 / 설명
Format 0_0 UL UL-SCH 자원 할당 (기본 UL grant)
Format 0_1 UL Configured Grant 방식 자원 할당
Format 1_0 DL DL-SCH 자원 할당 (기본 DL scheduling)
Format 1_1 DL Semi-persistent scheduling (SPS) 또는 고급 DL 설정
Format 2_0~2_3 DL Power Control, CSI 요청 등 기타 제어용
Format 3_0 / 3_1 DL Group-based scheduling / Power offset 제어
Format 4_0 DL Beam activation / deactivation

| | Fallback DCIs | Non-fall DCIs | | ——— | ————- | ————- | | PUSCH | DCI 0_0 | DCI 0_1 | | PDSCH | DCI 1_0 | DCI 1_1 |


DCI의 주요 필드 구성

예시: DCI Format 1_0 (Downlink Scheduling)

필드명 설명
Carrier Indicator 다중 캐리어 사용 시 어떤 Carrier인지 표시
Bandwidth Part (BWP) Indicator 활성화할 BWP ID
Resource Allocation PRB 자원 할당 정보 (bitmap 또는 type1/2)
MCS (Modulation and Coding Scheme) 변조방식 및 부호율
HARQ Process Number 현재 HARQ 버퍼 식별자
New Data Indicator (NDI) 새 데이터 전송 여부 표시
Redundancy Version (RV) HARQ 재전송 시 부호율 패턴
Power Control Commands 전송 전력 보정 값
Time-domain Resource Assignment 어떤 슬롯/심볼에 전송할지
DMRS Configuration 참조 신호 패턴
CSI Request 채널 상태 보고 요청

⚠️ 각 DCI 포맷마다 비트 필드 구성이 다르며,
실제 비트 길이는 DCI Format + Bandwidth + RNTI 종류에 따라 달라집니다.


DCI의 인코딩 및 디코딩 과정

[1] gNB (송신측)

  1. MAC/RRC 계층에서 스케줄링 정보 생성
  2. DCI 포맷에 따라 비트 필드 구성
  3. CRC 추가 및 RNTI (Radio Network Temporary Identifier) 마스킹
  4. DCI를 PDCCH에 매핑
  5. OFDM 변조 → 무선 전송

[2] UE (수신측)

  1. Search Space 내에서 PDCCH 탐색
  2. CRC 마스크를 통해 자신에게 해당하는 DCI 확인
  3. DCI 비트 디코딩 및 해석
  4. 자원 재구성 및 데이터 수신 준비 (PDSCH 또는 PUSCH)

RNTI (Radio Network Temporary Identifier)

RNTI 종류 용도
C-RNTI 개별 UE 전용 제어
SI-RNTI 시스템 정보(SIB) 전송
P-RNTI 페이징(Paging) 메시지
RA-RNTI 랜덤 액세스 (RACH) 응답
TC-RNTI 일시적인 연결 중 식별자

DCI 전송의 시간적 관계

Slot n:
 ├─ PDCCH (DCI Format 1_0) → PDSCH Scheduling
 ├─ PDCCH (DCI Format 0_0) → PUSCH Grant
Slot n+k:
 └─ PDSCH/PUSCH 실제 데이터 전송

즉,

DCI는 데이터 전송보다 먼저(slot advance) 전송되어
UE가 미리 전송 자원을 준비하도록 합니다.


DCI와 PDCCH 관계 요약

항목 설명
PDCCH DCI가 담기는 물리 채널
DCI 자원 및 제어 정보 (bit field)
CORESET PDCCH가 존재할 수 있는 시간–주파수 영역
Search Space UE가 자신에게 해당하는 DCI를 찾는 후보 영역

핵심 요약

항목 설명
DCI 정의 무선자원 제어 정보 (Scheduling, HARQ, Power, CSI 등)
전송 채널 PDCCH (물리 채널)
포맷 종류 Format 0_x (UL), 1_x (DL), 2_x~4_x (Control)
기본 단위 비트 필드 구조, CRC 마스크(RNTI)
수신 절차 UE가 Search Space 내 PDCCH를 탐색 후 DCI 디코딩
결과 UE는 DCI 기반으로 PDSCH/PUSCH 송수신 수행

CORESET

CORESET이란 무엇인가?

CORESET (Control Resource Set)
5G NR에서 PDCCH(Physical Downlink Control Channel) 가 전송될 수 있는
시간–주파수 영역(time-frequency region) 을 정의한 영역입니다.

즉,

“PDCCH는 아무 곳에나 존재하지 않고, 정해진 CORESET 안에서만 존재할 수 있습니다.”


CORESET의 역할

역할 설명
제어 신호 위치 정의 PDCCH가 놓일 수 있는 시간–주파수 영역 정의
제어 자원 분리 다른 채널(PDSCH 등)과의 간섭 방지
유연한 스케줄링 주파수, 시간, 심볼 개수, RE 패턴을 자유롭게 구성 가능
UE별 맞춤 제어공간 제공 각 UE에게 다른 CORESET을 할당할 수 있음

CORESET의 구성 요소

CORESET은 시간 영역(OFDM symbol 수)주파수 영역(Resource Block 수) 으로 정의됩니다.

항목 설명
시간 영역 1, 2, 또는 3 OFDM symbols
주파수 영역 6의 배수로 구성된 RB 단위 (예: 24, 48, 96 RB 등)
RE(Resource Element) Subcarrier × Symbol 단위
REG(Resource Element Group) 12 RE = 1 REG
CCE(Control Channel Element) 6 REG = 1 CCE

CORESET과 PDCCH의 관계

CORESET → REG → CCE → PDCCH → DCI


CORESET의 주요 파라미터 (3GPP 38.211 §7.3.2.2)

파라미터 의미 설명
CORESET ID 식별 번호 0~11까지 식별 가능 (RRC로 구성됨)
Duration 심볼 개수 1, 2, 3 OFDM symbols 중 하나
Frequency Domain Resources 주파수 영역 6 RB 단위로 정의된 bitmap
CCE-to-REG mapping 매핑 방식 Interleaved 또는 Non-interleaved
DMRS Configuration 참조신호 패턴 PDCCH 복조용 DMRS 포함

CORESET의 시간–주파수 구조 (예시)

Frequency 
↑
│
│   ┌─────────────────────────────────────────────┐
│   │                 CORESET                     │
│   │ ┌───────────────┬───────────────┬─────────┐ │
│   │ │   PDCCH UE#1  │   PDCCH UE#2  │ PDCCH#3 │ │
│   │ └───────────────┴───────────────┴─────────┘ │
│   └─────────────────────────────────────────────┘
│────────────────────────────────────────────────→ Time
│                (1~3 OFDM Symbols)

Search Space와 CORESET의 관계

CORESET은 물리적 영역, Search Space 는 UE가 그 영역 안에서 “어디를 탐색할지”를 정의한 논리적 영역입니다.

구성 요소 설명
CORESET PDCCH가 실제 존재할 수 있는 물리 자원 영역
Search Space (SS) UE가 해당 CORESET 내에서 DCI를 탐색하는 후보 영역
Aggregation Level (L) CCE 묶음 크기 (1, 2, 4, 8, 16)
SearchSpaceSet 여러 Search Space 묶음 (예: Common, UE-specific)

👉 관계 요약:

CORESET (물리 영역)
 └── Search Space (탐색 후보)
      └── CCE (PDCCH 구성 단위)
           └── DCI (제어정보)

CORESET의 종류

구분 이름 특징
CORESET #0 공통 (Common) 셀 탐색 및 시스템 정보용 (SI-RNTI, RA-RNTI 등)
CORESET #1~11 전용 (UE-specific) UE별 동적 자원 제어용 (C-RNTI 기반)

📘 예시:


CORESET 내 REG/CCE 매핑

CORESET 내 PDCCH 자원은 REG 단위로 구성되며,
이들은 Interleaved 또는 Non-interleaved 방식으로 CCE에 매핑됩니다.

매핑 방식 설명
Non-Interleaved 연속된 REG를 묶어 하나의 CCE 구성 (단순, 고신뢰)
Interleaved REG를 주파수 전반에 퍼뜨려 페이딩에 강함 (분산형)

DCI 수신 절차에서 CORESET의 역할

1️. UE는 RRC 메시지로 CORESET 구성을 수신
2️. Search Space 구성을 통해 탐색 영역 설정

  1. CORESET 내에서 PDCCH 탐색 수행
    4️. CRC 마스크로 자신의 RNTI 확인
    5️. 해당 DCI 해석 → 자원 할당 수행

핵심 요약

항목 설명
정의 PDCCH가 전송될 수 있는 시간–주파수 영역
구성 단위 REG → CCE → PDCCH
시간 길이 1~3 OFDM symbols
주파수 폭 6 RB 단위, bitmap으로 정의
매핑 방식 Interleaved / Non-interleaved
역할 PDCCH 및 DCI의 전송 영역 제공
종류 Common (CORESET#0), UE-specific (CORESET#1~11)

CORESET의 크기

기본 관계식

5G NR에서 다음과 같은 관계가 항상 성립합니다: \(N_{CCE} = \frac{N_{REG}}{6}​​\) 즉,

REG 개수 계산식

CORESET 내의 REG 개수 (N_REG) 는 다음과 같이 계산됩니다: \(N_{REG} = N_{RB}^{CORESET} × N_{sym}^{CORESET}​\)

기호 의미 설명
\(N_{RB}^{CORESET}\)​ 주파수 방향의 RB 개수 CORESET 폭 (6의 배수)
\(N_{sym}^{CORESET}\)​ 시간 방향의 OFDM symbol 개수 1, 2, 또는 3

따라서, CORESET 내 CCE 수는

\[N_{CCE} = \frac{N_{RB}^{CORESET} × N_{sym}^{CORESET}}{6}​​\]

📊 4️⃣ 예시 계산

CORESET 구성 (주파수 × 시간) REG 수 CCE 수 (N_CCE)
24 RB × 1 symbol 24 4
24 RB × 2 symbols 48 8
48 RB × 2 symbols 96 16
48 RB × 3 symbols 144 24
96 RB × 2 symbols 192 32
96 RB × 3 symbols 288 48
144 RB × 3 symbols 432 72

실제 예시 (3GPP NR 표준에서 자주 쓰는 CORESET 크기)

CORESET ID 시간 길이 RB 폭 총 CCE 개수 설명
CORESET #0 2 symbols 48 RB 16 CCE 초기 접속용 (공통)
CORESET #1 2 symbols 96 RB 32 CCE 일반 DL 스케줄링용
CORESET #2 3 symbols 48 RB 24 CCE UE 전용 PDCCH 영역
CORESET #3 1 symbol 24 RB 4 CCE 소형 셀 또는 협대역 제어용

요약 도식

CORESET (time × frequency)
 └── REG (12 RE)
     └── 6 REG = 1 CCE
         └── 여러 CCE로 PDCCH 구성

핵심 요약

항목 설명
1 CCE 6 REG = 72 RE
1 REG 12 RE
CCE 개수 계산식 \(N_{CCE} = (N_{RB}^{CORESET} × N_{sym}^{CORESET}) / 6\)
CORESET 길이 1–3 OFDM Symbols
CORESET 폭 6 RB 단위 (최대 275 RB, 표준 상 최대 48 CCE 정도 권장)
예시 CORESET (48 RB × 2 sym) = 16 CCE

Search Space

Search Space란 무엇인가?

Search Space (SS)
단말(UE)이 PDCCH(=DCI가 들어있는 제어 신호)탐색할 후보 영역(candidate region) 을 의미합니다.

즉,

“CORESET이 PDCCH가 실제 존재할 수 있는 물리적 영역”이라면,
“Search Space는 UE가 그 영역 안에서 자신에게 해당하는 제어정보를 찾아보는 논리적 영역”이에요.


핵심 개념 비교

구분 역할 설명
CORESET 물리적 영역 PDCCH가 실제 존재할 수 있는 시간–주파수 자원 (OFDM symbols × RB)
Search Space (SS) 논리적 영역 UE가 CORESET 내에서 PDCCH/DCI를 탐색하는 후보 집합

즉 👇

CORESET (물리적 컨테이너)
 └── Search Space (탐색 후보 구역)
      └── 여러 Candidate CCE 묶음
           └── PDCCH (DCI 포함)

Search Space의 주요 역할

역할 설명
PDCCH 탐색 후보 정의 UE가 어떤 CCE 집합에서 PDCCH를 디코딩할지 결정
제어 채널 충돌 방지 여러 UE가 같은 CORESET을 공유할 때 충돌 방지
다양한 제어 시나리오 지원 공통 제어(시스템 정보, 페이징 등)와 UE 전용 제어 모두 지원
Aggregation Level 관리 CCE 묶음 크기를 정의 (1, 2, 4, 8, 16 CCE 단위)

Search Space의 주요 파라미터

3GPP TS 38.213 §10.1 에 정의된 주요 설정 요소입니다:

파라미터 설명
SearchSpace ID Search Space 식별자
CORESET ID 연결된 CORESET 식별자 (Search Space는 항상 하나의 CORESET과 연결됨)
n_CandidatesPerAggLevel 각 Aggregation Level별 후보 개수 (예: 2, 4, 8 등)
Aggregation Level (L) CCE 묶음 크기 (1, 2, 4, 8, 16)
Monitoring Slots PDCCH 탐색이 수행되는 슬롯 위치
RNTI Type 어떤 RNTI로 CRC 마스크가 되는지 (예: C-RNTI, SI-RNTI, RA-RNTI 등)

Search Space의 종류

5G NR에는 크게 두 종류의 Search Space가 있습니다.

종류 이름 설명
Common Search Space (CSS) 공통 탐색 영역 시스템 공용 메시지(SIB), 페이징, 랜덤 액세스 응답 등
UE-Specific Search Space (USS) 전용 탐색 영역 특정 UE의 DL/UL 스케줄링, HARQ 등

📘 예시


Aggregation Level (L)

Search Space 내에서 PDCCH는 하나 이상의 CCE 묶음(Aggregation Level) 로 전송됩니다.

Aggregation Level (L) 사용 CCE 개수 설명
1 1 CCE 좋은 채널 상태 (짧은 제어 메시지)
2 2 CCE 중간 채널 상태
4 4 CCE 약한 채널 환경
8 / 16 8 / 16 CCE 매우 약한 채널 환경, 높은 신뢰 필요

단말은 Search Space 내의 여러 후보 중 하나가 자신에게 해당하는 DCI일 수 있으므로,
각 Aggregation Level별 후보를 blind decoding 해야 합니다.


Blind Decoding (맹목 디코딩)

즉 👇

UE는 Search Space 내 여러 위치에서 “혹시 나한테 온 PDCCH 있나?” 하고 전부 검사(blind decoding)합니다.


Search Space 구성 예시

파라미터 예시 값
연결된 CORESET CORESET #1
Duration 2 OFDM symbols
Aggregation Levels {2, 4, 8}
Candidates per Level {4, 2, 1}
RNTI Type C-RNTI
Monitoring Slots Slot 0, 2, 4, …

➡️ 이 경우 UE는 Slot 0, 2, 4 등에서
CORESET#1 내 지정된 후보 CCE 위치에서만 PDCCH를 탐색합니다.


Search Space와 CORESET 관계 정리

개념 의미 역할
CORESET 물리적 제어 영역 PDCCH가 실제 배치되는 공간
Search Space 논리적 탐색 영역 UE가 PDCCH를 찾는 후보 구간
PDCCH 물리 채널 DCI를 실어서 전송
DCI 제어 정보 스케줄링·HARQ·MCS 정보 등

📘 관계 구조:

CORESET
 └── Search Space
      └── CCE Candidates
           └── PDCCH (contains DCI)

핵심 요약

항목 설명
정의 CORESET 내에서 UE가 PDCCH/DCI를 탐색하는 논리적 후보 영역
유형 Common Search Space (CSS), UE-Specific Search Space (USS)
Aggregation Level 1, 2, 4, 8, 16 CCE 단위
탐색 방식 Blind Decoding (RNTI 기반 CRC 확인)
CORESET과의 관계 Search Space는 항상 하나의 CORESET과 연결
역할 PDCCH 충돌 방지 및 제어 효율 향상

Blind decoding

이 개념은 단말(UE)이 “자신에게 해당하는 제어 메시지(DCI)가 어디 있는지 모를 때, 그것을 어떻게 찾는가” 하는 문제의 핵심입니다.


Blind Decoding이란 무엇인가?

Blind Decoding (맹목 디코딩)
단말(UE)이 Search Space 내의 모든 가능한 위치, 크기, 포맷 후보에 대해 PDCCH(DCI)시도적으로(decoding attempt) 디코딩하여,
자신에게 해당하는 제어 메시지를 찾아내는 과정입니다.

즉 👇

UE는 “PDCCH가 어디에 있고, 어떤 형식(DCI format)으로 왔는지 미리 모른다.”
그래서 “가능한 모든 후보를 일일이 시도해보며(맹목적으로) 자신에게 온 메시지를 찾는” 겁니다.


왜 Blind Decoding이 필요한가?

5G NR의 제어 채널 구조는 매우 유연합니다.

따라서 UE는 수신 시점에 다음을 모릅니다:

  1. DCI가 존재하는지 여부
  2. 존재한다면 어디에 위치하는지
  3. 얼마나 많은 CCE를 사용하는지 (Aggregation Level)
  4. 어떤 DCI 포맷인지

👉 그래서 UE는 “모든 가능한 후보 조합”을 맹목적으로 디코딩해서 확인해야 합니다.


Blind Decoding의 과정 요약

1️. UE는 Search Space 설정에 따라 후보 위치(=CCE 집합)들을 알고 있음.
2️. 각 후보에 대해, 가능한 Aggregation Level (1, 2, 4, 8, 16)을 적용.
3️. 각각의 후보 CCE 묶음에 대해 DCI 디코딩 시도 수행.
4️. 디코딩된 DCI의 CRC를 RNTI로 마스크 해제.
5️. CRC 결과가 자신의 RNTI와 일치하면 → 성공!
6️. 일치하지 않으면 → 다음 후보로 이동.


절차 도식

Search Space 내 여러 후보 CCE 집합들
 ├─ 후보 #1 (L=2 CCE) → 디코딩 → CRC=RNTI? → No
 ├─ 후보 #2 (L=4 CCE) → 디코딩 → CRC=RNTI? → No
 ├─ 후보 #3 (L=8 CCE) → 디코딩 → CRC=RNTI? → ✅ Yes → DCI 수신 성공
 └─ 후보 #4 (L=2 CCE) → 스킵

UE는 자신에게 해당하는 DCI를 찾을 때까지 여러 번 디코딩을 반복합니다.
이 모든 과정이 Blind Decoding입니다.


Blind Decoding의 입력 정보

항목 설명
CORESET 구성 PDCCH가 존재할 수 있는 물리적 영역 (RB × Symbol 수)
Search Space 구성 탐색 후보 CCE 집합 정의
Aggregation Level (L) CCE 묶음 크기 (1, 2, 4, 8, 16)
DCI 포맷 후보 (예: 0_0, 1_0, 1_1 등)
RNTI 목록 CRC 비교용 (C-RNTI, SI-RNTI, RA-RNTI 등)

Blind Decoding 시도 횟수 예시

만약 UE가 다음과 같은 Search Space를 모니터링한다면:

Aggregation Level 후보 수 (n_cand)
1 6
2 6
4 4
8 2

👉 총 18개의 후보 PDCCH 를 Blind Decoding 해야 함.
(각 후보마다 CRC check 포함)

💡 단말의 디코딩 복잡도는 Search Space 구성(후보 개수, Aggregation Level 수)에 비례합니다.


CRC와 RNTI의 역할

RNTI 종류 용도
C-RNTI UE 전용 스케줄링
SI-RNTI 시스템 정보(SIB)
RA-RNTI 랜덤 액세스 응답
P-RNTI 페이징
TC-RNTI 임시 연결용

성공 판정 조건

DCI 디코딩 후, 다음 조건을 만족해야 “성공한 Blind Decoding”입니다:

  1. CRC 마스크 해제 후 결과가 특정 RNTI와 일치
  2. DCI 포맷이 규격에 맞게 파싱 가능
  3. DCI 필드 내의 자원 할당 정보가 유효한 범위

Blind Decoding 복잡도 줄이기

UE는 전력 소모를 줄이기 위해 Monitoring Config 를 통해 Blind Decoding 횟수를 제한합니다.


핵심 요약

항목 설명
정의 UE가 PDCCH/DCI 위치·형식을 모를 때 모든 후보를 시도적으로 디코딩
이유 PDCCH 위치, 크기, 포맷이 가변적이기 때문
탐색 영역 Search Space 내 후보 CCE 집합
검증 방식 CRC + RNTI 일치 여부
복잡도 요인 Aggregation Level, 후보 개수, DCI 포맷 수
최적화 방법 Search Space 설정, 주기적 모니터링, UE capability 기반 제한

PDSCH와 PUSCH

PDSCH과 PUSCH의 기본 구조

PDSCH에는 최대 두 개의 전송 블록(Transport Block, TB) 이 존재할 수 있습니다.
반면, PUSCH에서는 하나의 체인(chain)오직 하나의 전송 블록만 존재합니다.

즉, PDSCH에서는 두 개의 TB를 처리할 수 있고,
PUSCH에서는 하나만 처리됩니다.

Transport

@startuml
:Transport block (TB);
if (TBS > 3824) then (yes)
	: CRC Attachment (CRC24A);
else (no)
	: CRC Attachment (CRC16);
endif
if ((TBS<=292) or (TBS<=3824 and code_rate<=0.67) or (code_rate<=0.25)) then (no)
	: LDCP Base Graph 1 ($$K_{cb}=8448$$);
else (yes)
	: LDPC Base Graph 2 ($$K_{cb}=3840$$);
endif
if (TBS + CRC length > $$K_{cb}$$) then (no)
	: No Code Block Segmentation;
	: LDPC Encoding;
	: Rate Matching;
else (yes)
	: Code Block will be segmented;
	split
		: LDPC Encoding;
		: Rate Matching;
	split again
		: ...;
		: ...;
	split again
		: LDPC Encoding;
		: Rate Matching;
	split again
		: ...;
		: ...;
	split again
		: LDPC Encoding;
		: Rate Matching;
	end split
endif
: Code Block Concatenation;
: Scrambling;
: Modulation;
: Layer Mapping;
split
	: Antenna Port Mapping;
split again
	: DMRS;
split again
	: PTRS;
end split
: IFFT and CP Insertation;
@enduml

CRC 부착 (CRC Attachment)

MAC 계층에서 전송 블록을 받으면, 이 TB의 크기는 매우 작을 수도, 매우 클 수도 있습니다.
TB 크기에 따라 어떤 CRC(Cyclic Redundancy Check) 를 사용할지 결정합니다.

CRC가 클수록 에러 검출 확률이 높기 때문에,
큰 TB에는 큰 CRC를 사용하는 것이 좋습니다.


코드 블록 분할 (Code Block Segmentation)

CRC를 부착한 후, TB를 여러 개의 코드 블록(Code Block) 으로 나눕니다.
이렇게 나누는 이유는 디코더 복잡도를 줄이기 위해서입니다.

분할 방법은 다소 복잡합니다.
먼저 LDPC Base Graph를 선택합니다.
LDPC에는 Base Graph 1Base Graph 2 두 가지가 있습니다.

이 행렬(matrix)은 LDPC 부호화 시 사용되는 패리티 체크 행렬로,
“Low Density”(즉, 1의 개수가 매우 적음) 형태입니다.


Base Graph 선택 조건:

다음 조건 중 하나라도 참이면 → Base Graph 2 사용

그 외의 경우 → Base Graph 1 사용

Base Graph별 코드 블록 최대 크기는:


코드 블록 분할 및 CRC 부착

만약 TB+CRC의 크기가 위 코드 블록 최대 크기(Kcb)를 초과하면,
TB를 여러 개의 코드 블록으로 나눕니다.

예시:
TB+CRC = 10,000 bit, Kcb = 8448 → 2개의 코드 블록으로 나눔.
각 블록의 크기는 5000 + 24(CRC) = 5024 bit.

각 코드 블록에는 CRC24B가 추가됩니다.
분할이 없는 경우에는 이 CRC를 추가하지 않습니다.


LDPC 부호화 (LDPC Encoding)

각 코드 블록은 LDPC 부호화 모듈을 통과합니다.
LDPC 인코더의 입력 길이는 $K_b * Z_c$로 정의되며,
$Z_c$는 리프팅 사이즈(lifting size) 입니다.

BG1의 경우: Kb = 22
조건식: $22 \times Z_c >= \text{코드 블록 크기}$

예를 들어, $CB_{size} = 5024$ → 최소 Zc ≈ 240

BG2의 경우 Kb는 TB 크기에 따라 6, 8, 9, 10 중 하나가 됩니다.

입출력 크기:

부족한 비트는 Filler bits(null bits) 로 채워서
입력 크기를 맞춥니다.


Rate Matching (속도 맞춤)

LDPC 후에는 Rate Matching이 수행됩니다.
PDSCH → 항상 LBRM (Limited Buffer Rate Matching)
PUSCH → LBRM 또는 Full Buffer Rate Matching 중 선택 가능

그 후, 모든 코드 블록은 순서대로 Concatenation(연결) 되어 하나의 비트 시퀀스로 합쳐집니다.


Scrambling (스크램블링)

비트 시퀀스는 랜덤화(randomization) 되어,
다른 사용자나 셀에서의 간섭을 줄입니다.

초기화 식:

UCI(User Control Information) 비트는 별도의 스크램블링을 사용합니다.


Modulation (변조)


Layer Mapping (계층 매핑)

각 코드워드(codeword)는 독립적으로 레이어에 매핑됩니다.
레이어 수에 따라 심볼이 번갈아가며 배치됩니다.
(예: 2레이어일 때 L0 → 짝수, L1 → 홀수 심볼)


안테나 포트 매핑 및 자원 블록 매핑

이 부분은 매우 복잡하므로, 별도의 영상에서 다룬다고 합니다.
(DMRS와 연관됨)


Reception

@startuml
:CP Removal and FFT;
: REsource Block De-mapping;
split
	: DMRS Channel Estimation;
split again
	: PTRS Channel Estimation;
end split
: Equalizer;
: Layer De-mapping;
: Soft De-modulation;
: De-scrambling;
split
	if ((TBS<=292) or (TBS<=3824 and code_rate<=0.67) or (code_rate<=0.25)) then (no)
		: LDPC Base Graph 1 ($$K_{cb}=8448$$);
	else (yes)
		: LDCP Base Graph 2 ($$K_{cb}=3840$$);
	endif
split again
end split
if (TBS+CRC length > $$K_{cb}$$) then (no)
	: No Code Block Segmentation;
	: Rate De-Matching;
	: LDPC Decoding;
else (yes)
	: Code Block will be segmented;
	split
		: Rate De-Matching;
		: LDPC Decoding;
	split again
		: ...;
		: ...;
	split again
		: Rate De-Matching;
		: LDPC Decoding;
	split again
		: ...;
		: ...;
	split again
		: Rate De-Matching;
		: LDPC Decoding;
	end split
endif
: Code Block Concatenation;
: CRC Removal;
: Transpot Block (TB);
@enduml

수신단 처리 (Receiver Processing)

수신단은 송신단의 반대 순서로 동작합니다.

  1. DMRS 복조 후 채널 추정
  2. Equalizer (ZF, MMSE 등) 적용
  3. Layer De-mapping
  4. Soft Demodulation (LLR 값 생성)
  5. Descrambling
  6. Code Block Segmentation 복원
  7. Rate Dematching
  8. LDPC 디코딩
  9. Code Block 재조합 및 CRC 검사

마지막으로 CRC24A를 제거하면 최종 Transport Block 이 복원됩니다.

Transport Block Size Calculation

개요 — TBS란 무엇인가?

TBS (Transport Block Size) 는 한 번의 PDSCH (Downlink) 또는 PUSCH (Uplink) 전송에서 물리계층(PHY)이 상위계층(MAC)으로부터 받아 처리할 수 있는 데이터 비트의 양을 의미합니다.

즉,

“한 번 전송에 실릴 수 있는 payload 크기(비트 단위)”입니다.


TBS 계산의 주요 입력 변수

TBS는 아래 값들에 의해 결정됩니다 👇

항목 의미 단위 설명
\(N_{PRB}\)​ 할당된 Physical Resource Block 개수 주파수 자원 폭
\(N_{symb}\)​ 사용된 OFDM symbol 개수 시간 자원 길이
\(N_{sc}\)​ 서브캐리어 개수 (12) PRB당 subcarrier 수
\(N_{RE}^{used}\)​ 실제 데이터용 RE 개수 DMRS, CSI-RS 등 제외한 RE 수
\(Q_m\)​ 변조 차수 (Modulation Order) bit/sym QPSK=2, 16QAM=4, 64QAM=6, 256QAM=8
R 코드율 (Coding Rate) - LDPC / Polar 부호율
\(N_{layer}\)​ 계층(layer) 수 MIMO 전송 시 병렬 스트림 수
\(N_{OH}\)​ 오버헤드 비트 - (예: UCI 포함 시 6 등)

기본 개념 공식

우선, 전송 가능한 총 비트 수의 근사값은 다음과 같습니다 👇 \(N_{info} = N_{PRB} × N_{sc} × N_{symb} × Q_m × R × N_{layer}​\) 하지만 실제 표준(3GPP 38.214 / 38.212)에서는 비트 단위 rounding, segmentation, lookup table 등을 포함해 아래 절차로 계산합니다.


TBS Calculation Step-by-Step (3GPP TS 38.214 §5.1.3.2)

Step 1️: 유효 RE 계산


Step 2️: 전체 자원 RE 계산

\(N_{RE}^{total} = N_{PRB} × N_{RE}^{PRB}\)​


Step 3️: 초기 비트수 계산

\[N_{info}^{init} = N_{RE}^{total} × Q_m × R\]

Step 4️: 3GPP 표준 TBS Table 적용

실제 TBS는 위 단순 계산값을 직접 쓰지 않고,
3GPP에서 정의된 TBS lookup table 에 따라 정규화(rounding)합니다.

즉, 다음 절차를 따릅니다:

\[N_{info}^{’} = \text{TBS\_table}(N_{info}^{init})\]

Step 5️: 계층 수 반영

\(TBS = N_{info}^{’} × N_{layer}\)​


파라미터 설명
\(N_{PRB}\)​ 50 10 MHz 대역에서 약 50 PRB
\(N_{symb}\)​ 12 슬롯당 14심볼 중 2개는 DMRS로 사용
\(Q_m\)​ 6 64QAM
\(R\) 0.5 코드율 1/2
\(N_{layer}\)​ 2 MIMO 2×2
\(N_{RE}^{PRB}\)​ 12×12 - DMRS(12) = 132  

계산:

\(N_{RE}^{total} = 50 × 132 = 6600\) \(N_{info} = 6600 × 6 × 0.5 × 2 = 39600 \text{ bits}\) 즉,
한 슬롯(1 ms)당 약 39.6 kb 데이터 전송이 가능.


LTE와 NR의 차이점

항목 LTE 5G NR
Modulation 최대 64QAM 최대 256QAM
Code rate 고정 표준 범위 (≈ 0.93) 유연한 LDPC rate
Table 방식 고정 테이블 기반 2가지 TBS Table (normal, high SE)
Multiple layers 최대 4 최대 8

5G NR에서는 “TBS Table 1” (normal) 과 “TBS Table 2” (high spectral efficiency) 두 종류를 선택 가능합니다.


TBS Table 개요 (3GPP 38.214, Table 5.1.3.2-1)

Index NinfoN_{info}Ninfo​ (bit) Index NinfoN_{info}Ninfo​ (bit)
0 24 9 328
10 408 20 1560
30 5048 40 20000
50 40832 60 119192
75 382400

즉, 실제 시스템에서는 연속적인 계산값을 이 테이블에 매핑하여 사용합니다.


PUSCH도 기본적으로 같은 계산 로직을 따릅니다.
단, 추가 고려 항목이 있습니다:

항목 설명
UCI (Uplink Control Information) HARQ-ACK, CSI 보고 등 제어 비트 포함 시 오버헤드 발생
DMRS Pattern Uplink은 Type1/Type2 패턴 선택에 따라 DMRS RE 수 다름
Code Rate PUSCH에서는 실제 유효 코드율이 더 낮음
Transform Precoding (DFT-s-OFDM) Release 15에서는 optional, RE 매핑 방식 다름

따라서 PUSCH에서는 오버헤드(OH) 항이 더 크게 반영됩니다.


핵심 요약

항목 의미 설명
TBS Transport Block Size 한 전송에서 전송 가능한 비트 수
적용 채널 PDSCH / PUSCH Downlink / Uplink 데이터 채널
기준 요소 PRB, Symbol 수, Modulation, Code Rate, Layers  
계산식(근사) \(TBS ≈ N_{PRB} × N_{symb} × 12 × Q_m × R × N_{layer}\)  
표준 규격 3GPP TS 38.214 §5.1.3.2, §6.1.4  

Precoding for MIMO

기본 개념

Precoding 이란,
여러 송신 안테나를 이용할 때 데이터 스트림을 안테나 신호로 변환하기 위한 행렬 연산입니다.

즉,

“기지국이 여러 안테나를 통해 데이터를 어떻게 섞어서(phase + amplitude control) 송신할 것인가?”를 결정하는 과정이에요.

수식으로 표현하면 👇
\(\mathbf{x} = \mathbf{W} , \mathbf{s}\)

기호 의미
s 데이터 스트림 벡터 $(N_layer × 1)$
W Precoding Matrix $(N_TX × N_layer)$
x 송신 안테나별 신호 벡터 $(N_TX × 1)$

Precoding의 목적

목적 설명
1. Beamforming 여러 안테나의 위상/진폭을 조합해 원하는 방향으로 전력 집중
2. Interference Suppression 다중 UE 간 간섭 최소화
3. Spatial Multiplexing 병렬 스트림 전송으로 전송량(throughput) 극대화
4. Diversity Gain 전파 페이딩에 강한 송신 신호 구성

MIMO 전송 구조

단순화된 블록도

            +-------------------+
   Data --> |  Layer Mapper     | --> s₁,s₂,…  
            +-------------------+
                      │
                      ▼
            +-------------------+
            |  Precoder (W)     | --> x₁,…,xₙ  (N_TX 안테나)
            +-------------------+
                      │
                  Radio Tx → 채널 → 수신기

MIMO 전송 모드와 Precoding

전송 모드 특징 Precoding 전략
Transmit Diversity 여러 안테나로 같은 데이터 전송 고정 precoding (예: Alamouti)
Spatial Multiplexing 서로 다른 데이터 스트림 병렬 전송 동적 precoding (채널 피드백 필요)
Beamforming 동일 데이터를 특정 방향으로 집중 단일 precoding 벡터 (Rank 1)
MU-MIMO 여러 UE 동시 서비스 각 UE 별 precoder로 간섭 억제
SU-MIMO 단일 UE에 복수 스트림 동일 precoder 행렬 공유

Precoding Matrix (수학적 형태)

\[\mathbf{W} = \begin{bmatrix} w_{11} & w_{12} & \cdots & w_{1L} \\ w_{21} & w_{22} & \cdots & w_{2L} \\ \vdots & \vdots & \ddots & \vdots \\ w_{N_T1} & w_{N_T2} & \cdots & w_{N_TL} \end{bmatrix}\]

Precoding Matrix Index (PMI)

피드백 항목 의미
RI (Rank Indicator) Layer 수
PMI Precoding Matrix Index
CQI Channel Quality Indicator (MCS 결정용)

Precoding 전략의 구분

구분 설명
Codebook-based Precoding UE가 표준 코드북 내 행렬 중 하나를 선택(PMI 보고) → gNB 적용
Non-codebook Precoding gNB가 직접 채널 정보를 추정하고 가중치 계산 (예: Massive MIMO)
Hybrid Beamforming 아날로그(phase shifter) + 디지털(baseband) precoding 조합

Massive MIMO Precoding 예시

이 방식으로 수십 개의 빔을 동시에 형성하면서,
특정 UE 방향으로 에너지를 집중시킬 수 있어요.


수신단(UE)에서의 Combining

UE는 수신 신호를 역방향 으로 Combining Matrix (V) 를 이용해 처리합니다.

\[\hat{\mathbf{s}} = \mathbf{V}^{H} \mathbf{y}\]

핵심 요약

| 항목 | 설명 | | ——— | —————————————————– | | 정의 | MIMO에서 데이터 스트림을 송신 안테나 신호로 변환하기 위한 가중 행렬 | | 수식 | $\mathbf{x} = \mathbf{W} \mathbf{s}$ | | 입력 | Layer 데이터 벡터 s | | 출력 | 송신 안테나 신호 x | | 종류 | Beamforming, Spatial Multiplexing, Diversity, MU-MIMO | | 제어정보 | PMI, RI, CQI | | 표준 문서 | 3GPP TS 38.211 §7.3, 38.214 §6.3.1 |

추가: 수식의 이해

\(\begin{align} Y_1&=H_{11}\cdot X_1+\omega_1+H_{21}\cdot X_2+\omega_2 \\ Y_2&=H_{12}\cdot X_1+\omega_1+H_{22}\cdot X_2+\omega_2 \\ \binom{Y_1}{Y_2}&=\begin{pmatrix}H_{11}&H_{21}\\H_{12}&H_{22}\\\end{pmatrix}\cdot\binom{X_1}{X_2}+\binom{\omega_1}{\omega_2} \\ Y &= H \cdot X + \omega \end{align}\) 여기에서 H는 채널 상태 변수이고 $\omega$는 잡음입니다. H 행렬은 송신된 신호가 수신기에서 어떻게 변화하는지를 나타내며, 각 송신 안테나와 수신 안테나 쌍에 대해 위상과 진폭을 표시하는 요소들로 구성됩니다. 상태 변수는 매우 빠른 시간에 자주 변경됩니다.

PRACH (Physical Random Access Channel)

PRACH(물리 랜덤 액세스 채널)은 UE가 gNB에 처음 접속할 때, 혹은 핸드오버/재접속 시 랜덤 액세스(RA) 절차를 시작하기 위한 물리 계층 채널입니다.

UE는 PRACH를 사용해 Preamble(프리앰블)을 전송하여 gNB가 UE의 존재를 알고, UL 동기화, 빔 선택, 자원 할당을 할 수 있게 됩니다.


PRACH의 주요 목적

1) 초기 접속(Initial Access)

UE가 처음 셀에 붙을 때 PRACH Preamble(MSG1)을 보냅니다.
gNB는 MSG2(RAR)로 Timing Advance와 UL Grant를 주어 UL 동기화가 이루어집니다.

2) 빔 관리(Beam Management)

특히 mmWave(FR2)에서 매우 중요합니다.
SSB 빔 방향을 기준으로 UE는 해당 SSB에 대응하는 PRACH 자원(RO)을 선택해 전송합니다.

3) 핸드오버 및 재접속(RRC Re-establishment)

HO-RACH 또는 재접속 시 동일한 RA 절차를 다시 수행합니다.


NR PRACH Preamble 종류

NR은 두 가지 계열의 Preamble을 사용합니다.

장형(LRA, Long Preamble)

단형(SRA, Short Preamble)

NR은 LTE보다 Preamble 종류·길이·자원 배치가 훨씬 더 다양합니다.


FR1 vs FR2 환경에서의 PRACH

구분 주파수 특징 Preamble 유형
FR1 6GHz 이하 일반 LTE와 유사한 환경 장형 + 단형
FR2 24~52GHz 빔포밍 필수, Path Loss 큼 단형만 사용

특히 FR2에서는 SSB 빔 스위핑 + PRACH 빔 기반 RA가 핵심입니다.


NR Random Access 4-단계 절차

NR은 기본적으로 4-Step RA 절차를 사용합니다.

Msg1: PRACH Preamble 전송

Msg2: Random Access Response (RAR)

Msg3: RRC 계층 메시지 전송

Msg4: Contention Resolution

NR은 필요에 따라 2-Step RA도 지원하지만, 대부분의 셀에서는 여전히 4-Step을 사용합니다.


빔포밍 기반 PRACH(Beam-based PRACH)

5G NR의 핵심 차별점은 바로 빔 기반 PRACH입니다.

FR2(mmWave)에서 접속 성공률을 끌어올리는 핵심 기술


PRACH 주요 RRC 파라미터 (TS 38.331)

gNB는 RRC 메시지로 PRACH 자원을 설정합니다. 핵심 파라미터:

NR은 CBRA(SI 기반)와 CFRA(UE별 전용 RA 자원) 모두 지원합니다.


LTE 대비 NR PRACH 차이점

항목 LTE NR
Preamble 타입 긴 ZC 기반만 장형+단형, 매우 유연
빔포밍 거의 없음 필수 (특히 FR2)
FDM 자원 제한적 Msg1-FDM으로 최대 8개 FDM 가능
FR2 지원 X O
SSB 매핑 없음 SSB 기반 RO 매핑 필수

NR PRACH는 빔포밍·FR2·스몰셀 환경에 맞춰 대폭 확장된 구조입니다.


참고할 3GPP TS 문서


PRACH 포맷 A1 / A2 / B1 / B2 / C0 / C2 비교표

(3GPP TS 38.211 기반 요약)

5G NR PRACH는 Short Sequence 계열(SRA)에서 A/B/C 시리즈를 사용합니다.
이는 슬롯 내 자원 배치, CP 길이, 서브캐리어 간격, 반복 횟수가 다릅니다.

NR Short PRACH Format 비교표

포맷 특징 Subcarrier spacing 기저 OFDM 심볼 수 반복(Repetition) 적용 환경
A1 가장 짧은 PRACH 포맷 중 하나 15 kHz 1 4 소형 셀, FR1
A2 A1보다 반복 적음 30 kHz 1 2 TDD/Urban
B1 CP 길이 증가 15 kHz 2 4 중간 셀
B2 B1의 30 kHz 버전 30 kHz 2 2 TDD, 빔기반
C0 더 넓은 BW, 짧은 길이 60 kHz 1 1 FR2 mmWave
C2 C0보다 CP 더 짧음 120 kHz 1 1 FR2 mmWave

📌 핵심 요약


RA 4-Step 프로시저 시퀀스 다이어그램

아래는 3GPP NR RA 절차 전체입니다.

@startuml
title 5G NR Random Access 4-Step Procedure

UE -> gNB: Msg1: PRACH Preamble (RA-RNTI)
gNB -> UE: Msg2: RAR (Timing Advance, UL Grant, Temp C-RNTI)

UE -> gNB: Msg3: RRC or MAC CE message\n(using UL-SCH with UL Grant)
gNB -> UE: Msg4: Contention Resolution\n(contains UE identity)

@enduml

📌 설명 요약


FR2 SSB – PRACH 매핑 구조 그림 (텍스트 기반 구조도)

FR2(mmWave)는 SSB Beam sweepingPRACH Beam 매핑이 필수입니다.

gNB:  
 ┌─────────────────────────────────────────┐
 │   SSB Beam 1 → PRACH Occasion #1        │
 │   SSB Beam 2 → PRACH Occasion #2        │
 │   SSB Beam 3 → PRACH Occasion #3        │
 │   ...                                   │
 │   SSB Beam N → PRACH Occasion #N        │
 └─────────────────────────────────────────┘

UE:
1) 모든 SSB 신호 수신 후 RSRP 측정
2) 가장 강한 SSB Beam 선택
3) 해당 SSB에 대응하는 PRACH RO에서 Preamble 전송

📌 핵심 메커니즘


RACH 디버깅 로그 해석

(실제 L2/L1 로거 기반 정리)

Msg1 (PRACH 전송 로그)

예시 로그 해석:

PRACH: RO=5, PreambleID=23, SSB=7, Power=18 dBm

→ UE가 SSB#7 기반으로 RO#5에서 23번 preamble을 전송한 상황


Msg2 (RAR 수신 로그)

RAR 내용:

예시:

RAR: TA=36, ULGrant:RB(12,4), TempCRNTI=0x1234

Msg3 전송 로그

예시:

Msg3: UL-SCH Tx, T-CRNTI=0x1234, RB=12-16, MCS=4

Msg4 (Contention Resolution)

Msg4에 UE ID가 포함되면 성공
예시:

CR: MAC CE UE-ID Match

RACH 실패 원인 분석 (전문가용)

5G NR RACH 실패는 크게 동기화 / 빔 / 자원 / HARQ / 전력 실패로 나뉩니다.


1) Beam Mismatch (FR2에서 매우 흔함)

원인
증상
해결

2) RO (Random Access Occasion) mismatch

원인
증상

3) Timing Advance 실패

원인
증상

4) 전력 부족 (Power Limited UE)

원인
증상

5) Collision (Contention)

원인
증상

6) UL Grant 문제

원인
증상

PRACH 모든 포맷 (A/B/C 시리즈) 전체 테이블

5G NR PRACH 포맷은 크게:

여기서는 요청하신 A/B/C 시리즈만 요약합니다. (정확한 샘플 길이·심볼 수는 38.211 Table 6.3.3.1-2 참고.)

⚠️ 아래 SCS/용도는 대표적인 매핑 기준이며, 실제 지원 조합은 prach-ConfigurationIndex에 따라 달라질 수 있습니다. (mathworks.com)

포맷 시퀀스 길이 L_RA 대표 SCS (Δf_RA) 구조(심볼/반복) 개념 특징/용도 (대표)
A1 139 15 kHz 짧은 preamble 1개 + 반복 다수 FR1, 소형/노멀 셀, 커버리지↑
A2 139 30 kHz A1보다 짧은 반복 TDD, 약간 더 좁은 커버리지, 짧은 TTI
A3 139 60 kHz 더 짧은 길이, 고 SCS 레이턴시 민감, 고속/밀집 환경
B1 139 15 kHz 2 심볼 구조 + 반복 중간 크기 셀, 다소 큰 지연 스프레드 대응
B2 139 30 kHz B1의 30kHz 버전 TDD Urban, 빔 기반 RA 용이
B3 139 60 kHz B2보다 더 짧은 TTI 고밀도, 고속 핸드오버
B4 139 120 kHz 초고 SCS, 짧은 preamble FR2 edge 용도로도 사용 가능
C0 139 60 kHz 단일 짧은 preamble FR2 mmWave 대표 포맷
C2 139 120 kHz C0보다 더 짧은 유효 길이 빔포밍 전제 초근거리/초소형 셀

핵심 정리:


FR2 빔 기반 RA 상세 구조

(1) 개념 구조 (ASCII 다이어그램)

[Downlink 방향]

gNB
 ├─ SSB Beam #0  ──► UE (측정)
 ├─ SSB Beam #1  ──► UE (측정)
 ├─ SSB Beam #2  ──► UE (측정)
 └─ ...
UE
 ├─ 모든 SSB RSRP/RSRQ 측정
 ├─ Best Beam = SSB #k 선택
 └─ "SSB #k ↔ PRACH RO(#k)" 매핑 테이블 사용

[Uplink 방향]

UE
 └─ SSB #k에 대응되는
    PRACH Occasion(시간/주파수/빔)에서
    Short PRACH (예: C0/C2) 전송 (Msg1)

gNB
 ├─ 동일 Beam #k Rx 빔포밍으로 PRACH 검출
 ├─ Timing Advance, Power, Beam ID 추출
 └─ 같은 Beam #k로 Msg2/Msg4 전송

포인트:


(2) 빔 기반 RA 시퀀스

@startuml
title FR2 Beam-based 5G NR RACH

actor UE
participant "gNB (Beam #0..N)" as gNB

== Downlink Beam Sweeping ==
gNB -> UE: SSB Beam #0..N 전송\n(SSB index, beamforming)

UE -> UE: 각 SSB RSRP 측정\nBest SSB index k 선택

== Uplink Beam-based PRACH ==
UE -> gNB: Msg1: PRACH Preamble\n(on PRACH RO mapped to SSB#k, Beam#k)

gNB -> gNB: Beam#k 방향 Rx 빔포밍\nPreamble 검출, TA 추정

gNB -> UE: Msg2: RAR\n(동일 Beam#k, TA + UL Grant + TempC-RNTI)

UE -> gNB: Msg3: UL-SCH(PUSCH)\n(Beam#k 기반 UL 빔포밍)

gNB -> UE: Msg4: Contention Resolution\n(Beam#k, UE-ID 포함)

@enduml

RACH 성공률 분석 메트릭 (factory log 스타일)

운영/팩토리 환경에서 RACH 품질 지표(KPI)를 설계할 때 자주 쓰는 방식입니다.

(1) 기본 지표 정의

  1. RACH_Attempt
    • RA 프로시저 시작 시도 수 (Msg1 전송 기준 카운트)
  2. RACH_Detected_Msg1
    • gNB가 PRACH preamble을 검출한 수
  3. RACH_RAR_Success
    • UE가 유효한 RAR(Msg2)을 수신한 수
  4. RACH_Msg3_Success
    • gNB가 Msg3 PUSCH를 정상 디코딩한 건수
  5. RACH_CR_Success (Full Success)
    • Msg4 Contention Resolution까지 끝난 “완전히 성공한 RA” 수

(2) KPI 예시 수식

추가로, 아래처럼 Slice / Beam / Format 별로 쪼개서 보는 게 실제 팩토리에서 많이 씁니다:


(3) 예시 “공장 로그” 스타일 요약 테이블

Day, Cell, FR, Format, Beam, Attempts, CR_Success, RA_SuccessRate
2025-11-14, Cell01, FR1, A1, -,   10500, 10290, 98.0%
2025-11-14, Cell01, FR2, C0, B7,  8000,  7200, 90.0%
2025-11-14, Cell01, FR2, C2, B3,  4000,  3200, 80.0%
...

이렇게 보면:


실제 gNB/UE 로그 예제 기반 디버깅 튜토리얼

완전 단순화한 예제 로그를 하나 만들어서, 실패 원인을 추적하는 과정을 보여드리겠습니다.

(1) 시나리오: FR2, C0 포맷, Beam mismatch 의심 케이스

gNB PRACH 검출 로그
[GNODEB][RACH] DETECT: Cell=1, SSB=7, Beam=7,
  PreambleID=23, TA=32, RxPwr=-92 dBm

→ gNB는 SSB#7 / Beam7 방향에서 Preamble 23 검출

gNB RAR 송신 로그
[GNODEB][RAR] TX: Cell=1, Beam=5,  // (주의) Beam5로 Tx
  RA-RNTI=0x12C3, TempC-RNTI=0x1234,
  TA=32, ULGrant=RB(24,6), MCS=4

→ 설정상은 Beam7 방향으로 보내야 하는데 구현/설정 문제로 Beam5로 나가는 버그

UE 로그
[UE][RACH] Msg1: Sent, SSB=7, RO=15, PreambleID=23
[UE][RACH] Waiting for RAR (Window=3 slots)...
[UE][RACH] RAR timeout, no valid RAR detected
[UE][RACH] Backoff 20ms, reattempt count=1

→ UE는 빔 #7 방향만 모니터링하는데, gNB가 빔 #5로 RAR을 보내니까 RAR을 못 봄 → Timeout

디버깅 포인트

(2) 시나리오: Msg3 디코딩 실패 (TA 문제)

[GNODEB][RACH] DETECT: PreambleID=11, TA=12
[GNODEB][RAR] TX: TA=12, ULGrant=RB(30,4)
[UE][RACH] Rx RAR OK, apply TA=12
[UE][PUSCH] Msg3 TX: using TA=12
[GNODEB][PUSCH] Msg3 CRC FAIL (TA error suspected)
[UE][RACH] No Contention Resolution, RA fail, reattempt

RA 시퀀스 타이밍 다이어그램 (슬롯/심볼 단위)

(1) FR1 예: μ = 1 (30 kHz), 14심볼/슬롯 기준

아주 단순화한 텍스트 타이밍입니다.

시간 축 (슬롯 단위, DL/UL mixed TDD 가정)

Slot n
 ├─ DL: SSB 송신 (심볼 0~3)
 ├─ DL: PDCCH/PDSCH
 └─ UL: 공백 또는 다른 UL

Slot n+1
 ├─ UL: PRACH RO 위치 (예: 심볼 2~3)
 │       → Msg1: PRACH Preamble 전송
 └─ 나머지 UL 자원 비워두거나 PUSCH

Slot n+2 ~ n+K
 ├─ DL: RAR Window
 │       → gNB가 이 기간 중 PDCCH+PDSCH로 Msg2(RAR) 송신
 │          (RA-RNTI 기반 검색)
 └─ UE: RAR 수신 대기

Slot n+L
 ├─ UL: UL Grant (RAR에 있던 RB/MCS) 기반
 │       → Msg3: PUSCH 전송
 └─ DL: 다른 트래픽

Slot n+M
 ├─ DL: Msg4 (CR) 포함 PDCCH+PDSCH
 │      → UE ID 매칭되면 RACH 성공
 └─ 이후: 정상 RRC 절차 진행

핵심 파라미터:


(2) FR2 예: μ = 3 (120 kHz), C0/C2 포맷

FR2에서는 슬롯이 훨씬 짧고(0.125ms 단위), PRACH와 SSB가 빔 단위로 매핑됩니다.

Slot s (DL)
 ├─ 여러 Beam에 대해 SSB Burst (Beam sweeping)
 └─ UE는 모든 SSB 측정 후 SSB#k 선택

Slot s+Δ1 (UL)
 ├─ Beam k에 대응하는 PRACH RO (C0/C2)
 │    → Msg1 전송 (짧은 preamble, 고 SCS)
 └─ 다른 빔용 RO는 다른 시간/주파수에 존재

Slot s+Δ2 .. s+Δ2+W
 ├─ DL Beam k: Msg2(RAR) 송신
 └─ UE: 동일 빔에서 PDCCH/PDSCH 모니터링

이후
 ├─ Beam k 기반 PUSCH (Msg3)
 └─ Beam k 기반 PDSCH (Msg4)

→ FR2에서는 슬롯/심볼 타이밍 + 빔/SSB 매핑이 함께 맞아야 하므로,
RA 실패 분석 시 Time + Beam + Format을 동시에 봐야 합니다.


PUCCH는 단말(UE)기지국(gNB) 에게 제어 정보를 보내는 핵심 채널입니다.
즉, 데이터 채널(PUSCH)이 아닌 “제어 신호만을 전송” 하는 채널이에요.


** PUCCH란 무엇인가?**

PUCCH (Physical Uplink Control Channel)
단말(UE)이 gNB로 제어 정보(Uplink Control Information, UCI) 를 전송하는 물리 업링크 제어 채널입니다.

즉,

“UE → gNB로 ACK/NACK, CSI, Scheduling Request 같은 신호를 보내는 통로”입니다.


제어 정보 종류 약어 설명
HARQ Acknowledgement HARQ-ACK 다운링크 데이터(PDSCH)에 대한 수신 응답 (ACK/NACK)
Scheduling Request SR UE가 업링크 전송 자원을 요청
Channel State Information CSI 채널 품질(CQI, PMI, RI 등)을 보고
Hybrid 정보 조합 UCI 위의 여러 정보를 하나로 합쳐 전송 가능

즉, PUCCH은 ACK/NACK + SR + CSI 등을 단독 또는 조합으로 전송할 수 있습니다.


** PUCCH vs PUSCH 비교**

구분 PUCCH PUSCH
용도 제어 정보 전송 사용자 데이터 전송
전송 시점 슬롯 끝, 짧은 기간 슬롯 전체, 긴 기간
데이터 종류 ACK/NACK, SR, CSI 등 사용자 데이터, HARQ 재전송
대역폭 적음 (1~16 RB) 큼 (여러 PRB 할당 가능)
변조 방식 BPSK, QPSK QPSK ~ 256QAM
코드율 낮음 (신뢰성 중시) 높음 (전송량 중시)

** PUCCH의 구성 요소**

PUCCH 전송은 항상 다음 요소로 정의됩니다 👇

항목 설명
Resource Block (RB) PUCCH가 점유하는 주파수 폭
Symbol Duration 점유하는 OFDM symbol 수
Cyclic Prefix (CP) 긴/짧은 CP 설정
DMRS 복조 참조신호 포함 (Demodulation Reference Signal)
Mapping Type 주파수/시간 배치 방식 (format에 따라 다름)

** PUCCH Format (형식)**

5G NR에서는 전송되는 제어정보의 크기(UCI bits)에 따라 5가지 형식으로 구분됩니다.

형식 UCI 길이 특징 전송 자원(Time–Freq)
Format 0 1~2 bits 짧은 ACK/NACK (mini-slot) 1~2 symbols, 1 RB
Format 1 1~2 bits (긴 버전) 긴 시간에 반복 전송 4~14 symbols, 1 RB
Format 2 3~170 bits 중간 크기 (CSI 포함 가능) 1~2 RB, 4~14 symbols
Format 3 170~300 bits 대용량 CSI 보고 여러 RB, 4~14 symbols
Format 4 다수의 UCI 조합 다중 UCI 보고용 여러 RB, 4~14 symbols

📘 요약


** PUCCH Mapping (시간–주파수 배치)**

PUCCH는 PUCCH Resource 라는 구조로 할당됩니다.
이 자원은 PUCCH Format에 따라 배치 방식이 다릅니다.

예시 (시간–주파수 평면)

Frequency ↑
│
│  +----------------------------+
│  |         PUCCH Format 1     |  (4–14 symbols)
│  +----------------------------+
│  |      DMRS 포함 (중간)      |
│  +----------------------------+
│──────────────────────────────→ Time

** PUCCH 자원(Resource) 구성 파라미터**

PUCCH 자원은 RRC를 통해 구성됩니다.
3GPP 38.213 §9.2.1에 정의된 주요 파라미터는 다음과 같습니다.

파라미터 의미
PUCCH Resource ID UE에 할당된 PUCCH 식별 번호
Format Type 0~4
Start PRB 주파수 시작 위치
n_Symb 사용 심볼 수
Start Symbol Index 시간 시작 위치
DMRS Position DMRS 심볼 위치
Group Hopping / Sequence Hopping 주파수 다양성 제공
Spreading Factor (SF) 코드 확산 정도

** 변조 및 스프레딩**

PUCCH은 UCI bit 수에 따라 다른 변조를 사용합니다.

전송 비트 수 변조 방식
1~2 bits BPSK
≥3 bits QPSK
다중 비트 + 확산 OCC (Orthogonal Cover Code) 적용

또한 frequency hopping 또는 sequence hopping을 적용하여 채널 페이딩에 강하게 설계됩니다.


** 예시 — HARQ ACK 전송 절차**

1️. UE가 PDSCH 수신
2️. CRC → Pass → ACK, Fail → NACK
3️. UCI = 1 bit로 생성
4️. gNB가 미리 구성한 PUCCH Format 0 Resource에 맵핑
5️. BPSK 변조 → DMRS 포함 → 송신
6️. gNB는 해당 PUCCH 자원에서 ACK/NACK 수신 및 복조


** 핵심 요약**

항목 설명
이름 PUCCH (Physical Uplink Control Channel)
역할 UE → gNB 제어정보 전송 (HARQ-ACK, SR, CSI 등)
위치 Uplink 주파수 대역 내
변조 방식 BPSK / QPSK
포맷 수 5가지 (Format 0~4)
DMRS 포함 여부 항상 포함
참조 문서 3GPP TS 38.211 §6.3.2, 38.213 §9.2

CSI-RS (Channel State Information Reference Signal)

CSI-RS는 “기지국(gNB)이 단말(UE)에게 보내는 채널 상태 측정용 신호”입니다.
즉, UE가 채널 품질을 평가하고 피드백(예: CQI, PMI, RI)을 보낼 수 있도록 하는 기준 신호예요.


🧭 정의

CSI-RS (Channel State Information Reference Signal)
UE가 무선 채널 상태(Channel State Information) 를 추정할 수 있도록
gNB가 다운링크 방향으로 전송하는 참조 신호(Reference Signal) 입니다.

즉,

“이 신호를 통해 단말이 현재 무선 채널이 얼마나 좋은지, 어떤 빔이 최적인지 판단한다.”


CSI-RS의 주요 목적

목적 설명
① 채널 품질 측정 (CQI) UE가 SNR·SINR 측정 후 MCS 결정에 활용
② 빔 관리 (Beam Management) 빔 스위칭, 트래킹, 리포팅
③ PMI 계산 (Precoding Matrix Indicator) UE가 최적 precoder 선택
④ RI 결정 (Rank Indicator) 다중 스트림 수 결정
⑤ 링크 적응 (Link Adaptation) gNB가 전송 파라미터 최적화 (MCS, Layer 수 등)

CSI-RS와 DMRS의 차이

구분 CSI-RS DMRS
목적 채널 품질 측정, 피드백용 복조(demodulation)용
전송 주체 gNB → UE gNB → UE (DL), UE → gNB (UL)
수신자 UE 데이터 수신 UE
전송 시점 주기적 / 비주기적 데이터 전송 시 항상 포함
참조 범위 전체 채널 (beam별, 주파수별) 해당 PDSCH / PUSCH에 국한

📘 요약:


CSI-RS 전송 유형 (3GPP 38.211 §7.4.1.5)

종류 약어 설명
Periodic CSI-RS P-CSI-RS 주기적으로 전송 (예: 5ms마다)
Semi-periodic CSI-RS SP-CSI-RS 특정 시점에만 반복
Aperiodic CSI-RS A-CSI-RS 필요 시 on-demand로 전송 (DCI를 통해 트리거됨)

💡 P-CSI-RS는 채널 모니터링용,
A-CSI-RS는 빔 측정·추적용으로 자주 사용됩니다.


CSI-RS 자원(Resource) 구성

CSI-RS는 시간–주파수–공간(안테나) 3차원 영역에서 정의됩니다.

파라미터 설명
Resource ID CSI-RS 자원의 식별 번호
Density (주파수 밀도) 1, 2, 4, 8 Subcarriers마다 1개 RE
Time Domain Position 심볼 위치 (예: slot 내 symbol 2)
Resource Mapping RE 맵핑 패턴 (CDM type, row, column 등)
CDM (Code Division Multiplexing) 다중 UE 구분용 코드 확산 방식
Power Control 전송 전력 보정 (dBm 단위)

시간–주파수 구조 예시

Frequency 
↑
│
│  Subcarriers →  ■ : CSI-RS RE
│
│  ┌────────────────────────────────┐
│  │■■  ■■  ■■  ■■  ■■  ■■  ■■  ■■  │ ← CSI-RS 자원 패턴 (density = 2)
│  ├────────────────────────────────┤
│  │          PDSCH (Data)          │
│  └────────────────────────────────┘
│──────────────────────────────────────→ Time (OFDM Symbols)

CSI Measurement and Reporting 절차

1️. gNB → UE: CSI-RS 전송
2️. UE: CSI-RS 수신 후 채널 추정
3️. UE → gNB: 피드백 보고 (PUSCH 또는 PUCCH)

보고 항목 의미
CQI Channel Quality Indicator (채널 품질)
PMI Precoding Matrix Indicator (최적 빔 선택)
RI Rank Indicator (MIMO 스트림 수)
CSI-RS Resource Indicator 사용한 CSI-RS 자원 ID

CSI-RS의 역할 in Beam Management

5G NR에서 빔포밍은 SSB(SS Burst)CSI-RS 기반으로 수행됩니다.

단계 역할
초기 빔 탐색 (SSB) 셀 검색 및 초기 빔 선택
정밀 빔 추적 (CSI-RS) 채널 업데이트 및 빔 트래킹
빔 유지 (Tracking) 주기적 CSI-RS 수신 및 보고로 빔 유지

즉,

SSB는 coarse alignment,
CSI-RS는 fine adjustment 역할을 합니다.


CSI-RS 자원 타입 (Type 0 / Type 1 / Type 2)

타입 특징 용도
Type 0 고정된 주파수 패턴, 공용 사용 셀 브로드캐스트용
Type 1 유연한 주파수·시간 배치 UE-specific 측정용
Type 2 고밀도 RE 패턴 고정밀 빔 측정용 (Massive MIMO)

수식적 표현

CSI-RS는 주파수 도메인에서 다음과 같이 모델링됩니다:

\[r(k) = h(k) \cdot x_{CSI-RS}(k) + n(k)\]

UE는 $h(k) = \frac{r(k)}{x_{CSI-RS}(k)}$ 로 추정하여
채널 응답 벡터를 계산합니다.


핵심 요약

항목 설명
정의 채널 품질 측정을 위한 다운링크 참조 신호
전송 방향 gNB → UE
목적 CQI/PMI/RI 피드백, 빔 관리, 링크 적응
전송 유형 Periodic / Semi-periodic / Aperiodic
RE 밀도 1, 2, 4, 8 Subcarrier 간격
차이점 DMRS는 복조용, CSI-RS는 측정용
표준 문서 3GPP TS 38.211 §7.4.1.5, 38.214 §5.2.1, 38.213 §10.2

CDM이란 무엇인가?

CDM (Code Division Multiplexing)
여러 CSI-RS 신호(서로 다른 안테나 포트에서 송신되는)를
서로 다른 코드(직교 코드) 로 구분하여
동일한 시간–주파수 자원(RE) 위에 중첩(multiplexing) 하는 방법입니다.

즉,

시간이나 주파수를 따로 나누지 않고, 코드로 분리하는 방식이에요.


왜 CDM이 필요한가?

5G NR에서는 하나의 셀에서 다수의 안테나 포트(N ports) 가 CSI-RS를 송신할 수 있습니다.
그런데,
만약 각 포트가 서로 다른 주파수나 시간에 송신하면 자원 낭비(resource inefficiency) 가 발생하죠.

그래서!

CDM을 이용하면 동일한 RE(시간+주파수) 위에서도 여러 포트의 신호를 서로 구분하여 송신 가능합니다.


CDM의 핵심 원리

CDM은 기본적으로 직교 코드(orthogonal code) 를 사용합니다.

예를 들어, 두 개의 안테나 포트가 있을 때

이렇게 두 코드 벡터를 사용하면, 수신단에서는 상호 직교(orthogonal)하므로
각 포트의 CSI-RS를 간섭 없이 복원할 수 있습니다.

수식으로 표현하면 👇
\(\text{Received signal} = c_1 \cdot x_1 + c_2 \cdot x_2\) 여기서

수신단은 코드 상관(correlation)을 통해 각 포트 신호를 분리합니다.


CDM 적용 방식 (3GPP 38.211 §7.4.1.5.3)

CDM은 두 가지 주요 방식으로 적용됩니다.

구분 방식 설명
CDM-Type 1 Time-domain spreading (TDM-CDM) 시간 축에서 직교 코드 적용
CDM-Type 2 Frequency-domain spreading (FDM-CDM) 주파수 축에서 직교 코드 적용

(1) CDM-Type 1: Time-domain CDM

이 방식은 시간축 자원을 두 심볼 이상 사용할 수 있을 때 사용됩니다.

Time →
│
│ Symbol 2:  +1  +1
│ Symbol 3:  +1  -1
│
│ Frequency ↑

→ 두 포트가 서로 다른 코드 시퀀스로 전송되어 상호 간섭하지 않음.


🔹 (2) CDM-Type 2: Frequency-domain CDM

Frequency →
│
│ +1  +1  +1  +1   (Port 1)
│ +1  -1  +1  -1   (Port 2)
│ +1  +1  -1  -1   (Port 3)
│ +1  -1  -1  +1   (Port 4)

→ 포트 간 간섭이 없으며, 같은 시간 RE 내에서 병렬 CSI-RS 송신 가능.


CDM Grouping 개념

CDM을 실제 구현할 때는 포트를 “그룹” 단위로 묶습니다.
3GPP에서는 다음과 같은 구조를 정의합니다 👇

Group ID 포트 수 CDM 타입 설명
Group 0 2 Type 1 Time-domain CDM
Group 1 4 Type 2 Frequency-domain CDM
Group 2 8 Type 2 고밀도 MIMO용

예시: 4포트 CSI-RS 전송

포트 번호 코드 시퀀스 구분
Port 3000 [+1, +1, +1, +1] Group 0
Port 3001 [+1, -1, +1, -1] Group 0
Port 3002 [+1, +1, -1, -1] Group 1
Port 3003 [+1, -1, -1, +1] Group 1

→ 결과적으로 같은 심볼, 같은 주파수 자원을 사용하지만,
각 포트는 코드로 구분되어 UE는 간섭 없이 채널 추정 가능.


CDM 적용 후 CSI-RS 수신 모델

\[y(k) = \sum_{i=1}^{N_p} h_i(k) , c_i(k) , x_i(k) + n(k)\]

UE는 $c_i(k)$ 와의 상관 연산으로 $h_i(k)$ 를 추정합니다.


CDM 적용 시 장점

항목 설명
주파수 자원 절약 여러 포트를 동일 RE에 중첩 가능
직교성 유지 포트 간 간섭 거의 없음
고효율 빔 측정 다수 빔을 동시에 측정 가능
MIMO scalability 대규모 안테나(64T64R)에도 적용 용이

요약 구조 도식

           CSI-RS Ports (e.g., 4)
                   │
          ┌───────────────────────┐
          │ CDM (Code Orthogonal) │
          └───────────────────────┘
                   │
       Shared REs (same time/frequency)
                   │
             UE decodes via
          Correlation (CDM codes)

핵심 요약

항목 설명
정의 여러 CSI-RS 포트를 코드로 구분하여 동일 자원에 다중화
목적 자원 효율 향상, 다중 빔 채널 추정 지원
방식 Time-domain / Frequency-domain CDM
코드 종류 Walsh–Hadamard 직교 코드
이점 포트 간 간섭 없음, 높은 스펙트럼 효율
표준 문서 3GPP TS 38.211 §7.4.1.5.3

CSI Interference Measurement

기본 개념

CSI Interference Measurement
단말(UE)이 다운링크 간섭(interference)과 잡음(noise) 의 세기를 측정하여
채널 상태 정보(Channel State Information, CSI) 보고 시
정확한 CQI (Channel Quality Indicator)를 계산하기 위한 과정입니다.

즉 👇

“UE가 신호 세기(S)뿐만 아니라, 주변 간섭(I+N)까지 측정해서
실제 사용 가능한 SINR = S / (I+N) 을 평가하는 과정”이에요.


CSI 측정 구성요소

5G NR에서 CSI를 구성하는 세 가지 주요 측정 항목이 있습니다.

구성 요소 약어 설명
CSI-RS Resource Reference Signal 신호 세기(Signal Power) 측정용
CSI-IM Resource Interference Measurement 간섭/잡음 전력 측정용
CSI Resource Set 조합된 세트 특정 CSI-RS + CSI-IM 묶음 구성

CSI-RS vs CSI-IM

구분 CSI-RS (Channel Measurement) CSI-IM (Interference Measurement)
측정 대상 유효 신호 (Signal Power, S) 간섭 + 잡음 (Interference + Noise, I+N)
용도 채널 응답 추정, PMI/RI 계산 SINR 계산 시 분모(I+N) 산출
전송 내용 참조 신호 아무 신호 없음 (RE가 비워짐)
표현 형태 실제 RS 전송 Muted Resource (비어 있는 RE)
표준 문서 3GPP 38.211 §7.4.1.5 3GPP 38.211 §7.4.1.6

즉 👇

CSI-RS는 “채널의 신호 세기(S)”를 측정하고,
CSI-IM은 “그 신호가 없는 상태의 간섭 전력(I+N)”을 측정합니다.

이 두 값을 함께 사용해서 SINR을 계산합니다.


CSI 간섭 측정의 수학적 표현

UE는 다음 식으로 SINR (Signal-to-Interference-plus-Noise Ratio) 을 계산합니다:

\[\text{SINR} = \frac{P_{\text{CSI-RS}}}{P_{\text{CSI-IM}}}\]
항목 의미
$P_{\text{CSI-RS}}$ 특정 CSI-RS RE에서 측정한 평균 신호 전력
$P_{\text{CSI-IM}}$ CSI-IM (muted RE) 구간에서 측정한 간섭+잡음 전력

CSI Interference Measurement Resource (CSI-IM)

CSI-IM (Interference Measurement Resource)
“특정 RE(Resource Element)를 비워둔(Muted)” 상태로 구성되어,
UE가 이 RE의 배경 간섭 전력을 측정할 수 있도록 정의된 자원입니다.

CSI-IM은 PDSCH 데이터나 CSI-RS가 전송되지 않는 RE 를 지정합니다.
이 영역의 전력 세기는 곧 “간섭 + 잡음”입니다.

예시 (Time–Frequency grid)

Frequency 
↑
│
│  ■■■■■■■■■■■■■■■■■■■■■■■  → CSI-RS 자원 (신호 전송 영역)
│  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓  → CSI-IM 자원 (muted, 간섭 측정)
│──────────────────────────→ Time

CSI Resource Set 구성

CSI Interference Measurement은 항상 CSI Resource Set 의 일부로 정의됩니다.

구성요소 설명
CSI-RS Resource Set 채널 품질 측정용 자원 그룹
CSI-IM Resource Set 간섭 측정용 자원 그룹
CSI Report Config 두 자원을 매핑하여 CQI/PMI/RI 계산 시 사용

즉 👇

CSI Resource Set = { CSI-RS + CSI-IM }

실제 측정 절차

1️. gNB → UE: RRC(Reconfiguration)로 CSI-RS & CSI-IM 자원 설정
2️. UE:


CSI-IM의 전송 유형 (3GPP TS 38.211 §7.4.1.6)

유형 이름 설명
Type 0 Full bandwidth 전체 대역에서 muted
Type 1 Frequency-selective 특정 RB 그룹만 muted
Type 2 Beam-specific 특정 빔 패턴에 해당하는 RE만 muted

이를 통해 UE는 “대역별” 또는 “빔별” 간섭 레벨을 구분 측정할 수 있습니다.


측정 결과의 활용

CSI Interference Measurement 결과는 다음과 같은 링크 적응(Link Adaptation) 에 활용됩니다.

항목 역할
CQI (Channel Quality Indicator) MCS(Modulation and Coding Scheme) 선택 기준
PMI (Precoding Matrix Indicator) 최적 빔 방향 선택
RI (Rank Indicator) 다중 스트림 수 결정
Beam Management 간섭 낮은 빔 유지, 재선택

즉,

CSI-RS는 “신호 강도”,
CSI-IM은 “간섭 강도”를 알려주어
CQI = f(SINR) 계산의 기반을 제공합니다.


예시 수치

구분 값 (dBm) 설명
$P_{\text{CSI-RS}}$ -70 dBm 유효 신호 세기
$P_{\text{CSI-IM}}$ -90 dBm 간섭 + 잡음 세기
SINR 20 dB 채널 품질 우수

이 값을 기반으로 UE는 예: CQI = 13 (64QAM, Code Rate≈0.6)으로 보고할 수 있습니다.


핵심 요약

항목 설명
정의 UE가 간섭 + 잡음을 측정하기 위한 CSI 자원 구성
측정 방식 Muted RE를 이용하여 I+N 전력 추정
결합 대상 CSI-RS (신호 세기)
결과 계산 SINR = P(CSI-RS) / P(CSI-IM)
활용 CQI/PMI/RI 계산, 빔 관리, 링크 적응
표준 문서 3GPP TS 38.211 §7.4.1.6, 38.214 §5.2.1, 38.213 §10.2

CQI, PMI, RI

CSI-RS 기반 CSI Reporting Overview

gNB  →  UE
   ↓
[ CSI-RS Transmission ]
   ↓
UE 측정 및 계산:
   ├── CQI : Channel Quality Indicator
   ├── PMI : Precoding Matrix Indicator
   └── RI  : Rank Indicator
   ↓
[ CSI Report (PUSCH/PUCCH) ]
   ↓
gNB가 MCS, Beam, Layer 결정

즉 👇


CQI (Channel Quality Indicator)

개념

CQI는 UE가 측정한 채널의 품질(SINR) 을 바탕으로,
gNB에게 적절한 MCS(Modulation & Coding Scheme) 를 추천하는 인덱스입니다.

즉,

“현재 이 채널에서는 어느 정도의 변조와 부호율로 데이터를 전송할 수 있습니까?”
라는 질문에 대한 답이에요.


계산 절차

1️. UE는 CSI-RS와 CSI-IM으로부터 채널 품질(SINR)을 계산:

\[\text{SINR} = \frac{P_{\text{CSI-RS}}}{P_{\text{CSI-IM}}}\]

2️. UE는 3GPP 표준의 CQI → MCS 매핑 테이블을 사용해 적절한 CQI 값을 선택.

CQI Index Modulation Code Rate (×1024) Spectral Efficiency (bps/Hz)
1 QPSK 78 0.15
5 16QAM 490 1.48
9 64QAM 616 2.73
11 64QAM 772 3.32
13 256QAM 873 4.52
15 256QAM 948 5.55

예를 들어 👇


특징

항목 설명
측정 기반 CSI-RS + CSI-IM SINR
보고 주기 주기적 또는 비주기적
보고 단위 RB 그룹 단위 (Subband CQI도 가능)
역할 Downlink MCS 결정 (전송 효율 vs 신뢰성)

PMI (Precoding Matrix Indicator)

개념

PMI는 UE가 CSI-RS를 통해 채널 응답을 추정하고,
그 결과로 가장 성능이 좋은 Precoding Matrix(즉, 빔 방향/위상 조합)의 인덱스를 보고하는 값입니다.

즉 👇

“현재 채널에서는 어떤 precoding vector로 신호를 전송해야 가장 잘 들릴까요?”


계산 과정

1️. UE는 gNB가 송신한 CSI-RS를 수신하고, 채널 응답 행렬 $\mathbf{H}$ 추정:

\[\mathbf{H} = \begin{bmatrix} h_{11} & h_{12} & \cdots & h_{1N_T} \ h_{21} & h_{22} & \cdots & h_{2N_T} \end{bmatrix}\]

$N_T$ : 송신 안테나 수

2️. 표준화된 Codebook(3GPP 정의)을 이용해 후보 precoding 행렬 $\mathbf{W}_i$ 들 중에서
다음 목표를 만족하는 행렬을 선택:

\[\mathbf{W}_{opt} = \arg\max_{i} | \mathbf{H} \mathbf{W}_i |^2\]

3️. 그 행렬의 인덱스 = PMI (Precoding Matrix Indicator)
→ UE는 PMI index만 gNB로 보고
→ gNB는 해당 precoder를 적용해 전송


PMI 구조

PMI는 일반적으로 두 단계 구조로 되어 있습니다.

PMI 구성 의미 설명
Wideband PMI 전 대역 공통 전체 주파수 대역에 동일한 precoder 적용
Subband PMI 주파수별 RB 그룹 단위로 서로 다른 precoder 적용

이렇게 하면 주파수 선택적 페이딩 환경에서도 최적 빔 조정이 가능합니다.


특징

항목 설명
입력 데이터 CSI-RS를 통해 추정된 채널 행렬 (H)
출력 최적 precoder의 index (PMI)
보고 주기 주기적 또는 on-demand
역할 빔포밍 / MIMO 전송 방향 결정
표준 문서 3GPP TS 38.214 §5.2.2 / 38.211 §7.4.1.5

RI (Rank Indicator)

개념

RI (Rank Indicator)
현재 채널 상태에서 몇 개의 독립 스트림(Layer) 을 병렬로 전송할 수 있는지를 나타내는 값이에요.

즉 👇

“현재 MIMO 채널이 병렬로 몇 개의 독립 경로를 허용합니까?”


계산 원리

RI는 채널 행렬 H의 유효 rank(즉, 독립 공간 채널 수)에 기반합니다.

1️. UE는 CSI-RS를 통해 채널 행렬 ( H ) 추정
2️. SVD(특이값 분해) 수행:

\[H = U \Sigma V^H\]

3️. 행렬 $\Sigma$ 의 대각 원소(특이값) 중 유효한 개수(count)가 rank입니다.

\[RI = \text{rank}(H)\]

4️. UE는 rank에 해당하는 layer 수(1~8)를 보고합니다.


예시

환경 채널 특성 RI 설명
LOS 단일 경로 강한 상관 RI = 1 단일 스트림만 가능
다중 반사 + 풍부한 다중경로 낮은 상관 RI = 2~4 병렬 MIMO 스트림 가능
Massive MIMO 셀 중심 완전 독립 RI = 8 고차 MIMO 전송 가능

특징

항목 설명
입력 데이터 CSI-RS 기반 채널 응답 (H)
결과 값 전송 가능한 Layer 수
보고 단위 전 대역 또는 Subband 단위
역할 MIMO Rank 결정 (전송 효율 최적화)

CQI / PMI / RI 간의 관계

항목 역할 상호 의존 관계
CQI 채널 품질 → MCS 결정 CQI는 PMI·RI 결과에 종속됨 (SINR 기반)
PMI 채널 방향 → Precoding 결정 PMI는 RI와 함께 MIMO 구조 결정
RI 공간 자원 수 → Layer 결정 RI는 PMI 후보 공간의 차원 결정

즉 👇

먼저 RI (몇 개의 스트림?),
그다음 PMI (어떤 빔?),
마지막 CQI (어떤 변조/부호율?)
순서로 계산되고 보고됩니다.

CSI-RS 측정 → RI 결정 → PMI 선택 → CQI 계산 → CSI Report

실제 예시

항목 결과
채널 상태 2×2 MIMO, SINR = 15 dB
추정 결과 RI = 2, PMI = [2,0], CQI = 10
gNB 동작 MIMO Rank 2, 64QAM, Code Rate ≈ 0.6 로 전송

핵심 요약

항목 의미 역할 계산 기준
CQI Channel Quality Indicator 채널 품질 (MCS 결정) SINR 기반
PMI Precoding Matrix Indicator 빔 방향 / precoder 선택 Codebook 기반
RI Rank Indicator MIMO 계층 수 결정 채널 행렬 Rank 기반

SRS(Sound Reference Signal)

이 신호는 uplink 방향의 채널 추정, 빔 결정, uplink 스케줄링 에 필수적인 역할을 합니다.


정의

SRS (Sounding Reference Signal)
UE(단말)가 gNB(기지국)로 주기적으로 전송하는 업링크 참조 신호로,
gNB가 업링크 채널 상태(UL CSI) 를 추정하는 데 사용됩니다.

즉 👇

“UE가 채널 상태를 탐색(Sounding)하기 위해 보내는 신호”
— 이름 그대로, Sounding Reference Signal.


역할 및 목적

기능 설명
① Uplink Channel Quality Estimation gNB가 UE의 업링크 채널 응답 추정
② Uplink Scheduling PUSCH 자원 할당 시 채널 기반 스케줄링
③ Uplink Beamforming / Beam Management UL 빔 방향 추정 및 선택
④ Reciprocity-based DL Beamforming TDD 모드에서 UL–DL 채널 상호성 이용
⑤ Multi-UE Interference Coordination 다수 UE 간 간섭 회피

즉 👇

gNB는 SRS를 보고 “이 UE는 이 주파수에서 채널이 좋다 → 이쪽으로 UL 자원 할당하자”
이렇게 판단합니다.


전송 방향과 역할 관계

방향 참조 신호 목적
Downlink CSI-RS UE가 DL 채널 상태 측정 (CQI/PMI/RI)
Uplink SRS gNB가 UL 채널 상태 측정 (Scheduling, Beamforming)

즉,

CSI-RS ↔ Downlink 측정용
SRS ↔ Uplink 측정용


SRS 전송 구조

SRS는 시간–주파수 자원 그리드 내에서
특정한 RE(Resource Element) 위치에 전송됩니다.

예시 구조:

Frequency 
↑
│
│  +-----------------------------+
│  |   SRS Symbols (e.g. 1~4)    |
│  +-----------------------------+
│──────────────────────────────→ Time

주요 파라미터 (3GPP TS 38.211 §6.4.1.4)

파라미터 의미
SRS Periodicity (T) 전송 주기 (예: 2, 5, 10 ms 등)
SRS Offset (Δ) 슬롯 오프셋
Bandwidth (B) 사용 주파수 폭 (PRB 단위)
Comb Size (K) Subcarrier 간격 (2, 4, 8 등)
Sequence Length (M) Zadoff–Chu 시퀀스 길이
Cyclic Shift (α) 다중 UE 구분용 위상 이동
Port Number (nSRS) 송신 안테나 포트 수 (1~4)

SRS 신호 구조 (수학적 표현)

SRS는 Zadoff–Chu(ZC) 기반의 CAZAC(Constant Amplitude Zero Auto-Correlation) 시퀀스를 사용합니다.

\[x_{m}(n) = e^{-j \frac{\pi m n (n+1)}{N_{ZC}}}\]
기호 설명
$N_{ZC}$ Zadoff–Chu 시퀀스 길이
$m$ 루트 인덱스
$n$ 샘플 인덱스
특징 위상만 바뀌고, 진폭이 일정 → PAPR 낮음, 자기상관 0

Frequency-domain Mapping

SRS는 comb 형태로 주파수 축에 배치됩니다.

예를 들어,

Frequency →
|■| |■| |■| |■| |■|     (Comb = 2)

이 구조를 통해 UE 간의 주파수 자원을 부분 공유하면서도
서로 간섭 없이 다중화할 수 있습니다.


다중 UE 간 SRS Multiplexing 방법

여러 UE가 동시에 SRS를 보낼 때, 다음 방법으로 구분됩니다:

구분 방식 설명
Frequency Division FD 서로 다른 RB 사용
Time Division TD 서로 다른 심볼 사용
Code Division CD 다른 ZC root / cyclic shift 사용
Comb Division CDM 서로 다른 comb offset 사용

이 조합으로 수십 개 UE가 동시에 SRS 전송 가능해요.


SRS 유형 (SRS Type 0 ~ 3)

SRS Type 특징 용도
Type 0 단일 UE용, 고정된 자원 기본 SRS
Type 1 다중 UE 공유 가능, 자원 효율적 Scheduling & Beamforming
Type 2 대역폭 hopping 지원 Wideband SRS
Type 3 Group-based, Multi-port SRS Massive MIMO 빔 추적

활용 예시

UL Beamforming

TDD Reciprocity


SRS의 시간–주파수 예시

Frequency 
↑
│
│  +----------------------------+
│  |  SRS (Comb = 2)            |  ← 특정 RB 대역
│  +----------------------------+
│  |  다른 UE의 SRS (Comb=4)     |
│  +----------------------------+
│──────────────────────────────→ Time
│          Slot 끝 (symbol 12–13)

핵심 요약

항목 설명
정의 UE가 gNB로 채널 추정을 위해 전송하는 업링크 참조 신호
목적 UL CSI 측정, Scheduling, Beamforming
전송 시기 주기적 / 반주기적 / 비주기적
자원 구조 Comb 구조, ZC 시퀀스 기반
다중화 방식 Time / Frequency / Code / Comb
표준 문서 3GPP TS 38.211 §6.4.1.4, 38.214 §6.2

PTRS (Phase Tracking Reference Signal)

정의

PTRS (Phase Tracking Reference Signal)
위상 오차(Phase Error) 를 추적하고 보정하기 위해
PDSCH (DL) 또는 PUSCH (UL) 전송 시 함께 삽입되는 참조 신호입니다.

즉 👇

“위상 보정용 DMRS” 라고 생각하면 됩니다.
채널 전체의 진폭/위상 정보를 추정하는 DMRS와 달리,
PTRS는 위상 변동만 고해상도로 추적합니다.


왜 PTRS가 필요한가?

5G NR은 대용량 데이터 전송 (e.g. 256QAM)대형 FFT 기반 OFDM 을 사용합니다.
이때 다음 문제가 발생합니다 👇

원인 결과
Oscillator Phase Noise 각 Subcarrier 간 위상 불균형
CFO (Carrier Frequency Offset) 심볼 간 위상 누적
TDD/Carrier Aggregation Offset UL/DL 간 주파수 오차 발생

➡️ 이런 위상 오차는 고차 변조에서 EVM (Error Vector Magnitude) 을 크게 악화시킵니다.
그래서 3GPP는 이를 실시간으로 추적하기 위해 PTRS 를 정의했습니다.


PTRS vs DMRS 비교

항목 DMRS PTRS
목적 채널 응답(H) 추정 (진폭 + 위상) 위상 오차 추적
적용 범위 채널 전체 특정 영역 (주파수/시간 저밀도)
밀도 상대적으로 낮음 고밀도 (심볼마다 가능)
추정 대상 복소 채널 응답 공통 위상 오차 (CPE)
적용 신호 PDSCH / PUSCH PDSCH / PUSCH
표준 문서 3GPP TS 38.211 §7.4.1.1 3GPP TS 38.211 §7.4.1.2

요약하자면 👇

DMRS는 채널 측정,
PTRS는 위상 보정.


PTRS의 위치 (Time–Frequency Grid)

PTRS는 OFDM Symbol–Subcarrier grid 상의 특정 RE(Resource Element)에 주기적으로 삽입됩니다.

예시 구조 👇

Frequency 
↑
│
│   ■ = DMRS   ● = PTRS
│
│  Symbol 2: ■ ■ ■ ■ ■ ■
│  Symbol 3: ●   ●   ●   (PTRS)
│────────────────────────────→ Time

PTRS 밀도 (Density) 파라미터

PTRS의 시간·주파수 간격은 gNB가 RRC에서 설정합니다.

파라미터 설명
Time density 심볼마다 삽입할지, N번째 심볼마다 삽입할지 (1, 2, 4 등)
Frequency density 몇 개의 RB마다 한 번 삽입할지 (1, 2, 4, 8 등)
PTRS Resource Offset 기준 시작 위치 (시간/주파수 기준)
PTRS Power Control 전송 전력 보정 (dBm 단위)

📘 예시:


PTRS 수학적 표현

위상 추적의 목적은 공통 위상 오차(CPE) 를 보정하는 것입니다.

수신 신호 모델은 다음과 같습니다:

\[y(k, n) = H(k, n) \cdot x(k, n) \cdot e^{j\phi(n)} + n(k, n)\]
기호 의미
$k$ Subcarrier index
$n$ OFDM Symbol index
$H(k, n)$ 채널 응답
$x(k, n)$ 송신 신호
$e^{j\phi(n)}$ 시간에 따른 공통 위상 오차
$n(k, n)$ 잡음

UE는 PTRS를 이용해 $\phi(n)$을 추정하고, 모든 데이터 심볼에 동일한 위상 보정 $e^{-j\hat{\phi}(n)}$ 을 적용합니다.


방향 위치 목적
DL-PTRS PDSCH 내부 UE가 위상 보정 수행
UL-PTRS PUSCH 내부 gNB가 위상 보정 수행

💡 즉,


PTRS Multiplexing

PTRS는 DMRS 및 데이터 심볼과 frequency-division multiplexing (FDM) 방식으로 공존합니다.
즉, PTRS가 차지하는 RE는 데이터가 사용하지 않습니다.

Frequency 
↑
│
│  DMRS: ▣
│  PTRS: ●
│  Data: □
│
│  ▣□●□▣□●□  (하나의 RB 내)

PTRS 전송 조건

PTRS는 모든 전송에 항상 존재하는 것은 아닙니다.
아래 조건일 때만 사용됩니다 👇

조건 이유
고차 변조 (64QAM, 256QAM) 위상 오차 민감
대형 FFT (Wideband) 주파수별 위상 왜곡 증가
고속 이동 (High Doppler) 위상 드리프트 증가
비이상적 오실레이터 환경 Phase Noise 심함

즉,
256QAM + 고속 UE + 대역폭 넓은 경우 → PTRS 필수.


DL-PTRS 예시 (시간–주파수 배치)

      Time →
┌─────────────────────────────┐
│ DMRS   Data   Data   Data   │ Symbol 1
│ PTRS   Data   Data   PTRS   │ Symbol 2
│ Data   Data   Data   Data   │ Symbol 3
└─────────────────────────────┘
        ↑     ↑
        │     │
      PTRS    PTRS (주파수 간격 일정)

성능 영향

항목 PTRS 있음 PTRS 없음
EVM (Error Vector Magnitude) ↓ 낮음 (정확) ↑ 높음
BLER (Block Error Rate) ↓ 개선됨 ↑ 악화됨
Phase Drift Compensation 가능 불가능
256QAM 안정성 확보 불안정

** 핵심 요약**

항목 설명
이름 PTRS (Phase Tracking Reference Signal)
목적 위상 오차 추적 및 보정
적용 채널 PDSCH / PUSCH
밀도 설정 시간 / 주파수 간격 configurable
사용 조건 고차 변조, 고속 이동, 대역폭 넓은 경우
표준 문서 3GPP TS 38.211 §7.4.1.2, 38.214 §5.1.6

기본 개념

구분 약어 전체 이름 의미
SDL Supplementary Downlink 보조 다운링크 대역 DL 용량 확장용 추가 주파수 대역
SUL Supplementary Uplink 보조 업링크 대역 UL 커버리지 보완용 추가 주파수 대역

즉 👇

SDL → 데이터 다운로드가 많은 환경에서 DL 용량 확장용
SUL → 업링크 전송이 약한 단말을 위해 UL 커버리지 향상용


왜 필요한가?

5G NR은 다양한 주파수 대역을 사용합니다.
그런데 DL과 UL 특성이 다르기 때문에 이런 보완 구조가 필요합니다.

구분 DL UL
사용 대역폭 넓음 (대용량 데이터 전송) 좁음 (단말 송신 전력 제한)
송신 전력 gNB 높음 (수십 W) UE 낮음 (200~250 mW)
도달 거리 멀리 감 짧음 (전송 약함)
트래픽 비중 다운로드 많음 업로드 적음

➡️ 따라서,


일반적인 주파수 구조

기본 주파수 페어

DL: 3.5 GHz  ←→  UL: 3.6 GHz

SDL / SUL 추가 시

SDL: 2.1 GHz (추가 Downlink only band)
DL: 3.5 GHz
UL: 3.6 GHz
SUL: 700 MHz (추가 Uplink only band)

이렇게 하면,


개념

SDL은 Downlink-only 주파수 대역을 추가로 사용하는 구조입니다.
즉, 기지국만 송신, 단말은 수신만 하는 대역이에요.

특징

항목 설명
용도 DL 용량 확장 (Throughput up)
전송 방향 gNB → UE (DL only)
물리 채널 PDCCH, PDSCH 등 DL 채널만 포함
예시 대역 FR1: n28(700 MHz), n77(3.7 GHz)
활용 상황 다운로드 트래픽이 많은 환경 (e.g. 스트리밍, 데이터 집중 지역)

예시 구조

   Frequency ↑
   ┌───────────────┬───────────────┐
   │   SDL Band    │  Primary DL   │
   │ (DL only)     │   + UL pair   │
   └───────────────┴───────────────┘
                   ↑
                 UE Rx

➡️ UE는 기본 DL뿐 아니라 SDL에서도 데이터를 수신할 수 있어
전체 DL 용량이 증가합니다.


개념

SUL은 Uplink-only 주파수 대역을 추가로 사용하는 구조입니다.
즉, UE만 송신, gNB는 수신만 하는 대역이에요.

특징

항목 설명
용도 UL 커버리지 확장 (Coverage up)
전송 방향 UE → gNB (UL only)
물리 채널 PUSCH, PUCCH, SRS 등 UL 채널만 포함
예시 대역 FR1: n80 (800 MHz), n81 (900 MHz)
활용 상황 셀 경계, 농촌 지역, 지하실 등 UL 신호 약한 환경

예시 구조

   Frequency ↑
   ┌───────────────┬───────────────┐
   │  Primary UL   │    SUL Band   │
   │  + DL pair    │   (UL only)   │
   └───────────────┴───────────────┘
                   ↑
                 UE Tx

➡️ UE는 낮은 주파수의 SUL 대역에서 전송함으로써
경로 손실(Path loss) 이 작아지고,
UL 커버리지가 개선됩니다.


SDL & SUL 동작 원리

구분 Primary Cell (PCell) Secondary Cell (SCell)
SDL / SUL 대역 Secondary Cell로 구성 Primary Cell과 연동
전송 방식 DL-only / UL-only Control Plane은 PCell에서 유지
제어 정보 (DCI, PUCCH) 여전히 PCell에서 수행 Data만 SDL/SUL 대역 사용

즉 👇

SUL/SDL 대역은 데이터 전송 전용(SCell) 으로 사용되고,
제어 신호는 기존 PCell 을 통해 관리됩니다.


SDL / SUL 주파수 예시 (3GPP FR1 기준)

대역 용도 주파수 범위 비고
n28 SDL/SUL 공용 703–748 / 758–803 MHz 700 MHz 저대역
n77 SDL 3300–4200 MHz 대용량 DL
n80 SUL 832–862 MHz UL-only
n81 SUL 880–915 MHz UL-only
n90 SDL 2496–2690 MHz DL-only

기술적 효과

기능 효과
SDL 추가 DL 용량 확장 (throughput ↑)
SUL 추가 UL 신호 품질 향상 (coverage ↑)
Dual connectivity 여러 주파수 대역 동시 운용
TDD/FDD 보완 비대칭 트래픽 구조 최적화

실제 활용 예시

환경 문제 해결
도심 스트리밍 구역 DL 트래픽 집중 SDL 추가로 DL 속도 향상
농촌, 외곽 지역 UL 신호 약함, 업로드 불안정 SUL 추가로 커버리지 확대
산업용 IoT 업링크 주기적 데이터 송신 저주파 SUL로 안정성 확보

핵심 요약

항목 SDL SUL
Full Name Supplementary Downlink Supplementary Uplink
전송 방향 gNB → UE UE → gNB
역할 DL 용량 확장 UL 커버리지 보강
물리 채널 PDSCH, PDCCH PUSCH, PUCCH, SRS
운용 형태 DL-only SCell UL-only SCell
활용 주파수 고주파 대역 (용량↑) 저주파 대역 (커버리지↑)
표준 문서 3GPP TS 38.300 §4.3.2, TS 38.101-1 §5.2  

RSRP(Reference Signal Received Power)

RSRP(Reference Signal Received Power) 는 LTE와 5G NR 망에서 단말(UE)이 기지국(gNB/eNB)로부터 수신하는 참조 신호(Reference Signal)의 평균 수신 전력을 의미합니다.
셀 선택, 핸드오버, 커버리지 품질 판단의 기본 지표로 가장 널리 사용됩니다.


개념

RSRP는 참조 신호(Resource Element, RE) 에 포함된 순수한 신호 전력만을 측정한 값입니다.
즉, 셀의 Reference Signal이 차지하는 RE들에서 각각의 전력을 측정한 뒤, 그 평균값을 취한 것입니다.

참고로 RSRP는 전체 대역폭 전력을 측정하는 RSSI나, 신호 대 간섭비를 나타내는 SINR/SIR과는 성격이 다릅니다.


측정 대상

즉, 표준에서 “reference signal for RSRP” 로 정의한 RS만 대상으로 삼습니다.


RSRP의 특징


측정 방식

UE는 다음과 같은 절차로 RSRP를 산출합니다.

  1. 기준이 되는 Reference Signal RE 위치의 수신 전력 측정
  2. 여러 RE에 대한 측정값을 평균
  3. 평균 전력을 dBm 단위로 표현

수학적으로는 다음처럼 표현할 수 있습니다.

\[\text{RSRP} = \frac{1}{N} \sum_{i=1}^{N} P_{\text{RS}}(i)\]

여기서


RSRP의 활용

RSRP는 네트워크에서 매우 중요한 역할을 합니다.


RSRP, RSRQ, SINR 비교

지표 의미 목적
RSRP 순수 RS 전력 셀 신호 강도
RSRQ RSRP / RSSI 신호 품질
SINR S / (I+N) 실효 데이터 품질

핵심은 다음과 같습니다.


RSRQ

RSRQ (Reference Signal Received Quality) 는 LTE와 5G NR에서 셀의 “신호 품질” 을 나타내는 대표적인 무선 품질 지표입니다.

RSRP가 “신호 세기(얼마나 크냐)”라면,
RSRQ는 “그 신호가 잡음·간섭에 비해 얼마나 깨끗하냐”를 보는 값입니다.


개념

RSRQ는 아주 간단히 말하면:

참조 신호(RS)의 세기(RSRP)가 전체 수신 전력(RSSI)에 비해 어느 정도 비율을 차지하는가

를 나타내는 값입니다.

같은 RSRP라도,

그래서 RSRQ는 “셀 신호가 얼마나 깨끗하게 들리는지” 를 판단하는 척도입니다.


수학적 정의

표준에서 RSRQ는 아래와 같이 정의됩니다.

\[\text{RSRQ} = \frac{N \cdot \text{RSRP}}{\text{RSSI}}\]

여기서

직관적으로 보면,

이기 때문에 비율이 클수록 품질이 좋다는 의미가 됩니다. 실제 보고값은 dB로 표현되며, 로그를 취해 사용합니다.


RSRP, RSSI와의 관계

각 지표의 의미를 다시 정리하면:

예를 들어,

이라면, 대략적으로 (단순화해서 dB 변환 생략하고)
유효 신호가 전체 전력 중 작은 비율이므로 → RSRQ가 낮게 나옵니다.


측정 방법 (UE 관점)

UE는 다음과 같은 과정으로 RSRQ를 구합니다.

  1. RSRP 측정
    • 정의된 Reference Signal (LTE CRS, NR CSI-RS/SSB 관련 등)의 RE들에서 전력을 측정
    • 여러 심볼과 RB에 대해 평균을 취해 RSRP 도출
  2. RSSI 측정
    • 동일한 대역(연속된 RB 범위)에서 수신된 전체 전력을 합산
    • 여기에는 신호 + 간섭 + 잡음이 모두 포함
  3. N (RB 개수) 파악
    • 측정 범위에 포함된 RB 개수를 사용
  4. 위 공식에 따라 RSRQ 계산
    \(\text{RSRQ} = \frac{N \cdot \text{RSRP}}{\text{RSSI}}\)

실제 단말은 이 값을 내부적으로 선형 값으로 계산한 후,
표준에 정의된 RSRQ 레벨(step) 중 하나로 양자화해서 보고(RRC 측정 보고 등)합니다.


값의 범위와 해석

RSRQ는 일반적으로 dB 단위로 표현되며, 대략 다음 정도 범위를 가집니다.

정성적으로 보면:

RSRQ (대략적) 의미
–3 ~ –7 dB 매우 양호 (간섭 적고 신호 깨끗함)
–7 ~ –11 dB 보통, 서비스 가능한 수준
–11 ~ –15 dB 품질 저하, 셀 경계 또는 간섭 심한 환경
–15 dB 이하 열악, 데이터 속도 급감/끊김 가능

(정확한 구간은 구현/사업자 정책마다 조금씩 다릅니다.)


RSRQ의 활용

RSRQ는 단독으로 쓰이기보다는 RSRP, SINR 과 함께 쓰입니다.

대표적인 활용은 다음과 같습니다.


RSRQ, RSRP, SINR 비교 정리

RSRP만 가지고는 “신호가 얼마나 강한지”만 알 수 있고, 그 신호가 간섭에 얼마나 찌들어 있는지는 알 수 없습니다.

그래서 RSRQ와 SINR을 같이 봅니다.

지표 보는 것 직관적인 의미
RSRP 절대 신호 전력 “기지국 신호가 얼마나 세냐”
RSRQ 신호 / 전체 전력 비율 “간섭 포함 환경에서 신호가 얼마나 깨끗하냐”
SINR S / (I+N) 실제 데이터 전송 가능 품질

이렇게 조합을 보면 현장의 무선 상태를 꽤 잘 해석할 수 있습니다.


HARQ

HARQ 기본 개념

HARQ(Hybrid Automatic Repeat reQuest)는 말 그대로

하이브리드로 결합한 메커니즘입니다.

핵심 포인트:

  1. 수신단에서 디코딩 실패 시 즉시 재전송 요청 (ACK/NACK)
  2. 이전에 받은 데이터와 소프트 정보(LLR)를 버리지 않고 누적해서 다시 디코딩
  3. 따라서 같은 전송 리소스로도 BLER 감소 + 스루풋 향상

LTE/NR 모두 HARQ는 PHY/MAC 경계에서 동작하는 L1.5 수준의 메커니즘으로 보는 게 직관적입니다.


Stop-and-Wait 기반의 다중 HARQ 프로세스

HARQ는 기본적으로 Stop-and-Wait ARQ(한 번 전송 → ACK/NACK 기다림)를 기반으로 합니다.
그런데 그것만 쓰면 RTT 동안 대역이 놀게 되니, 여러 개의 HARQ 프로세스를 병렬로 돌립니다.

요약하면:


Soft Combining과 Chase Combining / Incremental Redundancy

HARQ의 가장 중요한 특징은 소프트 결합(soft combining) 입니다.

수신단(UE 또는 gNB)에서:

  1. 첫 번째 전송 디코딩 실패 → “소프트 버퍼(LLR buffer)”에 저장
  2. 재전송 수신 → 새 LLR과 기존 LLR을 additive하게 결합
  3. 결합 결과로 다시 디코딩 (BLER 더 낮아짐)

소프트 결합 방식은 크게 두 가지:

  1. Chase Combining (CC)
    • 같은 코드워드(같은 비트/심벌)를 다시 전송
    • 수신 측은 단순히 SNR 올리는 효과 (MRC처럼 작동)
    • 구현 단순, redundancy pattern 고정
  2. Incremental Redundancy (IR)
    • 첫 번째 전송: 코드워드 일부 (예: systematic bits + 일부 parity)
    • 재전송: 다른 parity bits, 다른 puncturing 패턴
    • 수신 측은 전체 코딩된 비트들을 점점 채워 넣으며 디코딩 가능
    • 코드 이득(코드율 점진적 하향) → CC보다 좋은 성능

LTE/NR의 PDSCH/PUSCH HARQ는 사실상 IR 기반 HARQ라고 보면 됩니다.
RV(Redundancy Version: 0,1,2,3 등)를 바꿔서 서로 다른 패턴의 parity를 보냅니다.


HARQ에서 중요한 필드: NDI, RV, HARQ Process ID

DCI(Downlink Control Information) 안에는 HARQ 관련 필드가 있습니다.

MAC은 DCI 생성 시 HARQ ID, NDI, RV를 어떻게 설정할지 결정하고,
PHY는 그 정보에 따라 실제 Coded bit selection / mapping을 수행합니다.


@startuml
title Downlink HARQ (gNB -> UE)

participant "gNB MAC" as gMAC
participant "gNB PHY" as gPHY
participant "UE PHY" as uPHY
participant "UE MAC" as uMAC

gMAC -> gMAC: Select free HARQ process ID\nPrepare TB (new data)\nSet NDI = new, RV = 0
gMAC -> gPHY: TB, HARQ ID, NDI, RV, MCS, PRB\n+ DCI contents (for PDCCH)

gPHY -> uPHY: PDCCH (DCI with HARQ params)
gPHY -> uPHY: PDSCH (TB, RV = 0)

uPHY -> uPHY: Map DCI to HARQ process\nNDI toggled? yes -> init soft buffer\nDecode TB with RV = 0
uPHY -> uMAC: CRC result (fail)
uPHY -> gPHY: PUCCH (NACK for HARQ ID)

gPHY -> gMAC: HARQ feedback (NACK, HARQ ID)
gMAC -> gMAC: Mark process for retransmission\nSet RV = 2, keep NDI

gMAC -> gPHY: Retransmission request\nTB, HARQ ID, NDI, RV = 2
gPHY -> uPHY: PDCCH (DCI with RV = 2)
gPHY -> uPHY: PDSCH (retransmission, RV = 2)

uPHY -> uPHY: Soft-combine RV = 0 and RV = 2\nDecode TB again
uPHY -> uMAC: CRC result (success)
uPHY -> gPHY: PUCCH (ACK for HARQ ID)

gPHY -> gMAC: HARQ feedback (ACK, HARQ ID)
gMAC -> gMAC: Mark HARQ process free\nNotify upper layers of successful delivery

@enduml

크게 보면 다음 단계로 나눌 수 있습니다.

1. MAC (gNB) 측

  1. 상위 계층(PDCP/RLC)으로부터 내려온 데이터 SDU들을 MAC PDU/SDU → TB 로 구성
  2. TB를 전송하기 위해 빈 HARQ process ID 를 하나 선택
    • 이 process에 이미 미해결 TB가 있으면 새 TB 못 씀 (Stop-and-Wait 특성)
  3. HARQ 관련 파라미터 결정:
    • HARQ Process ID
    • NDI = 토글(새 데이터이므로)
    • RV = 0 (첫 전송)
    • MCS, PRB, 시간 위치 등
  4. 이 정보를 담아 DCI (예: NR의 Format 1_0) 생성
  5. MAC → PHY 로 TB 및 DCI 전달 (전송 요청)

2. PHY (gNB) 측

  1. MAC에서 내려온 TB를 채널 코딩 (LDPC/Polar 등)
  2. RV, rate matching, scrambling, modulation(M-QAM), layer mapping, precoding, mapping 수행
  3. PDSCH로 무선 전송
  4. 동일 슬롯/기대 슬롯에 맞춰 PUCCH/PUCCH-ACK 자원 구성 (HARQ-ACK 자원 준비)

3. PHY (UE) 측

  1. DCI (PDCCH) 디코딩
    • 여기서 HARQ Process ID, NDI, RV, MCS, PRB 등을 해석
  2. 해당 TB에 할당된 HARQ 소프트 버퍼 선택
  3. NDI 체크:
    • NDI가 이전 값과 다르면 (new) → 소프트 버퍼 초기화
    • NDI가 동일하면 (reTx) → 기존 LLR과 새 LLR 결합
  4. PDSCH 디코딩 수행 (소프트 정보 + FEC 디코딩)
  5. CRC 체크:
    • OK → ACK 생성
    • Fail → NACK 생성
  6. PHY에서 HARQ-ACK(1비트 또는 여러 비트) 를 PUCCH 또는 PUSCH에 실어 전송

4. MAC (gNB) 측에서의 ACK/NACK 처리

  1. gNB PHY가 UE로부터 PUCCH/PUSCH의 HARQ-ACK 디코딩

  2. HARQ-ACK 결과를 MAC HARQ 엔티티에 전달

  3. MAC은 Process ID 기반으로 테이블 업데이트:

    • ACK → 해당 HARQ process 완료, 소프트 버퍼/상태 해제, 상위 계층에 “성공” 보고

    • NACK → 재전송 필요 상태로 표시, 스케줄러에게 재전송 요청

재전송 시:


@startuml
title Uplink HARQ (UE -> gNB)

participant "UE MAC" as uMAC
participant "UE PHY" as uPHY
participant "gNB PHY" as gPHY
participant "gNB MAC" as gMAC

gMAC -> gPHY: Downlink DCI (UL grant)\nHARQ ID, NDI, RV, MCS, PRB, timing
gPHY -> uPHY: PDCCH (UL grant with HARQ params)

uPHY -> uMAC: Deliver UL grant\nHARQ ID, NDI, RV, MCS, PRB
uMAC -> uMAC: Build or select TB\nIf NDI new -> new TB for this HARQ ID\nIf NDI same -> retransmit stored TB
uMAC -> uPHY: TB, HARQ ID, NDI, RV, MCS, PRB
uPHY -> gPHY: PUSCH (TB with given RV)

gPHY -> gPHY: Map to UL HARQ process (HARQ ID)\nIf NDI same -> soft-combine with previous LLRs\nDecode TB, check CRC
gPHY -> gMAC: HARQ feedback (ACK/NACK, HARQ ID)

gMAC -> gMAC: If ACK -> free HARQ process\nIf NACK -> keep TB and schedule retransmission

gMAC -> gPHY: ACK/NACK indication for UE (HARQ ID)
gPHY -> uPHY: Downlink HARQ-ACK (PDCCH/PUCCH/PDSCH-based)
uPHY -> uMAC: Deliver ACK/NACK\nACK -> drop TB and free process\nNACK -> keep TB for next retransmission

@enduml

Uplink에서는 역할이 반대로 됩니다.

1. MAC (UE) 측

  1. 상위 계층 데이터 → MAC에서 UL TB 구성
  2. gNB로부터 받은 UL Grant (UL용 DCI) 안의
    • HARQ process ID
    • NDI
    • RV
      를 확인
  3. NDI가 토글되었으면 → 새 TB를 해당 process에 매핑
    NDI가 동일하면 → 재전송 TB로 인식
  4. TB를 PHY에 전달하면서 해당 HARQ Process와 연관시킴

2. PHY (UE) 측

  1. TB를 받아 채널 코딩 + rate matching (RV 반영) + 변조
  2. PUSCH 자원에 맵핑 후 송신

3. PHY (gNB) 측

  1. PUSCH 수신 및 디코딩
  2. DCI에서 받은 HARQ Process ID 기반으로 gNB 측 UL HARQ 소프트 버퍼 선택
  3. NDI 비교:
    • change → 새 TB → 소프트 버퍼 초기화
    • same → 재전송 → LLR soft combining
  4. CRC 결과에 따라 ACK/NACK 결정
  5. HARQ-ACK을 Downlink 제어 채널(예: PDCCH/PHICH(구-LTE) 또는 PDSCH/PUCCH 등)에 실어서 UE로 전송

4. MAC (UE) 측

  1. PHY에서 받은 ACK/NACK 결과를 HARQ 엔티티에 전달
  2. ACK → UL HARQ process 완료, 상위 계층에 성공 보고
    NACK → 동일 TB를 재전송 큐에 유지, 다음 UL Grant 때 재전송

MAC–PHY 간 HARQ 프로세스 구조

HARQ를 MAC 관점, PHY 관점에서 나눠 보면 다음과 같이 이해할 수 있습니다.

MAC 쪽(HARQ Entity)

PHY 쪽(HARQ Soft Buffer)

요약하면:


  1. 서빙 gNB MAC
    • Process 3 선택, NDI 토글, RV=0 설정
    • TB 구성 후 PHY에 전달 → DCI+PDSCH 송신
  2. UE PHY
    • DCI에서 HARQ ID=3, NDI(new), RV=0 확인
    • Process 3 soft buffer 초기화 후 디코딩
    • CRC fail → NACK 생성, PUCCH로 전송
  3. gNB PHY
    • NACK 수신 → MAC에 전달
  4. gNB MAC
    • Process 3 상태를 “RETX_PENDING”
    • 다음 스케줄 기회에 같은 TB 재사용, NDI 그대로, RV=2로 변경
    • DCI 생성 후 PHY에 재전송 요청
  5. UE PHY
    • 다시 DCI 수신 (HARQ ID=3, NDI same, RV=2)
    • 기존 LLR + 새 LLR 결합 → 디코딩 성공
    • ACK 전송
  6. gNB MAC
    • Process 3 완료로 상태 변경, TB 메모리 해제

이게 “프로세스 관점 HARQ” 의 가장 전형적인 시퀀스입니다.


HARQ 관련 DCI 필드

개요

5G NR에서 HARQ 재전송 제어는 DCI(Downlink Control Information) 의 일부 필드로 제어됩니다.
특히 다음 3개 필드는 HARQ 동작의 핵심입니다.

DCI Format 1_0 (DL), DCI Format 0_1 (UL) 등에서 공통적으로 사용됩니다.


HARQ Process Number (HARQ 프로세스 번호)

기능

HARQ Process Number는 이 TB가 어떤 HARQ 프로세스에 속하는지를 정의합니다.
UE 또는 gNB의 HARQ 소프트버퍼 인덱스를 직접 지정하는 역할입니다.

비트 길이

HARQ Process Number는 비트 길이가 고정된 것이 아니라,
슬롯 구조, 듀플렉스(TDD/FDD), mini-slot 여부, 1slot/2slot 스케줄링 에 따라 달라집니다.

NR에서 일반적인 HARQ Process 비트 길이 예:

즉, 비트 수는 네트워크 구성에 따라 3~5비트 정도가 일반적입니다.

값의 의미

NDI (New Data Indicator)

기능

NDI는 TB가 새로운 데이터인지(New),
아니면 재전송(Retx) 인지를 UE가 판단하도록 해주는 1비트 플래그입니다.

즉, UE는 NDI를 비교하여:

비트 길이

항상 1비트.

주의사항
예시

HARQ Proc 3에서

이전 NDI 새 NDI 의미
0 1 New TB
1 0 New TB
0 0 Retx
1 1 Retx

즉, NDI는 “toggle bit” 그 자체입니다.


RV (Redundancy Version)

기능

RV는 HARQ Incremental Redundancy(IR) 재전송을 위한 부호 비트 선택 패턴을 정의합니다.

비트 길이

RV는 2비트(고정).

RV 비트는 그대로 0~3의 값을 가짐.

의미(Downlink/UL 공통)
RV 값 의미
0 첫 전송에 적합한 기본 버전
1 IR용 parity subset 1
2 IR용 parity subset 2
3 IR용 parity subset 3

상용망에서는 일반적으로
0 → 2 → 3 → 1 순서로 재전송 스케줄링하는 경우가 많음 (네트워크 구현 차이 존재).

RV=0이 아닌 다른 값으로 첫 전송을 하는 경우

표준상 가능하지만, 일반적인 MCS/rate matching 요구조건 때문에 거의 사용되지 않음.


Downlink DCI Format 1_0 (PDSCH 스케줄링) 내부의 HARQ 관련 필드는 다음처럼 구성됩니다.

필드 비트 길이 의미
HARQ Process Number 3~5비트 HARQ 소프트버퍼 ID
New Data Indicator (NDI) 1비트 새 TB 여부
Redundancy Version (RV) 2비트 IR 버전

실제 DCI는 이 외에도:


UL Grant (UE에 PUSCH 스케줄링)에서도 동일한 방식으로 포함됩니다.

필드 비트 길이 의미
HARQ Process Number 3~5비트 UL HARQ 소프트버퍼 ID
NDI 1비트 새 UL TB 여부
RV 2비트 UL IR version

UL에서도 NDI는 UE가 TB 소프트버퍼를 초기화할지 유지할지를 결정하는 핵심 신호입니다.


필드 간 동작 관계

첫 전송
재전송

HARQ 필드 요약

필드 비트 역할
HARQ Process Number 약 3~5bit TB가 매핑될 소프트버퍼 ID
NDI 1bit New TB / Retx 구분 (toggle)
RV 2bit IR HARQ를 위한 redundancy version

CBG Based HARQ

개념

5G NR에서는 한 번에 전송하는 전송 블록(TB, Transport Block)을 LDPC 부호화를 위해 여러 개의 코드 블록(Code Block, CB)으로 쪼갭니다.
이때, HARQ 재전송의 단위를 TB 전체가 아니라 몇 개 CB를 묶은 단위로 세분화한 것이 CBG(Code Block Group) 이고,
이 CBG 단위를 기준으로 동작하는 HARQ를 CBG-based HARQ 라고 부릅니다.

요약하면, TB 하나를 여러 개의 “부분 HARQ 단위”로 나눠서 더 세밀하게 재전송하는 방식입니다.

TB / CB / CBG 구조

TB가 PHY에서 처리될 때 구조는 다음과 같이 됩니다.

  1. TB (Transport Block)
    • MAC에서 만들어지는 단일 데이터 블록
  2. CB (Code Block)
    • LDPC 부호화 전에 TB가 여러 CB로 분할
    • 각 CB는 자체 CRC (CB-CRC)를 가짐
  3. CBG (Code Block Group)
    • 여러 CB를 묶은 그룹
    • 예: TB가 12 CB → 3 CBG, 각 CBG에 4 CB씩
    • CBG 개수와 구성은 MCS, TB size, 설정에 따라 달라짐

수신단에서는

CBG-based HARQ 동작 방식 개요

  1. gNB에서 TB를 구성하고 LDPC 인코딩 → 여러 CB → CBG 단위로 전송
  2. UE는 각 CB를 디코딩하고, 각 CB-CRC 결과를 보고 CBG 단위 성공/실패 판단
  3. UE는 UCI (PUCCH 또는 PUSCH 상의 UCI)에
    • TB 기반 ACK/NACK (1비트) 또는
    • CBG 기반 ACK/NACK 비트맵 (여러 비트)
      를 실어 보냄
  4. gNB는 CBG-ACK 비트맵을 보고,
    • 성공한 CBG는 그대로 유지
    • 실패한 CBG만 선택적으로 재전송하도록 DCI에서 “어떤 CBG를 재전송할지” 마스크로 전달
  5. UE는 재전송된 CBG에 해당하는 CB들만 soft combining 하고 다시 디코딩해서 TB 전체를 복원.

TB-based HARQ vs CBG-based HARQ

TB-based HARQ
CBG-based HARQ

UE 수신 측 처리 상세

  1. PDSCH 수신 후
    • DCI에서 이 전송이 TB-based인지 CBG-based인지, CBG 개수, 구성 정보를 알고 있음
    • 각 CB에 대해 LDPC 디코딩 → CB-CRC 체크
  2. CBG 성공/실패 판단
    • CBG i 에 속한 CB들 중 하나라도 실패 → CBG i 실패
    • 모두 성공 → CBG i 성공
  3. UCI 생성
    • TB-based HARQ: TB 전체 기준 ACK/NACK 1비트
    • CBG-based HARQ: 각 CBG마다 1비트 ACK/NACK → 비트맵 형태
      예: CBG0 OK, CBG1 NG, CBG2 OK → 101 또는 010 등 사양 정의에 따른 순서
  4. PUCCH/PUSCH로 CBG-ACK 전송

gNB 측 재전송 스케줄링

  1. gNB는 UE의 CBG-ACK/CBG-NACK 비트맵을 수신
  2. HARQ 프로세스 테이블에서 해당 TB의 각 CBG 상태 업데이트
    • CBG0: ACK → 완료
    • CBG1: NACK → 재전송 대상
    • CBG2: ACK → 완료
  3. 재전송 DCI 구성
    • 동일 TB, 동일 HARQ Process ID
    • NDI는 유지 (재전송)
    • RV는 바꾸거나 유지 (IR 패턴 전략에 따라)
    • DCI 내 CBG Transmission Information 필드(마스크)로
      “어떤 CBG를 재전송하는지” 비트마스크로 표시
  4. PHY에 재전송 요청
    • PHY는 해당 TB의 CBG1 관련 비트들만 선택해 재전송용 코드워드 조립 (rate matching)
    • 나머지 CBG는 재전송하지 않음

UE 재전송 수신 시 처리

  1. DCI에서 CBG mask를 확인
    • 어느 CBG가 재전송되는지 알고 있음
  2. 재전송 수신된 CBG에 해당하는 CB들에 대해서만
    • 기존 soft buffer와 새 LLR을 soft combining
  3. TB 복호 및 CB-CRC/CBG 상태 다시 체크
    • 모든 CBG 성공 시 TB 성공으로 판단, 상위 계층에 전달
    • 실패한 CBG가 또 남으면 추가 재전송 진행

DCI 필드 측면에서 CBG 관련 포인트

3GPP 명칭을 모두 풀지는 않고 개념 위주로 보면:

@startuml
title Downlink CBG-based HARQ (gNB -> UE)

participant "gNB MAC" as gMAC
participant "gNB PHY" as gPHY
participant "UE PHY" as uPHY
participant "UE MAC" as uMAC

== Initial TB transmission ==

gMAC -> gMAC: Build TB and segment into CBs\nGroup CBs into CBGs (e.g. 3 CBGs)
gMAC -> gPHY: TB, HARQ ID, NDI(new), RV=0\n+ CBG config (num CBGs)
gPHY -> uPHY: PDCCH (DCI: HARQ ID, NDI, RV, CBG config)\nPDSCH (TB with all CBGs)

uPHY -> uPHY: Decode CBs, check CB-CRC\nMap CB results to CBG success/failure
uPHY -> uMAC: Per-CBG status (OK/NG)
uMAC -> uPHY: Build CBG-ACK bitmap in UCI\n(e.g. CBG0 OK, CBG1 NG, CBG2 OK)
uPHY -> gPHY: PUCCH/PUSCH (UCI with CBG-ACK bitmap)

gPHY -> gMAC: CBG-ACK bitmap for HARQ ID

== gNB decides partial retransmission ==

gMAC -> gMAC: Analyze bitmap\nOnly CBG1 failed -> schedule partial HARQ retransmission
gMAC -> gMAC: Prepare DCI with same HARQ ID,\nNDI unchanged, new RV (e.g. RV=2),\nCBG mask: only CBG1 = 1

gMAC -> gPHY: Retransmission TB context\nHARQ ID, RV=2, CBG mask (only failed CBGs)
gPHY -> uPHY: PDCCH (DCI: HARQ ID, RV=2, CBG mask)\nPDSCH (only CBG1 bits transmitted)

== UE combines only failed CBGs ==

uPHY -> uPHY: From DCI, read CBG mask\nIdentify retransmitted CBGs (CBG1)
uPHY -> uPHY: Soft-combine CBs of CBG1\nwith previously stored LLRs\nThen decode CBG1 again
uPHY -> uMAC: Update CBG results\n(if all CBGs now OK -> TB success)

uMAC -> uPHY: Build new CBG-ACK/TB-ACK\n(ACK for all CBGs)
uPHY -> gPHY: PUCCH/PUSCH (ACK for HARQ ID)
gPHY -> gMAC: Final ACK for this HARQ process

gMAC -> gMAC: Mark HARQ process as completed\nRelease TB and CBG state

@enduml

HARQ-ACK Codebook

개요

5G NR에서 UE는 PDSCH 수신 후 HARQ ACK/NACK을 gNB에 보고합니다.
이때 단순히 “ACK=1, NACK=0”을 보내는 것이 아니라,
PDSCH 스케줄링 구조와 HARQ 프로세스 구성에 따라 다양한 Ack/Nack 비트 조합이 필요합니다.

NR은 LTE 대비 훨씬 복잡한 스케줄링(dual-slot scheduling, multi-carrier, multi-HARQ, multi-PDSCH 등)을 지원하므로
UE는 이를 표현하기 위해 Ack/Nack Codebook 개념을 사용합니다.

UCI(Uplink Control Information) 안의 HARQ-ACK payload는
“어떤 PDSCH에 대한 ACK인지, 순서는 어떻게 되는지, Carrier/MIMO Layer가 어떻게 매핑되는지”
등을 모두 반영한 정렬(ordering) 규칙을 가지고 있습니다.

이 정렬 규칙으로 만든 비트열을 바로 HARQ-ACK Codebook 이라고 부릅니다.


HARQ-ACK Codebook의 목적

이 모든 정보를 UE → gNB로 전달하기 위해서는
HARQ-ACK 비트들이 일정 규칙에 따라 나열된 코드북(codebook) 형태가 필요합니다.


코드북을 구성하는 요소

HARQ-ACK Codebook은 다음 정보들을 반영하여 생성됩니다.

  1. Cell/Carrier Index
  2. Slot Index
  3. HARQ Process ID
  4. PDSCH 전송 여부 및 순서
  5. 비연속 DL 할당(복수 PDSCH)
  6. TB 단위 또는 CBG 단위 Ack/Nack (CBG-HARQ 사용 시 더 많은 비트 필요)

NR에서는 3GPP 38.212에서 코드북 생성 규칙을 세세하게 정의하고 있습니다.


HARQ-ACK Codebook의 비트 구조

각 PDSCH 스케줄링마다 대응되는 Ack/Nack 1비트(또는 CBG 기반이면 n비트)를 생성하고
정해진 ordering 규칙에 따라 하나의 비트열로 정렬한 후,
UCI PUCCH/PUSCH로 전송합니다.

예) 동일 슬롯에서 PDSCH 2개 수신 → Ack/Nack 2비트
예) Carrier 2개 + PDSCH 3개씩 → 6개 비트
예) CBG 기반 HARQ 사용 → 각 CBG마다 1비트 ACK 필요 → 비트 수 증가


Codebook Ordering Rule (핵심 개념)

Ack/Nack 비트 정렬 순서는 아래 기준으로 정의됩니다.

  1. 우선순위: Carrier → Slot → PDSCH → HARQ process
  2. 동일 슬롯, 동일 캐리어의 여러 PDSCH가 있을 경우
    • 시간 도메인 패턴 (K1, K2 scheduling offset)을 기준으로 정렬
  3. CBG 기반 HARQ가 활성화된 경우
    • 해당 PDSCH Ack 대신 CBG Ack 비트열이 codebook에 삽입됨

이 ordering 규칙에 따라 HARQ-ACK Codebook bitstring 이 만들어지고
이 bitstring이 UCI의 HARQ-ACK payload가 됩니다.


HARQ 절차와 Codebook 관계

  1. UE는 PDSCH를 받음
  2. PHY는 PDSCH 디코딩 후 TB/CBG 성공 여부 판단
  3. UE MAC/UCI 엔티티는
    • 어떤 HARQ 프로세스인지
    • 어떤 캐리어/슬롯인지
    • 어떤 CBG인지를 기준으로 codebook bitstring을 생성
  4. 생성된 bitstring을 PUCCH 또는 PUSCH에 실어 gNB로 전송
  5. gNB는 동일 코드북 규칙으로 비트열을 해석하여
    • 어떤 HARQ process 성공/실패인지
    • 어떤 TB 또는 CBG가 재전송 필요한지를 판단

슬롯 타임라인 기반 PDSCH → HARQ-ACK Codebook 흐름

아래는 한 슬롯 안에서 다음 슬롯에 ACK/NACK이 보고되는 과정을 타임라인 형식으로 모델링한 UML입니다.

@startuml
title HARQ-ACK Codebook Generation Timeline (Slot-based)

participant "gNB" as gNB
participant "UE" as UE

== Slot n : DL Transmission ==

gNB -> UE: PDCCH (DCI with HARQ ID, RV=0)\nPDSCH #1 (TB1)
gNB -> UE: (optional) PDSCH #2 (TB2)\n(multi-PDSCH in same slot)

UE -> UE: Decode TBs\nCheck CRC/CBG\nStore HARQ Process context

== End of Slot n : Codebook Preparation ==

UE -> UE: Build HARQ-ACK Codebook\nOrder bits by carrier/slot/PDSCH index\nExample: TB1→bit0, TB2→bit1

== Slot n+k : HARQ-ACK Reporting ==

UE -> gNB: PUCCH/PUSCH (UCI)\nHARQ-ACK Codebook bits sent\n(e.g., [1,0] meaning TB1 ACK, TB2 NACK)

gNB -> gNB: Parse codebook\nMap bits to HARQ processes\nSchedule retransmission if needed

@enduml

다이어그램 해설


CBG 기반 Ack/Nack codebook 사용례

전제부터 정리하면:

아래 예제들은 이 원리를 숫자로 보여주는 거라고 생각하시면 됩니다.


예제 1: 단일 PDSCH, 1개 TB, 3개 CBG

가장 기본적인 상황입니다.

가정

CBG Index 포함 CB들 디코딩 결과
CBG0 CB0, CB1 성공
CBG1 CB2, CB3 실패
CBG2 CB4, CB5 성공

CBG별 Ack/Nack 비트 정의

그러면 CBG별 비트는:

Codebook 비트열 생성

\[\text{HARQ-ACK codebook} = [b_0, b_1, b_2] = [1, 0, 1]\]

TB 단위 관점


예제 2: 한 슬롯에 PDSCH 2개, 각 TB에 CBG 여러 개

이제 조금 복잡한 상황입니다.

가정

디코딩 결과

PDSCH별 CBG Ack 비트

Codebook 비트열 구성 규칙 (개념적)

그러면 최종 HARQ-ACK codebook bitstring은:

\[\text{codebook} = [\underbrace{1,1}_{\text{PDSCH\#1}},\ \underbrace{1,0,0}_{\text{PDSCH\#2}}]\]

즉:

이 5비트가 UCI의 HARQ-ACK payload가 됩니다.

gNB 해석


예제 3: CBG 기반 Ack/Nack과 TB 기반 Ack/Nack 비교

위의 예제2 상황에서:

즉 TB-based라면:

하지만 CBG-based라서:

정리하면,

이라는 트레이드오프를 숫자로 볼 수 있습니다.


간단 수식 형태 요약 (개념만)

\[N_{\text{HARQ-ACK bits}} = \sum_{i=1}^{N_{\text{PDSCH}}} N_{CBG}^{(i)}\]

이렇게 매핑 규칙(코드북)을 UE와 gNB가 공유하고 있기 때문에,
gNB는 단순한 비트열을 받아도 “어느 PDSCH의 어느 CBG가 실패했는지”를 정확하게 복원할 수 있습니다.


TA(Timing Advance)

개요

5G NR에서 Timing Advance(TA)는 UE의 업링크 송신 시간을 조절하는 메커니즘입니다.
NR은 OFDM 기반 다중접속을 사용하므로, 여러 UE의 업링크 신호가 gNB의 FFT 윈도 안에서 정확히 시간 정렬되어야 합니다.
TA는 바로 이 시간 정렬(time alignment) 을 위해 존재합니다.

간단하게 말하면:


Timing Advance가 필요한 이유

OFDM은 직교성(Orthogonality) 에 기반합니다.
UE들이 제각각 시간 위치가 어긋나면 다음 문제들이 발생합니다.

LTE와 마찬가지로 NR에서도 UL 신호 정렬은 필수적인 L1 기능입니다.


Timing Advance 명령의 구조

Timing Advance는 NR에서 단계(step) 단위 ΔTA 로 제공되며, UE는 이 값을 기반으로 타이밍 보정량을 계산합니다.

NR Timing Advance 기본 식(개념):

\[T_{\text{TA}} = N_{\text{TA}} \cdot T_{\text{c}}\]

여기서

즉, TA는 하위 계층에서 정의된 매우 미세한 시간 단위로 UE 송신 시점을 조절합니다.


Timing Advance Message 종류

NR에서는 두 가지 종류의 TA 명령이 있습니다.

Initial TA

TA update (TA Command / TA MAC CE)


TA가 어떻게 측정되는가?

gNB는 UL 수신 신호(PUSCH/PUCCH/SRS)를 보고,
수신된 심볼의 도착 타이밍이 기준보다 앞/뒤로 얼마나 어긋났는지를 분석합니다.

주요 참조 신호:

이들 신호는 정확한 주파수·시간 위치에 있기 때문에
gNB는 correlation 기반으로 UE UL 신호의 도착 타임을 매우 정밀하게 측정할 수 있습니다.


TA Update 동작 과정 상세

  1. UE가 UL 신호를 송신
  2. gNB가 신호 도착 시간의 오프셋 측정
  3. 오프셋이 기준 윈도(타이밍 얼라인 범위)를 벗어나면 TA 명령 생성
  4. gNB → UE 방향으로 MAC CE(Timing Advance Command) 전송
  5. UE는 명령 받는 순간(또는 설정된 시점)에 즉시 UL 송신 타이밍을 조정
  6. gNB는 새 타이밍을 기반으로 다시 UL 수신
  7. 필요한 경우 반복하여 TA loop 유지

이 과정을 TA Control Loop 또는 Closed-loop Timing Synchronization 라고 부릅니다.


TA와 주파수(서브캐리어 간격) 관계

NR에서는 다양한 Subcarrier Spacing(SCS: 15/30/60/120/240 kHz)를 사용합니다.
SCS가 커지면 OFDM 심볼 길이가 짧아지고,
타이밍 오차 허용 범위(cyclic prefix 여유)가 줄어들기 때문에,
더 정밀한 Timing Advance가 필요합니다.

예:

NR은 이러한 다양한 SCS를 지원하기 위해
TA 단위도 LTE보다 더 높은 정밀도를 가지도록 설계되어 있습니다.


TA가 적용되는 채널들

Timing Advance는 UE의 모든 UL 채널에 적용됩니다:

즉, UL 방향 신호는 공통된 TA 보정값을 사용해 모두 동일한 시간 기준으로 맞춥니다.


TA Loop의 안정성 및 보정 주기

NR에서 TA는 일반적으로 다음 조건에서 업데이트됩니다.

TA update 주기는 보통:


프런트홀·Beamforming과 TA의 관계

Massive MIMO 및 Beamforming에서도 TA는 중요합니다.

TA는 기본적으로 “한 UE의 UL 타이밍을 전체 빔에 공통 적용”하고,
그 위에 각 빔/패널 별 위상 보정(precoder baseband phase compensation)이 추가됩니다.


NR의 Timing Advance 정확도

NR은 LTE보다 훨씬 다양한 주파수 대역과 SCS에서 동작하므로
TA의 정밀도는 매우 높습니다.

이 정밀도 때문에 NR에서는 셀 크기가 커도 효율적으로 UL 동기를 유지할 수 있습니다.


Timing Advance 절차를 슬롯 타임라인 기반으로 시각화

아래 다이어그램은 UE가 PUSCH/SRS를 전송하고 gNB가 타이밍 오프셋을 측정한 뒤 TA 명령을 UE에게 보내고 UE가 적용하는 흐름을 슬롯 기반으로 시각화한 것입니다.

@startuml
title 5G NR Timing Advance Update Timeline (Slot-based)

participant "gNB" as gNB
participant "UE" as UE

== Slot n : UL Transmission ==

UE -> gNB: PUSCH / PUCCH / SRS (UL signal)
gNB -> gNB: Measure arrival timing offset\nEstimate ΔTA needed

== Slot n+k : TA Command ==

gNB -> UE: PDCCH + MAC CE (Timing Advance Command)\nTA index N_TA sent to UE

UE -> UE: Apply new TA to UL timing\nAdvance or delay UL symbol transmission

== Slot n+k+m : UL Transmission with Updated TA ==

UE -> gNB: PUSCH / PUCCH / SRS\n(with corrected timing)

gNB -> gNB: Check new arrival timing\nIf still misaligned, send another TA update

@enduml

RAR(Random Access Response) 내 TA 계산 방식

개요

5G NR에서 UE는 PRACH를 전송해 셀에 처음 접속합니다.
gNB는 PRACH의 도착 시간(Time of Arrival) 을 측정하여 UE가 얼마나 “멀리/가까이” 있는지 계산하고, 그 보정값을 RAR(Random Access Response) 안의 Timing Advance Command 필드로 UE에게 전달합니다.

RAR 내 TA는 UE에게 주는 초기 Timing Advance이며, 이후 연결 유지 중에는 TA MAC CE 업데이트로 세밀하게 보정됩니다.


RAR의 구조 내에서 Timing Advance Command

RAR은 MAC PDU 형태로 보내지며, 다음과 같은 필드를 포함합니다.

여기서 Timing Advance Command는 다음과 같이 표현됩니다:


gNB가 TA를 계산하는 원리

핵심은 PRACH의 도착 시간 offset(Δt) 를 gNB가 측정하는 것입니다.

  1. UE는 PRACH preamble을 전송
  2. gNB는 해당 preamble의 correlation peak를 검출
  3. correlation peak의 위치를 기준 PRACH window와 비교하여
    • UE 신호가 조금 늦게 왔는가
    • UE 신호가 조금 일찍 왔는가를 판단
  4. 이 offset을 TA 값(11비트)로 양자화해 RAR에 넣어 보냄
  5. UE는 이 값을 적용하여 이후 UL 송신을 조정

위 행동은 LTE와 매우 유사하지만, NR은 여러 PRACH format과 SCS 기반 timing 구조가 달라서 계산식이 약간 확장됩니다.


RAR TA 계산 공식

RAR 안에서 UE가 적용해야 할 Timing Advance 값은 다음과 같이 정의됩니다.

\[T_{\text{TA}} = N_{\text{TA}} \cdot T_\text{c}\]

여기서

즉, TA는 NR의 base time unit((T_c))의 배수로 제공됩니다.

LTE의 기본 단위(16 Ts)와 유사하지만, NR에서는 (T_c) 기반으로 더 일반화됨.


gNB가 Δt(도착 지연)를 N_TA로 변환하는 과정

도착 시간 error = $\Delta t$

PRACH 포맷과 SCS에 따라 correlation peak가 기준보다 Δt만큼 늦거나 일찍 오면,

\[N_{\text{TA}} = \text{round}\left( \frac{\Delta t}{T_c} \right)\]

이렇게 계산한 값을 11비트 범위 안에서 보냅니다.

Δt는 셀 반경에 따라 매우 다양할 수 있으며:

NR에서는 이를 고려한 다양한 PRACH 포맷이 지정되어 있음.


UE가 RAR Timing Advance 적용하는 방식

UE는 RAR을 디코딩하면 즉시 다음 단계처럼 적용합니다.

  1. $N_{TA}$ 값을 수신
  2. TimingAdvance = $N_{TA}$ × Tc 계산
  3. 이후 UL 전송(PUSCH/PUCCH/SRS/PRACH msg3)은 이 TimingAdvance만큼 앞당겨서 송신
  4. 이후 gNB에서 TA MAC CE가 오면 추가 수정

RAR TA는 “초기 동기 맞추기” 이므로 필수이며, 그 뒤 이어지는 Msg3(PUSCH) 송신 타이밍은 반드시 이 TA 적용 결과를 반영해야 합니다.


PRACH 포맷과 TA 범위 관계

PRACH 포맷마다 cyclic shift와 OFDM symbol 수가 달라서 커버 가능한 타이밍 오프셋 범위가 다릅니다.

예시 개념:

gNB는 PRACH를 통해 UE 위치를 대략적으로 파악하고 그에 맞게 Timing Advance를 계산합니다.


Timing Advance Command 값의 실제 크기

$N_{TA}$는 11비트 → 0~2047 범위

TA의 최대 거리 환산은 다음과 같이 계산:

\[\text{거리} \approx \frac{c \cdot (N_{\text{TA}} T_c)}{2}\]

(왕복 지연 기반)

NR FR1 셀은 수 km까지 커버 가능하며 TA 값만으로도 충분한 range가 나옵니다.


RAR Timing Advance 동작

@startuml
title RAR Timing Advance Procedure (Initial UL Time Alignment)

participant "UE" as UE
participant "gNB" as gNB

== PRACH Transmission ==
UE -> gNB: PRACH Preamble
gNB -> gNB: Detect preamble\nMeasure arrival time offset (Δt)\nCompute N_TA = round(Δt / Tc)

== RAR Response ==
gNB -> UE: RAR (Timing Advance Command=N_TA,\nUL Grant for Msg3,\nTemp C-RNTI)

UE -> UE: Apply TA = N_TA × Tc\nAdjust UL transmission timing

== Msg3 UL ==
UE -> gNB: PUSCH Msg3 (with new TA)
gNB -> gNB: Verify arrival timing\nProceed with RA completion

@enduml

TDD NR에서 DL/UL 전환과 Timing Advance 관계

개요

TDD NR(Time Division Duplex)에서는 하향(DL)과 상향(UL) 전송이 시간축에서 번갈아 나타납니다.
이 때문에 UE의 UL 신호는 DL→UL 전환 시점에 정확히 지정된 심볼 위치에 도착해야 합니다.
Timing Advance(TA)는 바로 이 DL/UL 전환 경계에 맞춰 UE UL 도착 타이밍을 보정하는 핵심 메커니즘입니다.

한마디로 요약하면:

TDD에서는 DL→UL 전환 순간이 “공통 기준 시간” 역할을 하고,
UE는 TA를 이용해 UL 송신을 정확히 그 기준에 맞추도록 강제로 조정된다.


DL/UL 전환이 왜 TA와 강하게 연결되는가

TDD 구조에서는 다음 이유 때문에 TA가 훨씬 더 중요해집니다.

  1. DL과 UL이 동일한 주파수를 시간으로 나눠 사용
  2. UL 수신 윈도우가 매우 짧음
  3. 전환 시점(Guard Period 포함) 이후 첫 UL 심볼에 수 μs 이하의 오차도 허용 안 됨
  4. 만약 UE UL 신호가 이 경계를 벗어나면:
    • gNB의 FFT 윈도에 걸쳐 들어와서 ISI/ICI 증가
    • guard period 침범 → DL/UL 간 Cross-link Interference(CLI) 발생
    • 같은 셀/다른 UE 간 UL 간섭 증가

즉, DL→UL 전환점은 모든 UE가 공유하는 “시간 기준선” 이고, UE는 TA로 그 기준선에 UL 신호를 정밀하게 align해야 합니다.


TDD에서 TA가 적용되는 방식

UE가 TA를 적용하면 다음과 같은 효과가 있습니다.

즉, TDD에서는 “TA = UE가 UL을 얼마나 미리 보내느냐”를 결정하는 값입니다.


전환 경계(Guard Period, GP)와 TA 관계

TDD NR 프레임에는 일반적으로 다음이 포함됩니다:

UE의 실제 UL 심볼 도착은 다음 범위 내에 있어야 합니다.

\[[\text{UL symbol start} - \text{CP margin},\quad \text{UL symbol start} + \text{timing error margin}]\]

TA는 UE의 송신 시점을 이 윈도우 안으로 강제로 맞추는 역할입니다.

만약 TA가 부족하면:
UL 신호가 늦게 도착 → GP/UL 전환 이후 뒤쪽으로 밀림 → FFT 윈도와 불일치 → ICI/ISI 증가

TA가 너무 크면:
UL 신호가 너무 일찍 도착 → DL 구간을 침범하여 DL→UL 전환 직전에 도착 → DL과 충돌하여 CLI 발생

즉, TDD에서는 TA가 정확하지 않으면 DL/UL 전환 안정성 자체가 깨집니다.


UE 이동성(속도)에 따른 TDD TA의 영향

고속 이동 UE(예: 기차, 고속도로)에서는:

그래서 TDD + 고속 UE 환경에서는:

하는 것이 필수입니다.


TDD에서 PUSCH/PUCCH/SRS의 TA 적용

TDD에서는 UE UL 신호 전체가 하나의 공통 TA로 조정됩니다.

모두 같은 TA 값을 사용하므로 gNB는 어떤 UL 신호로든 UE의 도착 타이밍을 추정해 TA를 갱신할 수 있습니다.


실제 gNB Perspective에서의 DL/UL 전환과 TA

gNB는 UL 신호를 다음과 같은 시간축 구조에서 수신합니다.

| DL | DL | DL | GP | UL | UL |
              ↑
          Boundary (DL→UL)

gNB는 UL 신호가 Boundary 이후 일정 시간(FFT window 시작)에 정확히 도착해야 디코딩할 수 있으므로:

  1. UL 신호 도착 시점을 측정
  2. Boundary 기준 얼만큼 앞/뒤로 밀렸는지 계산
  3. Timing Advance MAC CE 또는 Timing Advance RAR로 보정

특히 GP 구간이 짧은 Slot Format(예: Slot Format 28, 30 등)을 사용하면
TA 정밀도 요구가 매우 높아집니다.


UL Timing이 어긋나면 발생하는 문제

UL 도착 시점이 아래처럼 어긋나면:

UL 도착이 늦음(타이밍 부족)

UL 도착이 빠름(타이밍 과도)

따라서 TA는 너무 크거나 작아도 안 되고, 정확한 “sweet spot” 에 있어야 합니다.


Slot 기반 DL/UL 전환 + TA 보정

@startuml
title TDD NR : DL/UL Switch and Timing Advance Alignment

participant "gNB" as gNB
participant "UE" as UE

== Slot n : DL Region ==
gNB -> UE: PDSCH / PDCCH (DL)
... DL symbols ...

== DL → UL Switch ==
gNB -> gNB: Guard Period (GP)
note right: Boundary for UL\nAll UEs must align UL timing here

== UE UL Transmission with Current TA ==
UE -> gNB: PUSCH / PUCCH / SRS
gNB -> gNB: Measure UL arrival time\nCheck alignment vs DL→UL boundary

== TA Adjustment ==
gNB -> UE: MAC CE (Timing Advance Command)
UE -> UE: Update TA\nShift UL transmission earlier/later

== Next UL Opportunity ==
UE -> gNB: UL with updated TA
gNB -> gNB: UL arrival is aligned\nStable TDD DL/UL switching

@enduml

결론


SRS 기반 TA tracking의 상세 알고리즘

개요

SRS(Sounding Reference Signal)는 UE가 주기적 또는 비주기적으로 송신하는 UL reference signal입니다.
gNB는 SRS를 통해 다음을 추정할 수 있습니다:

SRS는 UE가 CP 경계·OFDM symbol grid에 정확히 맞춰 송신하는 신호이므로,
gNB는 correlation 기반으로 UE의 ToA 오류를 매우 정밀하게 측정할 수 있습니다.

그 ToA – 기준 타임라인 = Timing Error
gNB는 이 Timing Error를 기반으로 TA MAC CE(Timing Advance Command)를 UE에게 내려 보냅니다.


SRS 기반 TA Tracking이 필요한 이유


SRS 기반 TA Tracking 전체 흐름

  1. UE가 SRS 송신
  2. gNB는 SRS를 FFT 윈도 내에서 수신
  3. correlation peak → ToA(Time of Arrival) 계산
  4. expected arrival time과 비교하여 timing error Δt 계산
  5. Δt가 허용 범위 범위를 벗어나면 TA update 필요
  6. Δt → $N_{TA}$로 양자화
  7. TA MAC CE 전송
  8. UE는 TA 적용
  9. gNB는 다음 SRS에서 다시 확인 (closed-loop tracking)

단계별 상세 알고리즘 (gNB 수신 관점)

1. SRS Reception

UE는 특정 리소스(시간/주파수/포트/comb)에 맞춰 SRS를 송신합니다.
gNB는 UL 필터링/FFT 이후 다음을 얻습니다:

\[Y[k] = \text{received SRS on subcarrier } k\]

2. SRS Correlation

SRS는 알려진 시퀀스(주로 Zadoff-Chu 또는 골드 계열)를 사용하므로
gNB는 다음과 같은 correlation을 수행합니다.

\[C[n] = \sum_k Y[k] \cdot S_{\text{SRS}}^*[k] \cdot e^{-j\frac{2\pi kn}{N}}\]

여기서

이 correlation peak의 위치 $n_{\text{peak}}$가 실제 도착 시점입니다.


3. ToA(Time of Arrival) 추정

\[t_{\text{arrival}} = \frac{n_{\text{peak}}}{F_s}\]

$F_s$ = sampling rate (= SCS에 따라 변함)

SRS는 높은 bandwidth로 전송 가능하기 때문에,
ToA 오차가 수십~수백 ns 단위까지 정밀하게 측정 가능합니다.


4. Expected Arrival Time과 비교

gNB는 모든 UE의 UL 신호가 도착해야 하는 기준 시간 (t_{\text{ref}}) 를 알고 있습니다.

Timing Error:

\[\Delta t = t_{\text{arrival}} - t_{\text{ref}}\]

5. Timing Error를 TA 단위로 변환

TA는 NR base time unit ((T_c)) 단위로 전달됩니다.

\[N_{\text{TA}} = \text{round}\left( \frac{\Delta t}{T_c} \right)\]

이 값이 TA Command의 핵심입니다.


6. Threshold 기반 TA 업데이트 결정

TA는 매번 보내지 않고,
다음 조건일 때만 보냅니다:

  1. $ \Delta t > \Delta t_{\text{th}}$ (TA threshold 초과)
  2. TDD 슬롯에서 UL 도착이 boundary 근처로 이동되는 경우
  3. 고속 UE (도플러 큰 경우) → Δt 변화가 크면 더 자주 보냄
  4. SRS 품질(SNR)이 충분히 높아 오차가 신뢰 가능한 경우

예시:


7. TA Command(MAC CE) 생성

MAC CE의 TA 명령 구조는 다음과 같습니다:

UE는 이 TA 값을 현재 TA에 누적 형태로 적용합니다.


8. UE에서 TA 적용

UE는 다음 슬롯 이후부터 UL 송신 시점을 다음과 같이 변경합니다.

\[t_{\text{UL,new}} = t_{\text{UL,old}} - N_{\text{TA}} T_c\]

(advance = 더 일찍 송신한다는 의미)


9. Loop Iteration (Closed-loop TA Tracking)

TA는 한 번으로 끝나지 않습니다.

SRS가 올 때마다 Δt를 재추정하며 TA loop는 반복됩니다.


TDD 환경에서의 추가 동작

SRS 기반 TA tracking은 TDD에서 더욱 중요합니다.

SRS는 PUSCH가 없는 슬롯에서도 UL timing을 잡을 수 있기 때문에 TDD 셀에서는 거의 필수적인 TA tracking reference입니다.


gNB Scheduler 관점의 TA tracking 알고리즘

gNB는 UL Scheduling 전에 다음을 고려합니다:

  1. 최근 SRS 도착타이밍 → Δt 계산
  2. UL 자원 스케줄링할 때
    • Δt가 큰 UE는 PUSCH resource edge에 배치하지 않음
    • Δt가 안정된 UE는 작은 guard 여유로도 배치 가능
  3. Δt가 지속적으로 drift되면
    • TA MAC CE 전송
  4. Δt가 threshold를 오래 벗어나면
    • TA lost alignment → RLF(Radio Link Failure) 트리거 가능

SRS 기반 TA Tracking 절차

@startuml
title SRS-based Timing Advance Tracking (gNB perspective)

participant "UE" as UE
participant "gNB" as gNB

== UE sends SRS ==
UE -> gNB: SRS (UL reference signal)

== gNB Timing Error Estimation ==
gNB -> gNB: Correlate SRS with reference sequence
gNB -> gNB: Find correlation peak → ToA
gNB -> gNB: Δt = ToA - reference UL time
gNB -> gNB: If |Δt| > threshold → TA update needed

== TA Command ==
gNB -> UE: MAC CE (Timing Advance Command)\nN_TA = round(Δt / Tc)

== UE applies TA ==
UE -> UE: Update UL transmission timing
UE -> gNB: UL (PUSCH/PUCCH/SRS) with new TA

== Closed-loop ==
gNB -> gNB: Evaluate new ToA in next SRS\nRepeat tracking if needed

@enduml

SRS + DMRS 조합 기반 Joint Timing Advance Estimation Algorithm

개요

NR에서는 SRS(UL 채널 전반을 측정하기 위한 전송)과
DMRS(PUSCH/PUSCH용 UL demodulation reference)를 모두 사용할 수 있습니다.

각각의 특징은 다음과 같습니다:

gNB는 다음 문제를 해결해야 합니다:

그래서 상용 gNB에서는 SRS+DMRS 를 조합한 Joint TA Tracking 알고리즘을 사용한다.


왜 Joint Estimation이 필요한가

SRS 단독의 문제

DMRS 단독의 문제

따라서 실제 gNB는 다음과 같은 조합이 필요함:

이를 Kalman Filter 또는 Weighted Combination 형태로 구현한다.


Joint TA Estimation의 핵심 원리

Joint TA Estimation은 본질적으로 시그널 2개의 타이밍 오차를 결합하는 문제다.

Notation:

Joint estimation 기본식(개념적 형태):

\[\Delta t_{\text{joint}} = \alpha \Delta t_{\text{SRS}} + (1 - \alpha) \Delta t_{\text{DMRS}}\]

여기서 α는 다음을 고려한 weight:

이 식은 실제 구현에서는 Kalman Filter 방식으로 변형됨.


단계별 Joint TA Tracking 알고리즘 (상용 gNB 수준 설명)

1. SRS 기반 Coarse TA Estimation

\[\Delta t_{\text{SRS}} = t_{\text{arrival,SRS}} - t_{\text{ref}}\]

특징


2. DMRS 기반 Fine Tracking

DMRS는 PUSCH·PUCCH에 항상 포함되므로, slot 단위로 TA를 추정할 수 있다.

UL demodulation 시:

\[\Delta t_{\text{DMRS}} = f\left(\arg \max (Y[k] \cdot S_{\text{DMRS}}^*[k])\right)\]

특징


3. Drift Modeling (속도 기반 TA 변화 모델)

UE 이동성(v)와 carrier frequency(f_c)를 고려하면 Timing drift는 도플러 + 거리 변화에 의해 아래처럼 모델링 가능:

\[\Delta t_{\text{drift}}(t) \approx \frac{v}{c}\]

gNB는 UE의 이동 속도 추정(도플러 기반)을 바탕으로 DMRS 기반 TA가 어느 방향으로 drift할지를 예측한다.


4. Kalman Filter 기반 Joint Estimation

상용 Massive MIMO gNB는 거의 모두 Kalman Filter를 사용한다.

State vector:

\[x(t) = \begin{bmatrix} \Delta t(t) \ \Delta t'(t) \end{bmatrix}\]

Prediction:

\[x(t|t-1) = A x(t-1)\]

SRS update(고신뢰 high-SNR measurement):

\[z_{\text{SRS}} = \Delta t_{\text{SRS}}\]

DMRS update(저신뢰 high-rate measurement):

\[z_{\text{DMRS}} = \Delta t_{\text{DMRS}}\]

이 두 measurement를 Kalman gain으로 가중 결합:

\[x(t) = x(t|t-1) + K (z - H x(t|t-1))\]

결과:


5. TA Command Decision Logic

최종 estimate:

\[\Delta t_{\text{joint}} = x_1(t)\]

TA threshold:

\[|\Delta t_{\text{joint}}| > \Delta t_{\text{th}}\]

이면 TA MAC CE 전송.


Multi-panel Massive MIMO에서의 Joint TA

Massive MIMO에서는 각 패널(또는 sub-array)이 각기 다른 RF chain, different calibration offset을 가짐.

Joint TA estimation은 다음과 같은 의미를 가진다:

따라서 multi-panel beamforming에서 SRS 단독보다는 SRS+DMRS joint tracking이 필수적이다.


SRS + DMRS Joint TA Tracking

@startuml
title SRS + DMRS Joint Timing Advance Tracking (gNB)

participant "UE" as UE
participant "gNB" as gNB

== SRS processing (coarse TA) ==
UE -> gNB: SRS
gNB -> gNB: Wideband correlation\nEstimate Δt_SRS (high accuracy)

== DMRS processing (fine tracking) ==
UE -> gNB: PUSCH/PUCCH DMRS
gNB -> gNB: Narrowband correlation\nEstimate Δt_DMRS (high rate, noisier)

== Joint estimation ==
gNB -> gNB: Predict TA drift\n(frequency, mobility, Doppler)
gNB -> gNB: Combine Δt_SRS and Δt_DMRS\n(Kalman Filter / weighted fusion)
gNB -> gNB: Δt_joint = final timing offset

== TA update ==
gNB -> gNB: If |Δt_joint| > threshold → TA command needed
gNB -> UE: MAC CE (Timing Advance Command)
UE -> UE: Adjust UL timing

== Closed loop ==
UE -> gNB: Next SRS/DMRS\nTracking continues

@enduml

Massive MIMO 빔포밍과 TA 관계

개요

Massive MIMO와 Timing Advance(TA)는 완전히 다른 기능처럼 보이지만, NR에서는 서로 매우 강하게 결합되어 있습니다.
이유는 다음 한 문장으로 요약됩니다.

Massive MIMO는 UE별 위상(phase)·시간(time)·공간(angle) 정렬을 기반으로 동작하는데,
UL Timing이 맞지 않으면 UL 채널 추정(CSI)이 왜곡되며,
결과적으로 빔포밍(precoding) 자체가 틀어진다.

즉, TA 오차는 곧 채널 추정 오차 → 빔포밍 오차 → Beam Misalignment 로 이어집니다.


UL 기반 채널 추정이 Massive MIMO에서 가지는 의미

TDD 기반 Massive MIMO에서는 UL–DL 채널 상호성(reciprocity) 을 이용합니다.

UL에서 SRS/DMRS를 받고 → 그 채널을 그대로 DL precoder 생성에 사용합니다.

이 말은 즉:

UL 채널 = DL channel (up to calibration)

따라서 UL 채널을 안정적으로 추정하려면 UL 신호가 정확한 시간 축(OFDM grid)에 정렬되어 있어야 합니다.
TA 오차가 생기면 채널 추정이 다음과 같이 망가집니다.

Massive MIMO에서는 수십~수백 안테나가 같은 UL 채널을 기반으로 precoding을 계산해야 하므로, 1 UE의 작은 TA 오차가 전체 precoding 정확도에 영향을 미칩니다.


TA 오차 → 채널 추정 왜곡 수식적 설명

UL 신호가 Δt만큼 지연되면, 주파수 영역에서 다음과 같이 위상 변화가 생깁니다.

\[Y[k] = X[k] \cdot e^{-j 2\pi k \Delta t / T_{\text{sym}}}\]

즉:

Massive MIMO의 Zero-Forcing(ZF), MMSE precoder는 채널의 절대 phase alignment에 매우 민감하므로 TA 오차는 곧 precoder 계산 오류로 이어집니다.


Massive MIMO의 기억해야 할 핵심 성질

Massive MIMO에서 precoding matrix (W) 는 다음처럼 계산됩니다.

\[W = f(H)\]

즉, UL 채널 (H) 만으로 precoder가 결정됩니다.

UL TA 오차 → H가 왜곡 → W가 틀어짐 → DL 빔이 엉뚱한 방향으로 나감

특히 FR2(mmWave)의 경우:

따라서 TA tracking 없이 Massive MIMO Precoding은 제대로 동작할 수 없습니다.


Multi-panel/Multi-beam 환경에서 TA가 가져오는 영향

Massive MIMO는 하나의 안테나 패널이 아니라 여러 패널을 사용합니다.
각 패널은 서로 다른 RF chain + phase offset + calibration 값을 가집니다.

TA 오차가 발생하면:

  1. 패널 간 채널 phase alignment가 깨짐
  2. UL 채널 추정이 panel별 상이해짐
  3. Multi-panel coherent beamforming 불가
  4. 빔 방향이 틀어지거나 side-lobe가 증가함
  5. DL SNR 급감

이 문제는 FR2의 “방향성 빔포밍(beam-scanning)” 환경에서 특히 심각합니다.
mmWave에서는 빔이 ±1~3°만 틀어져도 Link가 끊어질 수 있습니다.


Massive MIMO Beamforming에서 TA가 특히 중요한 이유 정리

  1. Massive MIMO는 UL 채널 기반 precoding (TDD reciprocity)을 사용한다.
  2. UL 채널은 정확한 timing alignment 없이는 정확히 추정할 수 없다.
  3. TA 오차 → DMRS/SRS 도착 시점 mismatch → CSI 왜곡
  4. CSI 왜곡 → 잘못된 precoding → 빔 misalignment
  5. 빔 misalignment → DL throughput 하락, BLER 상승, Beam Failure 가능
  6. TDD 모드에서는 DL/UL 경계가 timing 기준선이므로 TA 오차 허용치가 작다.
  7. FR2에서는 CP·sym 길이가 짧아서 TA 오차 허용도 거의 없다.

즉:

Massive MIMO가 “제대로 beamforming” 하려면
UE UL 타이밍(TA) 정렬이 필수 조건이다.


Massive MIMO Precoding과 TA 관계

@startuml
title Massive MIMO Precoding and Timing Advance Interdependency

participant "UE" as UE
participant "gNB Massive MIMO" as gNB

== UL Channel Estimation ==
UE -> gNB: SRS / UL DMRS
gNB -> gNB: Estimate UL channel H\n(Requires precise UL timing)

== TA Error Case ==
UE -> gNB: SRS arrives with Δt timing offset
gNB -> gNB: Channel estimate distorted\nPhase ramp across subcarriers\nPanel-phase mismatch

== Impact on Precoding ==
gNB -> gNB: Compute precoder W = f(H)\n(based on distorted H)
note right: Beam direction misaligned\nDL SNR reduces

== TA Correction ==
gNB -> UE: TA MAC CE (Correct timing)
UE -> UE: Apply TA (advance/delay UL)
UE -> gNB: Next SRS with corrected timing

== Recovered Beamforming ==
gNB -> gNB: UL channel now accurate\nCompute correct W\nBeam aligned for DL

@enduml

실제 현장에서 나타나는 현상 예

Massive MIMO 현장에서 TA가 불안정하면 다음 현상이 자주 보입니다.

특히 MU-MIMO는 여러 UE의 채널 정렬이 동시에 필요하므로 TA 오차가 있는 UE 한 명이 전체 사용자에 영향을 줄 수 있습니다.


Multi-beam PRACH에서 PRACH Rx Beam 형성과 Timing Advance(TA) 계산의 관계

개요

5G NR에서 PRACH(Random Access Channel)는 UE가 셀에 처음 접속할 때 사용하는 UL 신호입니다.
FR2(밀리미터파) 또는 Massive MIMO FR1 환경에서는 gNB가 여러 개의 수신 빔(RX beams) 을 사용하여 PRACH preamble을 동시에 모니터링합니다.

Multi-beam 환경에서는:

이 모든 것이 TA 계산에 직접적으로 연결됩니다.

즉, Multi-beam PRACH에서는:

PRACH가 어느 빔에서 가장 강하게/가장 일찍 검출되는지
Timing Advance 추정의 기준이 된다.


Multi-beam PRACH 수신 구조

Massive MIMO 또는 mmWave에서 gNB는 다음과 같은 구조로 PRACH를 수신합니다.

  1. gNB는 여러 수신 빔 패턴을 미리 정의함
  2. 동일 시간에 N개의 빔을 병렬적으로 활성화하여 PRACH preamble을 탐지
  3. 각 빔마다 독립적으로 correlation(zadoff-chu) 수행
  4. 각 beam에서 peak amplitude, delay(peak position) 측정
  5. gNB는 어느 빔의 correlation peak가
    • 가장 높고,
    • SNR이 높고,
    • Delay가 유효한지를 평가하여 최종 PRACH Beam + ToA(Time-of-Arrival) 선택

이 때 선택된 ToA가 바로 TA 계산의 입력이 된다.


왜 “특정 beam의 ToA”를 선택해야 하는가

UE는 특정 공간 방향(AoA)으로 존재합니다.
multi-beam PRACH에서:

따라서:

\[TA \propto \text{ToA from MOST VALID PRACH Rx Beam}\]

이것이 핵심입니다.


Multi-beam PRACH에서 ToA 선택 기준

gNB는 일반적으로 다음 우선순위로 PRACH beam을 선택합니다.

  1. Correlation peak amplitude가 최대인 beam
  2. SNR이 일정 threshold 이상
  3. Peak shape이 유효한(ZC sequence correlation 특성 부합) beam
  4. Peak index가 PRACH window 내부에 있는 beam
  5. Delay spread나 multipath 영향이 낮은 beam
  6. Multi-beam consistency(주변 beam들과 delay/slope 비교)

이 과정을 통해 최종 “BEST beam”을 선택하고, 그 beam에서 나온 ToA 값을 TA 계산에 사용합니다.


Multi-path 환경에서의 문제

UE 신호가 multipath를 가진 경우:

만약 gNB가 가장 세기가 큰 multipath peak를 선택하면
TA가 잘못 계산됩니다 (UE UL timing이 엉망됨).

그래서 Multi-beam PRACH에서는 반드시 다음 처리가 필요합니다:

실제 상용 gNB에서는 ToA smoothing이나 multi-beam weighted peak selection을 수행합니다.


TA 계산에 사용되는 ToA는 “Beam-dependent”

시험·벤더 장비에서 공통적으로 보이는 점:

예:

Beam Peak Power ToA Index
Beam 0 높음 105
Beam 1 최고 101 ← 채택해야 하는 beam
Beam 2 낮음 113
Beam 3 side-lobe 78

이 경우 선택된 beam = Beam 1
TA 계산도 Beam 1의 ToA index 101 기반으로 수행.


TA 계산 과정 (Multi-beam 상황의 실제 과정)

위 ToA index가 선택되면 TA는 다음과 같이 계산됩니다.

  1. 선택된 beam의 ToA index = (n_{\text{peak}})
  2. 실제 도착 시간:
\[t_{\text{arrival}} = \frac{n_{\text{peak}}}{F_s}\]
  1. 기준 도착 시간 t_ref 와 비교:
\[\Delta t = t_{\text{arrival}} - t_{\text{ref}}\]
  1. TA index:
\[N_{\text{TA}} = \text{round} \left( \frac{\Delta t}{T_c} \right)\]

이때 T_c는 NR base time unit.

즉, Multi-beam PRACH에서 TA는 beam 선택 과정의 결과물입니다.


Multi-beam PRACH에서 중요 포인트

다음 세 가지가 TA 정확도에 직접 영향을 줍니다:

  1. 어떤 beam을 선택했는가
  2. 그 beam에서 LA 기준으로 어느 peak를 선택했는가
  3. peak detection이 multipath를 잘 제거했는가

특히 FR2에서는:

따라서 Multi-beam PRACH에서는 beam selection 알고리즘이 TA 정확도의 핵심입니다.


Multi-beam PRACH + TA

@startuml
title Multi-beam PRACH Reception and Timing Advance Determination

participant "UE" as UE
participant "gNB (Massive MIMO)" as gNB

== PRACH Transmission ==
UE -> gNB: PRACH preamble

== Multi-beam Correlation ==
gNB -> gNB: Apply multiple Rx beams (Beam#0 .. Beam#N)
gNB -> gNB: For each beam:\n- ZC correlation\n- Peak amplitude\n- Peak delay(ToA)\n- SNR check

== Beam Selection ==
gNB -> gNB: Select best beam:\nmax amplitude + valid ToA\n(remove multipath/side-lobe)

== TA Estimation ==
gNB -> gNB: Use selected beam's ToA\nCompute Δt = ToA - reference\nCompute N_TA = round(Δt / Tc)

== RAR Transmission ==
gNB -> UE: RAR (Timing Advance Command)

== UE applies TA ==
UE -> UE: Adjust UL timing based on N_TA

@enduml

실제 필드에서 발생하는 케이스

Multi-beam PRACH에서 TA과 beam alignment가 서로 영향을 주는 현상:


결론