Day objective — from “why terrestrial NR breaks over satellite” to a fully parameterized NTN-aware gNB, for both transparent and regenerative payloads.
Why Terrestrial NR Breaks Over Satellite
Two root causes — 541.46 ms of delay and 7.56 km/s of motion — break five specific NR mechanisms. Not vaguely: each break is a named protocol constant with an exact overflow factor, and one constant famously survives at GEO but dies at LEO.
| Protocol constant | Terrestrial design | NTN reality | Overflow |
|---|---|---|---|
| RAR TA command · T_A {0…3846} · TS 38.213 §4.2 | 2.0 ms ≈ 300 km cell | GEO RTD 541.46 ms | ×270 |
| ra-ResponseWindow {sl1…sl80} | ≤ 80 ms | Msg1→Msg2 ≥ 541.46 ms | ×6.8 (✓ holds at LEO) |
| HARQ pipeline · 16 processes | 8 ms in flight | needs 1,084 processes at GEO | ×68 |
| Cyclic prefix · 4.69 µs @15 kHz | multipath echoes ~1.4 km | 10.3 ms differential delay in cell | ×2,196 |
| Subcarrier spacing · 15 kHz | Doppler ≤ ~1 kHz @500 km/h | 48 kHz @2 GHz (LEO-600) | ×3.2 (✓ holds at GEO) |
- Very large propagation delay — watch the round-trip race with the real TR 38.821 milliseconds
- Two causes → five breaks → five fixes — the causal wire, every node with exact 3GPP numbers
- The assumption ledger — 7 constants stress-tested; click each for what-it-does / why-sized / symptom / fix
- RACH dies at GEO — Msg2 vs the 80 ms window, and the Rel-17 window-offset rescue
- UL orthogonality collapses — 10.3 ms of differential delay vs the 4.69 µs cyclic prefix, animated
- All five failures quantified — the orders-of-magnitude table
Discrimination is the expert skill here: the RACH timers survive at LEO-600 (25.77 ms fits) and die at GEO, while Doppler does the exact reverse — which is why NTN configuration is per-orbit, never one profile.
Timing Advance in NTN
Rel-17 turns TA into a four-term open-loop sum — TTA = (NTA + NTA,offset + NTA,adjcommon + NTA,adjUE)·Tc (TS 38.213 §4.2). The UE computes the service term itself from GNSS + SIB19 ephemeris; the network broadcasts the part the UE cannot see; the legacy 6-bit MAC CE only trims the residual.
| Term | Provided by | Scale (worst cases) |
|---|---|---|
| NTA,adjUE · service link | UE — GNSS + ephemerisInfo, open loop | 7.17 ms @LEO-600/30° = 14.1 M·T_c → 270.7 ms @GEO |
| NTA,adjcommon · RP→gNB | Network — ta-Common in SIB19 (+drift, +variant) | ≤ 270.73 ms — the field max is the GEO regenerative RTD |
| NTA,offset · duplex constant | Fixed — n25600 default (TS 38.133 T7.1.2-2) | 13.02 µs (n39936 → 20.31 µs · FR2 → 7.01 µs) |
| NTA · residual | gNB — 6-bit MAC CE, (T_A−31) steps | ±16.7 µs per command — 4–5 orders below the open loop |
| cellSpecificKoffset · scheduling | SIB19 — unit 15 kHz slots | ≈ 542 slots at GEO — why the range is 1..1023 |
- Why the standard NR TA range fails — RAR T_A tops out at 2.0 ms vs 541.46 ms, derived step by step
- The four-term equation, live — component-stack calculator with substituted values per orbit & payload
- The UE transmits slot n before it receives slot n — slot-level timelines and the K_offset causality fix
- Common TA — ta-Common, the Reference Point, and the real SIB19 ASN.1 with exact ranges
- UE-specific TA — ephemeris bit-widths carved to the physics (±43,621 km vs GEO 42,157 km)
- The 6-bit closed loop — TA Command MAC CE decoder + timeAlignmentTimer lifecycle
- TA drift & validity — why ntn-UlSyncValidityDuration starts at s5 (91 ms / 4.0 s crossings)
The strangest consequence: at GEO the UE's uplink frame timeline runs ~529 ms ahead of its downlink timeline — it transmits slot n before receiving slot n. K_offset is the scheduler's admission of that fact.
Doppler Compensation
Doppler is split by visibility: the UE pre-compensates the service link it can compute (GNSS + ephemeris); the gateway kills the feeder shift the UE cannot even see; the receiver's pilot-tracking loops absorb the few hundred Hz that remain. The subtle trap: a transparent transponder is a mixer — Doppler survives frequency conversion in absolute Hz, so the Ka feeder's shift would land on your S-band signal 10× bigger than the service link's own.
| Component | Magnitude | Compensated by |
|---|---|---|
| Feeder-link Doppler @ Ka 20/30 GHz | ±480 / ±720 kHz (24 ppm) — preserved through the mixer | Gateway pre-corrects; UE never sees it |
| Service-link Doppler @ S 2 GHz | ±48 kHz (24 ppm) = 3.2 subcarriers | UE pre-corrects UL, tracks DL |
| Doppler rate | 0.27 ppm/s — peaks at closest approach, exactly when fd = 0 | Geometry (ephemeris), not a tracking loop |
| Residual — crystal + estimation | ±0.1 ppm = ±200 Hz @2 GHz (TS 38.101-1 §6.4.1) → ICI SIR ≈ 32 dB | Receiver DMRS/PTRS tracking |
- Service-link vs. feeder-link Doppler — who compensates what, on the live wire
- The Doppler S-curve & its rate over a pass — the derivative peaks at closest approach
- UE-side pre-compensation — GNSS + ephemeris; the carrier vs the subcarrier grid, animated
- Gateway feeder correction & the mixer insight — toggle each compensator, watch the Hz that survive
- Residual Doppler & demodulation — rotating constellation + ICI SIR engine (sinc²(ε)/(1−sinc²(ε)))
Numbers to carry into the interview: 24 ppm → 48 kHz @2 GHz / 480 kHz @Ka; rate 0.27 ppm/s peaking at f_d = 0; residual budget ±200 Hz → 5.1°/symbol → SIR 32.3 dB — comfortable only because the tracking loop closes it between pilots.
Random Access & HARQ Adaptation
Two MAC survival changes. RACH: every window is stretched and the 4-step exchange takes two full round trips (over 1 second to attach at GEO) — so 2-step (msgA/msgB) matters far more than on the ground. HARQ: stop-and-wait needs Nfill = ⌈RTD/Tslot⌉+1 processes to stay busy — 1,084 at GEO — so the 32-process max is not enough and feedback is disabled per process, with reliability moving to RLC AM.
| Orbit · RTD | Nfill @15 kHz | Utilisation with 32 proc | Verdict |
|---|---|---|---|
| LEO-600 regen · 12.89 ms | 14 | 100 % | 32 processes suffice |
| LEO-600 transparent · 25.77 ms | 27 | 100 % (barely) | the only clean 32-proc case |
| LEO-1200 transparent · 41.77 ms | 43 | 74 % | feedback-off preferred |
| GEO transparent · 541.46 ms | 543 | 6 % | feedback OFF mandatory |
- The 4-step RACH — real messages — step through Msg1–Msg4 with the NTN timing change on each
- RACH latency over the void — the exchange on a true time axis; 4-step vs 2-step (halves it)
- Watch the HARQ pipeline stall — the channel fills with green slots then red idle gaps, then feedback-off unblocks it
- Why higher numerology makes HARQ worse — Nfill multiplies as the slot shrinks
- The 32-bit feedback-disable bitmap + RLC ARQ — per-process mix, and where reliability goes when blind
- The real TS 38.331 ASN.1 — nrofHARQ-ProcessesForPDSCH-v1700, downlinkHARQ-FeedbackDisabled-r17, ra-ResponseWindow
The honest trade-off: feedback-off buys 100 % link utilisation (throughput) by spending tail latency — one RLC AM retransmission costs ≈ 1 × RTD, so the unlucky ~10 % of blocks pay +541 ms at GEO. That is why NTN also enlarges the RLC/PDCP timers (t-PollRetransmit, t-Reassembly, t-Reordering).
gNodeB NTN Config — SIB19 / NTN-Config Deep Dive
NTN assistance information is broadcast primarily in SIB19. These are the core NTN-specific parameters an engineer configures and reads (per TS 38.331 NTN-Config). For the exhaustive catalogue — every field's ASN.1 type, value range, unit and spec clause — see the full IE & Parameter Reference →
- SIB19 IE tree explorer — click each field: ephemeris, ta-Common, K_offset, K_mac, validity, polarization
- NTN-Config generator — pick an orbit, get every IE computed to its spec-exact value + the ASN.1 config
- ephemerisInfo — the two formats — state-vector vs Keplerian, ranges carved to the physics (animated orbit)
- Every IE — purpose & engineer's concern + the RHCP/LHCP/linear polarization visualizer
- The real TS 38.331 ASN.1 — NTN-Config-r17, EphemerisInfo (both formats), TA-Info, verbatim
| Parameter / IE | Purpose | Engineer's concern |
|---|---|---|
| ephemerisInfo | Satellite position / velocity so UE computes TA & Doppler | Source, format & update accuracy; TLE vs. orbital params |
| epochTime | Reference time for ephemeris validity | Sync source; alignment with UE GNSS time |
| ntn-UlSyncValidityDuration | How long UL sync (TA / Doppler) stays valid | Re-acquisition cadence; tighter for LEO |
| cellSpecificKoffset | Scheduling offset absorbing the round-trip delay | Set per orbit (largest for GEO); affects all timing relationships |
| kmac | Offset for DL-to-UL frame timing on the network side | Needed when network reference differs; regenerative vs. transparent |
| ta-Common / Drift / DriftVariant | Broadcast common TA and its drift | Magnitude & drift rate per orbit; LEO needs frequent update |
| ta-Report | Whether / how the UE reports TA | Mobility & UL-sync maintenance |
| ntn-PolarizationDL / UL | Signal polarization (RHCP / LHCP / linear) | Match space segment; affects polarization loss in link budget |
IE names follow TS 38.331 NTN-Config in SIB19. Confirm exact ASN.1 against the release the client targets; vendor naming may differ.
Transparent vs. Regenerative gNB Configuration
How the same parameters are set differently depending on whether the gNB is on the ground or onboard the satellite.
- Transparent — ground gNB configured with satellite ephemeris + feeder-link compensation; SIB19 reflects the end-to-end path
- Regenerative (Rel-19) — onboard gNB; service-link timing handled locally, feeder carries N2/N3 (or store-and-forward when absent)
- Config impact on TA, Koffset, Kmac and HARQ between the two models
- RLC mode selection & RRC parameters specific to NTN
Hands-on Lab 3 — NTN-Aware gNB: Configure, Decode, Analyze
Apply a real LEO/GEO impairment profile, decode the NTN IEs on the air, and compare timing behaviour against the Day-1 terrestrial baseline.
NTN-Aware gNB: Configure, Decode, Analyze
⚡- 1Apply an NTN delay / Doppler profile (LEO & GEO) to the gNB/UE link via
netem - 2Configure NTN-aware parameters and attach the UE through the NTN profile
- 3Decode SIB19 / NTN RRC config in Wireshark; identify Koffset, common TA & ephemeris fields
- 4Observe TA behaviour & HARQ process handling vs. the Day-1 terrestrial baseline
Day 3 Assessment
The radio-layer core of NTN — timing advance, Doppler, RACH/HARQ, K-offsets and every SIB19 / NTN-Config IE. 41 questions, the course’s highest pass mark (75%).