Link Adaptation & HARQ

Link Adaptation dynamically adjusts transmission parameters based on real-time channel conditions. Combined with HARQ and its round-trip timing, it forms the closed-loop system that maximizes spectral efficiency in 5G NR. Covers MCS selection, CQI reporting, OLLA, and HARQ RTT.

Channel Coding Page → Spatial Mux Page →

#1The Link Adaptation Loop

The link adaptation loop tracks the channel and adjusts transmission parameters every slot (or few slots):

Real-time link adaptation — watch MCS, CQI, and throughput track channel conditions slot-by-slot

What Gets Adapted?

ParameterWhat ChangesControlled BySpeed
Modulation orderQPSK → 16QAM → 64QAM → 256QAMMCS indexPer-slot
Code rate0.076 → 0.926MCS indexPer-slot
Layers1 → 4 spatial streamsRI reportPer-slot
PRBs1 → 273 PRBsSchedulerPer-slot
Beam directionSSB beam selectionBeam mgmtPer-slot

#2MCS — Modulation and Coding Scheme

The MCS index simultaneously specifies modulation order and target code rate. It is the primary output of link adaptation:

MCS table — drag to see modulation, code rate, and spectral efficiency change in real-time

MCS Tables — 3 Options

TableMax ModulationUsed ForMCS Range
Table 1 (Default)256QAMeMBB data0–27
Table 2 (Low SE)64QAMURLLC0–27
Table 3 (Coverage)64QAMCoverage enhancement0–28

#3CQI — Channel Quality Indicator

The UE reports a CQI index (1–15) that maps to the highest modulation/code rate it can decode at ≤ 10% BLER:

CQI selection — UE finds the highest CQI where estimated BLER ≤ 10% at the measured SINR

CQI Table (TS 38.214)

CQIModulationCode RateSE (bps/Hz)≈ SNR
1QPSK0.1170.234-6 dB
4QPSK0.4390.8770 dB
716QAM0.3791.5165 dB
916QAM0.6022.4069 dB
1164QAM0.5543.32213 dB
1364QAM0.7544.52317 dB
15256QAM0.9267.40622 dB

CQI Reporting Modes

ModeTriggerChannelGranularity
Periodic (P-CSI)RRC configuredPUCCHWideband only
Aperiodic (A-CSI)DCI requestPUSCHSubband OK
Semi-Persistent (SP-CSI)MAC CEPUCCH/PUSCHConfigurable

#4Transport Block Size (TBS)

  TBS Determination (TS 38.214 §5.1.3.2):

  Step 1: N_info = N_RE × R × Q_m × ν
  Step 2: If N_info ≤ 3824:
            TBS = max(24, 2^n × round(N_info / 2^n))
          If N_info > 3824:
            TBS = max(3840, 2^n × round((N_info-24) / 2^n)) + 24
  Step 3: If TBS > 8448 → segment into C code blocks

  Example: MCS=20, 50 PRBs, 2 layers
    N_RE = 50×132 = 6600
    N_info = 6600 × 0.7109 × 6 × 2 = 56,303
    TBS ≈ 55,320 bits → 7 code blocks

#5Outer Loop Link Adaptation (OLLA)

OLLA adjusts MCS selection to track the actual BLER toward the target (10%):

On ACK (success)

OLLA_offset += Δ_up (small step, e.g., 0.01 dB)
Increase MCS — be more aggressive

On NACK (failure)

OLLA_offset -= Δ_down (large step, e.g., 0.1 dB)
Decrease MCS — be more conservative

Step Size Ratio

Δ_down / Δ_up = (1 - BLER_target) / BLER_target
For 10% target: Δ_down/Δ_up = 0.9/0.1 = 9 → convergence guaranteed

OLLA convergence — watch the offset adapt slot-by-slot to maintain target BLER ≈ 10%


#6HARQ Round-Trip Time (RTT)

The HARQ RTT is the time between initial transmission and earliest possible retransmission. It determines pipeline depth and throughput efficiency:

HARQ timeline — adjust K1 and scheduling delay to see RTT impact on pipeline utilization

Key Timing Parameters

ParameterDefinitionTypical Range
K1PDSCH → HARQ-ACK delay (slots)1–15 (typically 2–4)
N1UE PDSCH processing time (symbols)3–20 (depends on UE cap)
K2DCI → PUSCH delay (slots)1–36 (typically 2–4)
N2UE PUSCH preparation time (symbols)5–36 (depends on UE cap)

Pipeline Utilization

Utilization = min(1, N_HARQ / HARQ_RTT)
If RTT = 5 slots, 16 processes → 31% utilization. If RTT = 16 slots → 100% (full pipeline). RTT > 16 slots → pipeline stall → throughput drops.


#7HARQ-ACK Multiplexing & Bundling

Multiplexing (per-process)

Each HARQ process gets its own ACK/NACK bit. Payload: [ACK, NACK, ACK] = [1,0,1]. Precise but higher overhead.

Bundling (AND logic)

Multiple ACKs are AND-combined. If any failed → NACK for all. Lower overhead, more conservative.

PUCCH FormatMax BitsUsed For
01–21–2 HARQ-ACK (no SR/CSI)
11–21–2 bits with SR
2> 2Multiple ACK + CSI + SR
3> 2Large payload (long PUCCH)

#8New Data Indicator (NDI)

The NDI is a 1-bit DCI field that toggles to distinguish new data from retransmissions:

NDI Toggle Rule

  Example HARQ process #3:
  TX #1: NDI=0 → UE: "toggled → new data" → flush buffer, decode
  TX #2: NDI=0 → UE: "no toggle → reTX"    → combine + decode
  TX #3: NDI=1 → UE: "toggled → new data"  → flush buffer, decode

#9Link Adaptation Performance Metrics

KPITargetToo HighToo Low
First-TX BLER10%>20% → MCS too aggressive<3% → MCS too conservative
Residual BLER<0.1%>1% → HARQ not recovering
ReTX Rate<15%>25% → excessive overhead<3% → wasting capacity
CQI Accuracy±1 indexMonitor vs optimal CQI (offline analysis)

#10Practical Field Considerations

PitfallImpactBest Practice
OLLA not convergedWrong MCS → reTX storm or wasted capacityMonitor OLLA offset; ±2 dB steady-state
Stale CQI in mobilityMCS mismatch → BLER spikeShort CQI period (<20 ms) for mobile UEs
K1 too smallACK timing violationVerify K1 ≥ N1 for UE capability
HARQ pipeline stallThroughput drops 20-40%Reduce K1 or add HARQ processes
Ignoring subband CQIMissing 10-30% freq-selective gainEnable aperiodic subband CQI for cell-center
Wrong BLER targetOver/under-provisioningStandard: 10% first-TX BLER

LTE vs 5G NR Link Adaptation

AspectLTE5G NR
MCS tables1 table3 tables (64QAM/256QAM/low-SE)
HARQ processes8 (FDD)16
HARQ timingFixed (4 subframes FDD)Flexible (K1/K2 per-slot)
Min HARQ RTT8 ms2-5 slots (0.5-2.5 ms)
CQI reportingPeriodic + aperiodic+ semi-persistent

#11Further Reading

3GPP Specifications

Companion Resources

Channel Coding Page → Spatial Multiplexing Page → ☆ AI Scheduling → ☆ NTN MAC →