深度学习 NTN 专区¶
笔者接触 NTN 已有一年时间, 现在由于新的项目需要, 得重新学习并更深层次地理解 NTN.
故而有了本文, 作为 "深度学习 NTN" 的读书笔记
NTN: Non-Terrestrial Networks. 非地面网络
注意, 笔者在本文正文开启前需要明确提醒: 本文不适合新手入门的小白, 它适合已经对NTN有一定基础的"初级开发者"
笔者在半年前写过不少 NTN 新手入门向教程, 本文算是 "初级开发者 -> 中级系统研究者" 的一篇教程
- 新手入门, 成长为"初级开发者":
- def(新手): RACH / LEO / NTN 只听过基础名词, 完全不清楚交互步骤和常见状态机
- def(初级开发者): 熟悉基本 NTN 流程. 可以看懂/初步参与 OpenAirInterface 的活动, 比如看懂部分 Issue/PR 在干啥
- 这一阶段, 建议参考笔者的另几篇文章入门:
- NTN Overview: 纯科普
- NTN Outlook: 纯科普
- NTN Signalings: 看完这个, 才算是实现入门
- "初级开发者" 转型成为 "中级系统研究者":
- def(中级系统研究者): 熟悉大部分 OpenAirInterface 模块源码. 能看懂并自行提出 Issue 和 PR
- 看懂本文基本就差不多了
- PS: 笔者写本文耗时5天, 这还是在AI辅助的背景下, 因此: 如果想 deep dive NTN 的话, 千万别尝试速通
- "中级系统研究者" 进化成为 "高级系统研究者":
- 不知道. 因为笔者还不是 Senior (很有自知之明...)
Warning
在2026年手写文章变得不太现实, 因此本文使用 claude 和 gemini 进行辅助写作
但笔者全程把关, 并进行了部分客制化修改
NTN 协议知识清单:
- 几何与轨道
- 轨道周期 / 仰角 / 过顶时长
- TLE
- 架构与拓扑
- REGEN vs TRANS
- service link / feeder link
- NTN 架构选项
- 三种小区几何: earth-fixed / quasi-earth-fixed / earth-moving
- gNB 是 Mono 还是 Split, 仍未定: 有观点支持 "Rel-19 选择完整 gNB 上星, 拒绝 gNB-DU 切分" 🌟
- 同步与时序
- TA 四项分解:
N_TA/N_TA,offset/N_TA,adj^common/N_TA,adj^UE ta-Common/ta-CommonDrift/ta-CommonDriftVariant三项多项式K_offset- 频率/多普勒预补偿
- GNSS 强依赖
- TA 四项分解:
- 系统信息与广播
- SIB19 全字段
ntn-Config-r17、t-Service-r17referenceLocation-r17、distanceThresh-r17ephemerisInfo、epochTime、ntn-UlSyncValidityDuration
- SIB1 部分字段
cellBarredNTN(UE 用它隐式判断 TN or NTN)
- SIB19 全字段
- 定时器与状态机
- 随机接入与 MAC
- PRACH / RAR 窗扩展
- HARQ 32 进程
downlinkHARQ-FeedbackDisabled-r17BitmapHARQ mode A/B- 盲重传
BSR→grant环受K_offset拉长
- 移动性管理
- CHO 及 NTN 特有触发:
CondEvent T1(时间)、D1(位置/距离) t-Service驱动的定时切换earth-moving cell的 NTN 条件切换- idle 态行为: TAC、小区重选、寻呼、RRC_INACTIVE 锚点迁移
- CHO 及 NTN 特有触发:
- RLC / PDCP
- RLC AM 重建
- PDCP t-Reordering、discard timer
- 核心网与接口
- 看 SpaceCore 就行
- 频谱与 RF
- FR1-NTN 与 FR2-NTN 的工作频段目前全部是 FDD -> 链路容量
ShareTechnote NTN 专区¶
原文
https://sharetechnote.com/html/NTN/NTN_WhatIsIt.html
Sec 0: What Is It¶

(1) Components:
- Satellites (GEO, MEO, LEO)
- High-Altitude Platforms (HAPS)
- balloons or drones
- support feeder/service links
- UAVs (Unmanned Aerial Vehicles)
- drones
- as relay nodes
- Links
- ISL (Inter-Satellite Link)
- Feeder Link
- GS <-> Sat / HAPS
- Air-to-Ground Link
- Airplane <-> TN (GS)
- Service Link
- UE <-> Sat / HAPS
(2) Use Cases:
- Direct to UE
- Ordinary portable devices (e.g, smartphone)
- 手机直连卫星
- IoT-NTN
- Connects IoT devices in remote areas, such as maritime vessels.
- IoT设备, 常见于远洋航行
- Air-to-Ground
- Provides connectivity for airplanes during flights.
- VSAT (Very Small Aperture Terminal)
- Used for rural connectivity or mobile stations (e.g., trucks).
- 小型终端, 比如车载
Sec 1: Why NTN¶
(1) Motivations: Why choose NTN?
文档里 brainstorm 的内容很广, 笔者就摘要一些"直击命门"的:
- Bridging the Connectivity Gap
- Remote Areas
- Maritime Coverage
- Enhanced Network Resilience
- Disaster Relief: 紧急情况下的通信服务
- Network Redundancy: 备用通信路径
- Enhanced Reliability: TN 的备用通信路径
- Backup and Redundancy: NTN 可在 TN 发生故障或中断时作为备份
- Network Flexibility: 快速扩展网络, 为特定事件或情况提供 临时覆盖
- Expanding the 5G Ecosystem
- Ubiquitous Coverage: 陆海空"无缝连接"
- New Use Cases: 远程医疗、智慧农业、环境监测
- Seamless Roaming/Handover: TN/NTN间的过渡应该是无缝衔接的, 而这只有双方都使用相同协议才能实现
- Low-Latency Satellites: LEO
- Optimized Protocols: 促进 TN 和 NTN 间流畅无缝的漫游和切换
- Unified User Experience: 不会遇到中断或需要手动切换网络
The Coverage Argument, in Numbers

正着读(覆盖)
- 要盖住澳大利亚 770 万 km², 地面要约 3300 个宏站, 每个都要征地、通电、通传输、修一条路进去
- LEO 只要同时 10 个波束
- GEO 一个波束还有富余
所以在沙漠、雨林、公海上, NTN 不是"便宜一点", 而是地面网压根建不起来
反着读(容量)
"The same table read the other way is equally instructive. A terrestrial network re-uses its spectrum at every one of those 3,300 sites, so its aggregate capacity is roughly 3,300 times the per-site capacity. The satellite beam uses its spectrum once across the whole footprint."
- 地面上: 那 3300 个站里, 每个站都在重复使用同一段频谱
- 卫星上: 那一个波束, 整块大陆只用了一次频谱
于是单位面积上可用的频谱量差了约四个数量级
NTN 赢在"每单位基础设施覆盖多少面积", 输在"每单位面积能提供多少容量"
这也顺带解释了: 为什么 NTN 从短消息起步、为什么 3GPP 里的速率指标低得可怜、为什么大家拼命把波束做小
为什么 3300 sites -> 3,300x per-site capacity
通信基础小科普
(1) 什么是频谱
无线电波是电磁波, 用频率描述它每秒振荡多少次: 1 Hz = 每秒 1 次,3.5 GHz = 每秒 35 亿次
把所有可用频率排成一条数轴,就是频谱:
- 几百 kHz 是调幅广播
- 几百 MHz 到几 GHz 是蜂窝和 WiFi
- 几十 GHz 是毫米波
这条数轴被各国监管机构切成块分配出去, 每一块就是一个频段
运营商拿到的是数轴上的一段, 比如 3.4–3.5 GHz。这一段的宽度就是 100 MHz, 这是他的"带宽" (这个是频谱带宽, 不是网络带宽)
注意这是一种被行政划分的、有限的、不可再生的资源:
频率越低, 波长越长, 绕射和穿透越好, 传得越远
但低频段早被广播电视之类占满了, 剩下的带宽都很窄
DTC 之所以要抢 700 MHz–2 GHz 这种低频段, 就是为了覆盖, 代价是只能拿到 2×5 或 2×10 MHz 这种很窄的带宽
(2) 频谱与"网络带宽"的大致关系
QPSK 每符号 2 bit, 16QAM 4 bit, 256QAM 8 bit
| Text Only | |
|---|---|
1 2 | |
再乘上 MIMO 的空间流数、扣掉信道编码和控制信令的开销, 一个 5G 扇区跑到 1 Gbps 左右就是这么来的
(3) 无线资源是3D的: 频率 / 时间 / 空间
现在回到最开始的问题: 在一个 gNB 覆盖范围内, "土地资源"这个直觉完全正确
LTE/5G NR 用 OFDMA, 把 100 MHz 切成很多窄子载波, 把时间切成很短的时隙, 于是这段频谱变成一张二维网格

调度器每 1 毫秒决定一次把哪些格子发给哪个用户
一张网格就是一个小区的全部容量
10 个用户同时看视频, 就是瓜分这些格子 (3GPP 里的最小分配单位叫RB, resource block)
在这个层面上, "管子被分掉"的直觉完全对
但是在不同 gNB 之间, 是"非干扰"的关系:
隔壁小区有一张一模一样的网格, 用的是同一段 3.4–3.5 GHz, 但它是独立的一张, 不是从你这张里切走的
原因: 信号功率衰减厉害, 60 km 外那个基站发出的东西传到你这里, 已经掉到"噪声底"以下, 你的接收机根本"听不见"它, 所以它爱怎么用怎么用
| 维度 | 怎么分 | 谁来分 |
|---|---|---|
| 频率 | 子载波 | 小区内调度器 |
| 时间 | 时隙 | 小区内调度器 |
| 空间 | 整张网格复制一份 | 地理位置,免费 |
前两维在小区内部分配, 是零和的; 第三维靠距离免费复制, 不是零和的
因此回到最开始问题出发点:
3300 个基站 = 3300 份网格拷贝 = 3300 倍总容量, 而监管机构给你的仍然只有那一段 100 MHz。这就是 3300× 的来源
(2) Where NTN Does Not Make Sense?
事实上, NTN 对很多问题都无法很好地解决, 因此一定要知道 "它的能力边界/适用范围"
下面这些场景, 其实并不太适合 NTN:
- Dense urban capacity: 城市恰恰是地面资源再利用优势最为显著的地方. 上面那个
3300x的例子就很直观! - Indoor coverage: 卫星链路在室外本就捉襟见肘的情况下,还要承受建筑物穿透损耗...
- Low latency applications: 延迟极为敏感的应用
TLDR: NTN is not a better network - it is a network that exists where the better one does not.
Sec 2: Challenges of NTN¶
这一章的信息密度其实不高: 它是一份 2021 年写的开放问题清单, 后来又补了几轮 "现在怎么样了"(2025) 的回顾
(1) List of Challenges
| 类别 | 包含哪些 | 会不会变好 |
|---|---|---|
| 物理 | 时延、多普勒、小区内差分时延 | 不会。唯一的旋钮是轨道高度, 而降轨道等于换来更大的星座规模 |
| 工程 | 天线、终端对准、星上处理、功率、切换、地面站、网管、可扩展性 | 会, 而且已经改善了不少 |
| 经济 | 发射成本、终端成本、商业模式、竞争 | 部分。可复用火箭把每公斤入轨成本压下来了, 终端成本和商业模式仍是开放问题 |
| 监管与环境 | 频谱协调、轨道管理、碎片 | 反而变难了 |
(2) What 3GPP Actually Did About These
"Almost every answer takes the same shape - move the predictable part of the problem out of the closed loop and compute it in advance."
| 挑战 | 规范怎么解 | 具体在做什么 |
|---|---|---|
| 时延撑爆协议定时器 | 调度偏移 K_offset、K_mac,响应窗和定时器起点外推,HARQ 进程数提到 32 并可逐进程关闭反馈 | 地面 NR 假定 DCI 授权到 PUSCH 的间隔远小于一个时隙。K_offset 给所有上行调度时序统一加一个偏移,让 gNB 的期望和现实对上。HARQ 那条是典型的带宽时延积问题:25 ms 往返、0.5 ms 时隙,16 个停等进程根本填不满管道,所以要么加到 32,要么干脆关掉反馈、退回 RLC ARQ 或盲重传 |
| 同小区内 UE 时延不同 | UE 在首次发射之前就用 GNSS 和广播星历自己算出 TA | 闭环在这里物理上无法闭合:RAR 里 TA 字段的取值范围只有几百微秒,离 25 ms 差着两个量级;而 3.12 ms 的差分时延又超过 PRACH 的循环前缀。所以网络干脆不去吸收这个扩散,让 UE 自己消掉,gNB 只面对很小的残差 |
| 大多普勒 | UE 用同一套星历开环预补偿服务链路,馈电链路和载荷本振的那部分由网络侧静默处理 | 就是我们上一轮说的 ±48 kHz / 15 kHz 子载波间隔的问题。分工很清楚:UE 只管自己到卫星这一段,地面到卫星那一段 UE 根本看不见 |
| 切换复杂 | 移动性从"测量触发"改成"时间和位置触发":带星历的条件切换、t-Service、邻区辅助信息 | 这是我觉得最漂亮的一处。地面网靠 A3 这类 RSRP 事件被动触发;但卫星运动是完全可预测的,那就没必要等测量 —— 直接按时刻表和地理位置执行。移动性从反应式变成了确定性调度 |
| 地面站数量和可达性 | 两条架构路线:星间链路让卫星够到远处关口站,以及再生载荷让更少的东西需要过馈电链路 | |
| 星上处理能力受限 | Rel-17 直接绕开:只把透明载荷写成规范性内容,gNB 留在地面 | 代价就是上面那张表里"透明"一列的往返时延要翻倍,因为馈电链路被算进了环路。好处是 gNB 在地上可以随时升级 |
| 天线与终端对准 | 不是靠规范解决的,而是靠限定范围:直连终端在 S 频段对着 0 dBi 手机天线工作,压根不需要对准;Ka 频段留给有方向性的 VSAT 终端 | |
| 功率受限 | 靠覆盖增强,以及在 IoT-NTN 场景直接接受极低速率 —— 而不是靠找到更多功率 |
这些具体机制先不用管, 我们后面会依次解析的~
Sec 3: Tech Requirement¶
(1) 时延需求是"物理约束", "网络优化"都建立在物理特性上
这是开篇最重要的一个观念:
- 地面网的时延需求是可以设计去达成的:
- 嫌慢: 缩队列、把功能下沉到边缘、调度更激进
- 但卫星链路的时延绝大部分不是网络造成的, 而是距离造成的:
- 协议里没有任何东西能让它变快
所以当规范给 NTN 写一条时延需求时, 它做的不是"要求系统快", 而是一件更朴素的事:
把几何已经花掉的那笔钱记下来, 然后规定网络最多还能再加多少
物理基础 + 系统优化
| 轨道 | 单向最大传播时延 | + 假定的 5G 网络时延 | = 端到端需求 |
|---|---|---|---|
| GEO | 280 ms | 5 ms | 285 ms |
| MEO | 90 ms | 5 ms | 95 ms |
| LEO | 30 ms | 5 ms | 35 ms |
需求 = 物理 + 一点点余量
那 5 ms 才是真正对系统提出的要求, 前面那一大截只是"base"
(2) 两张重要的表: TS 22.261 + TR 38.821
- TS 22.261 (Rel 18) - Table 7.4.1-1: UE to satellite propagation delay
- TR 38.821 - Table 7.1-1: NTN scenarios versus delay constraints
上面两张时延表, 乍看重复, 其实回答的是两个问题:
| TS 22.261 表 | TR 38.821 表 | |
|---|---|---|
| 出处 | 业务需求规范 | 解决方案研究 |
| 视角 | 用户视角: 你大概要等多久 | 设计者视角: 你的协议必须扛住什么 |
| 内容 | 只有总量 | 最小值、最大值、透明/再生之分、时延变化率 |
TR 38.821 多出来的三样东西, 恰好各自催生了一整套机制:
- 最小值和最大值之间的差 = 小区内差分时延
- 这就是为什么: 单一 RACH 配置不够用, 必须做逐 UE 预补偿
- 透明列正好是再生列的两倍
- 因为弯管载荷把馈电链路塞进了 UE 的无线往返里
- TRANS/REGEN 载荷类型, 在任何协议工作开始之前, 就已经改变了时延预算
- 时延变化率 (LEO 可达 ±93 μs/s)
- 这就是为什么: Timing Advance 是以带漂移项的多项式形式广播的, 而不是一个值
(3) NTN 下独有的 TA 计算: 开环计算. 而非传统 TN 的字段控制
首先先上结论: 直接基于 TN 的 RAR TA 字段不够, NTN 不准备改变 RAR TA 包的字段格式, 也是新提出并使用一套独有的 TA 计算机制
在 TN 中, RAR Response 里的 TA command 是 12 bit, 取值 0 到 3846, 映射关系是:
| Text Only | |
|---|---|
1 | |
代入最大值:
- 15 kHz 子载波间隔: 3846 × 1024 × Tc = 2.003 ms
- 30 kHz 子载波间隔: 1.002 ms
而 LEO 单向最小时延就有 3 ms, GEO 是 120 ms. 这个字段很明显完全不够用!
这里有两条直观路径:
- 加宽它: 完全不行, 很蠢
- 一个能装下 GEO 的字段, 放在地面场景里荒谬得可笑
- 提出新的机制: NTN 下的 TA 开环控制
- 只剩一条路: 把定时校正的大头从闭环里搬走, 改成 UE 用 GNSS 开环预算
- 原本 RAR 那个字段只留着修很小的残差
(4) Rel-17 到底改了什么: 几乎没有新空口
这一节会让期待"新链路需要新无线技术"的人, 感到意外与失望...
波形还是同样的 OFDM, 信道编码还是 LDPC 和 Polar, 帧结构一样, 消息名字也和地面小区一模一样
Rel-17 没有设计卫星空口, 它是把现有 NR 空口拿来, 逐项推演"距离从几公里拉到几万公里之后什么会坏", 然后给每一处坏掉的地方加上 minimized patch
这个选择是特意的, 而且直接来自 NTN 存在的理由:
把卫星放进 3GPP 的价值, 就在于结果仍然是同一张网、同样的设备、同样的核心网和同样的签约
所以在 3GPP 中看到关于 NTN 的讨论, 基本上都是一堆偏移量、定时器、有效期和新字段, 而不是一堆新技术:
| 新场景下的需求是什么 | Rel-17 如何解决问题 |
|---|---|
| 时延远超 RAR TA 字段能表达的范围 | 强制 UE 具备 GNSS, 首次发射前自行预补偿 TA |
| 时延的公共部分 UE 不知道 | ta-Common 带漂移项和漂移变化项 (SIB19 里的 ta-Info-r17), UE 自己外推而不是等下一条 SIB |
| TA 过大导致 UL 调度变得非因果 | cellSpecificKoffset, 以及用于 MAC CE 生效时刻的 kmac |
| 长往返导致 HARQ 停摆 | 最多 32 个 PDSCH 进程、NTN 专用的 PDSCH-to-HARQ-ACK 时序 (DL-DataToUL-ACK-v1700)、逐进程关闭反馈(downlinkHARQ-FeedbackDisabled-r17) |
| 响应窗和定时器在回复到达前就 timeout | 给 ra-ResponseWindow、msgB-ResponseWindow、ra-ContentionResolutionTimer 加起始偏移,让 UE 不在物理上必定无回复的时段白听 |
| 辅助数据随卫星移动而过期 | epochTime 加 ntn-UlSyncValidityDuration, 由定时器 T430 强制执行, 超时即判定 UL Sync Failure |
| doppler 超出接收机捕获范围 | UE 用同一套星历预补偿 service link, feeder link 由网络静默处理 |
| 小区不断被替换还要保 99.99% | 基于时间和位置的移动性, 进行"确定性预计算/连接": t-Service、referenceLocation、distanceThresh、邻区星历 |
| 网络不再测量绝对时延 | ta-Report, 由 UE 上报自己实际施加了多少 TA |
后续版本是延续而不是转向:
- Rel-18:
- 把 NTN 扩展到 10 GHz 以上的 FR2-NTN 频段, 改善手持终端覆盖
- 加入网络验证的 UE 位置
- 改进 NTN-TN 与 NTN-NTN 移动性管理
- Rel-19:
- 继续做 NR-NTN 和 IoT-NTN 增强
- 透明载荷始终是规范性基线, TR 38.821 里的再生场景只被描述, 没有被 profile
拓展讨论: HARQ 那笔账
作者把自己 2021 年写的两处存疑拿出来复盘, 这一段很有意思, 值得细看
2021年的疑问1: 32 个进程够不够?
HARQ 是逐进程停等的, 所以只有当 进程数 × 时隙长度 ≥ 往返时延 时, 发送才能保持连续
在 15 kHz 配置下, 一个时隙是 1 ms, 所以 32 个进程买到约 32 ms 的流水线深度
对照 TR 38.821 的往返数字:
| 场景 | 往返时延 | 32 进程够吗 |
|---|---|---|
| LEO 600 km 再生 | 12.89 ms | 够, 甚至只需要 16 个即可 |
| LEO 600 km 透明 | 25.77 ms | 刚好够, 处理时间没有任何余量 |
| LEO 1200 km 透明 | 41.77 ms | 不够 |
| GEO 再生 / 透明 | 270.73 / 541.46 ms | 需要几百个进程, 每个都要占一块软缓冲。手机里做不出来, 做出来也没用 |
结论: 把进程数提到 32 只救得了 LEO, 而且只是 LEO
还有个细节在支持 32 进程
选 32 不是随意的:
downlinkHARQ-FeedbackDisabled-r17 是一个 BIT STRING (SIZE (32))
一个进程一位, 这两个特性共同定下 32 的
2021年的疑问2: 干脆不要 HARQ, 交给高层重传?
作者当年猜"会有人试", 猜对了, 而且 Rel-17 做的比"去掉"更精细
机制就是 downlinkHARQ-FeedbackDisabled-r17 字段:
逐进程关闭上行 HARQ 反馈, 而不是整个小区关!
关掉反馈的进程永远不等待, 可以立刻复用, 流水线就不会停. 传输的可靠性交给 RLC AM 兜底
做成逐进程而不是全局, 原因是:
这样, 网络可以在承载信令的进程保留反馈, 在承载大块数据的进程关掉, 控制面可靠性不受影响
当然, 这样肯定也会有代价
可靠性上移到 RLC AM, 而 RLC 的重传环路更长, 所以链路自适应必须更保守, 尽量别走到需要重传那一步
这个权衡留给网络逐进程去做! 这就是为什么规范给的是一个 bitmap, 而不是一个"全局开关"
Sec 4: NTN Spectrum¶
文章内容¶
(1) FR-1/2 两个频率范围
| 名称 | 范围 | 备注 |
|---|---|---|
| FR1-NTN | 410 – 7125 MHz | 被其他规范引用时, 当作 FR1 频段处理 |
| FR2-NTN | 17300 – 30000 MHz | 被其他规范引用时, 当作 FR2-1 频段处理, 除非另有说明 |
NTN 频段不是一套平行体系, 而是挂在既有 FR 框架下的!
其他规范里所有按 FR1/FR2 分叉的行为直接复用, 这和上一章 "几乎没有新空口" 是同一个思路
(2) FR1-NTN: 细分成 n256/255/254 三个频段
| 频段 | UL (UE 发) | DL (UE 收) | 各自带宽 | 双工 |
|---|---|---|---|---|
n256 |
1980 – 2010 MHz | 2170 – 2200 MHz | 30 MHz | FDD |
n255 |
1626.5 – 1660.5 MHz | 1525 – 1559 MHz | 34 MHz | FDD |
n254 |
1610 – 1626.5 MHz | 2483.5 – 2500 MHz | 16.5 MHz | FDD |

编号规则: NTN 卫星频段从 n256 开始倒着往下数。所以下一个新频段会是 n255、n254, 而不是 n257.
注意
- n255 的 DL 频率低于 UL
- 这和地面网的习惯相反. 非常例外, 要小心
- n254 的上下行根本不在同一个波段:
- 上行在 L 波段 1.6 GHz
- 下行在 S 波段 2.48 GHz
- 相隔近 900 MHz. 这在 3GPP 频段里非常罕见!
这三个频段的来源 + 历史包袱
3GPP 没有拿到任何新频谱!
这三个都是 ITU 早就划给移动卫星业务(MSS)的既有分配, 原本就握在 "传统卫星运营商" 手里:
- n255
- 是 L 波段 MSS
- 历史上属于 Inmarsat / Ligado 一系
- n254
- 是所谓 Big LEO 频段
- Globalstar 用的就是它
- n256
- 是 2 GHz MSS
- 历史上归 ICO / TerreStar / EchoStar 一脉
所以, 上述三个频段的怪异形状 (反向双工、上下行跨波段) 不是 3GPP 设计出来的, 是直接继承来的历史包袱
(3) FR2-NTN: 细分成 n512/511/510 三个频段
其实是一个频段被监管切成了三份
| 频段 | 上行 | 下行 | 适用范围 |
|---|---|---|---|
| n512 | 27500 – 30000 MHz | 17300 – 20200 MHz | 适用 CEPT ECC Decision (05)01 和 (13)01 的国家 |
| n511 | 28350 – 30000 MHz | 17300 – 20200 MHz | 适用 FCC 47 CFR Part 25 的国家 |
| n510 | 27500 – 28350 MHz | 17300 – 20200 MHz | 美国的 GS 运营, 且 FCC 规则目前不包含该频段的 ESIM 运行 |
三个频段的下行完全相同, 只有上行不同!
它们在技术上不是三个频段, 而是同一块 Ka 频谱被不同监管辖区切开!!!
n511 和 n510 拼起来正好等于 n512
n510 那条注释值得留意
ESIM 指运动中的地球站(船舶、飞机、车载)
FCC 规则目前不覆盖这个频段里的 ESIM, 意味着: 这一片只能给固定 GS 用
(4) 注意
-
这些全是 service link 频段 (aka.
UE-Sat)- 指的都是
UE-Sat这一段 - feeder link (
GS-Sat) 完全不在 3GPP 范围内:- 通常跑在
Ka/Q/V波段, 由卫星运营商 (如 Starlink) 自己定!!!
- 通常跑在
- 指的都是
-
上面这张表已经 will be out of dated 了
- 页面钉在 V19.0.0, 但频段列表一直在长:
- 已经有厂商演示过 n252 频段上的 Rel-19 NR-NTN 连接, 而
n252不在这张表里 - 也有资料把 FR1-NTN 的范围写到 14500 MHz、FR2-NTN 写到 10.7 GHz 起
- 已经有厂商演示过 n252 频段上的 Rel-19 NR-NTN 连接, 而
- 要权威列表, 还得去查当前最新版本的 38.101-5
- 页面钉在 V19.0.0, 但频段列表一直在长:
最新业界进展对齐¶
本章节直接读完原文, 笔者认为有一处"最需要警惕的地方":
按这张表去理解 Starlink 和 AST 在做的事, 会完全对不上
现在业界实际上存在两条平行的直连路线:
| MSS 路线 | 地面频谱路线 | |
|---|---|---|
| 用什么频谱 | 就是这张表里的 n254/n255/n256 | 运营商既有的地面移动频段 |
| 谁在走 | 3GPP NTN 规范体系 | Starlink×T-Mobile、AST SpaceMobile |
| 优势 | 监管环境稳定、干扰风险低、有 3GPP 技术规范背书 | 可以直接复用成熟的地面终端生态 |
| 代价 | 3GPP NTN 仍处早期, 支持这些能力的终端还很少 | 需要复杂的干扰管理和艰难的监管协调 |
Starlink Mobile 用的是划给地面移动的频段, 大致在 800–2000 MHz, 以便直接和未改装手机里的 LTE/NR 芯片对话
这套东西在美国靠的是 FCC 的 SCS 框架(允许地面频谱持有者从卫星上使用自己的频谱), 不在这一页的频段表里
Warning
这正好接上 Challenges 那章提到的 "D2C 频谱共存是全新的监管难题"
因为: 卫星波束不会在国界停下, 而地面频谱是按国家划分的
Sec 5: NTN Architecture and Scenario¶
(1) 架构
NTN 由三段组成:
- 空间段: Satellite / HAPS
- 地面段: NTN Gateway / gNB / 5GC
- 用户段: 手机 / VSAT / 中继终端
三段之间靠两条主链路连接:
- 服务链路 (service link):
- Satellite <-> UE
- 用 NR 空口
- 馈电链路 (feeder link):
- Satellite <-> Gateway
- 再生星座还可以加星间链路 ISL
(2) 两种模式: TRANS vs REGEN
两者本质上只差一件事:gNB 在地面还是在星上
透明 (TRANS / Bent-pipe)
- 卫星只做变频和放大,相当于挂在天上的射频拉远头
- 馈电链路上传的就是 NR 波形本身,所以 UE 的空口要跨服务和馈电两段,时延翻倍(GEO 往返 541 ms)
- 馈电链路的带宽必须装下所有波束的总带宽
- 好处是: 卫星简单,gNB 在地面可以随时升级
再生 (REGEN)
- 卫星自己解调解码,本身就是基站
- 空口只到卫星为止,时延减半(GEO 往返 271 ms)
- 馈电链路传的是核心网流量
- 带宽只需匹配实际吞吐,而且可以用 ISL
- 代价是: 星上复杂,硬件发射后就冻结了
规范进度
- Rel-17/18 只规范了透明模式
- Rel-19 引入了再生载荷, 做法是把完整的 gNB 放到卫星上
(3) Earth-fixed vs Earth-moving 波束/小区
这个选择决定: 小区是固定在地面上,还是以约 6.9 km/s 的速度扫过地面
Earth-fixed (GEO 天然如此)
- 卫星转动波束, 一直盯住同一块区域
- 在 UE 看来小区不动, 移动性接近地面网络
- 但 LEO 只能盯住一个地方几分钟, 之后整个小区要切到下一颗星
- 这叫 "准地面固定小区" (quasi-Earth-fixed cell)
- 切换时刻可以由星历算出来, 所以用基于时间的条件切换
Earth-moving
- 天线不转, 载荷最简单! 但小区自己在移动
- 静止的 UE 大约每两分半钟也要切换一次
- 同一颗星的相邻波束 RSRP 差不多!!!
- RSRP 分辨不出该切到哪个, 只能靠位置或时间来触发
- 跟踪区码也要随小区扫过而变化
适用场景: 固定小区适合宽带和语音, 移动小区适合 IoT 和短消息
(4) REGEN Function Split
"gNB 上星" 有两种做法:
- 整机上星: 整个 gNB 都放在卫星上
- 只放 DU:
- DU(PHY/MAC/RLC)上星
- CU(PDCP/SDAP/RRC)留在地面
- 两者之间走
F1接口
看看二者的 Trade-Off:
整机上星:
- RRC 在轨决策,信令不用下地
- 每颗星都是一个独立基站:
- 星间切换是基站之间的切换
- 需要 ISL 来传 Xn 接口信令
- 星上负担重
只放 DU:
- 星上负担轻
- 挂在同一个 CU 下的星间切换只是换 DU,信令轻
- 核心网也只看到少数几个 gNB
- 代价是:
- 每条 RRC 消息都要多跨一次馈电链路
- CU-DU 连接不稳定
(5) Feeder Link Switch-over and Service Link Switch
在 LEO 场景下,链路两端都在换,而且两种切换都可预测:
服务链路 (Service Link) 切换:
- UE 从一颗星换到下一颗,相当于 NTN 版的切换
- 星历已知,所以用基于时间或位置的条件切换
- 所需的星历信息由
SIB19广播
- 所需的星历信息由
馈电链路 (Feeder Link) 切换:
- Satellite 看不到当前 Gateway 了,要换一个网关
- 地面网络里没有对应的情况
- 透明模式下很麻烦:
- gNB 在网关后面! 如果换网关, 就基本等于换 gNB
- 即使没有任何 UE 移动,小区也会变
- 再生模式下温和:
- gNB 跟着卫星走,只需迁移回传链路
- 如果两个网关有短暂重叠,UE 可以完全无感
- 有 ISL 时:
- 流量可以经邻星转到有网关可见的那颗星,这是装 ISL 的主要理由
Sec 6: RACH in NTN¶
这一部分原文讲解的非常不清晰, 甚至全网我也没看到能"深入浅出讲解 NTN 机制及其设计原理"的文章.
因此, 在广泛搜集、整理完 RACH 部分后, 笔者决定在这里重写一份:
侧重点: LEO + TRANS + "UE 已知 GNSS"
每个步骤的写法:
- 问题是什么
- 跟地面网络差别在哪?
- 为什么不能直接复用地面网络的机制?
- NTN 准备如何解决(方法论)
- NTN 实际如何解决(方法科普)
Warning
这一部分 非常 非常 非常 重要!
甚至可以毫不夸张的说: 看完这一部分, 后面的 Sec 7 + 8 应该可以轻松过~
预备知识 1: 为什么上行信号要"对表"¶
(1) 5G 的上行是集中调度的时分复用,不像 Wi-Fi 那样谁空闲谁发:
时间被切成等长的时隙(slot), 由 gNB 规定每个 UE 在哪个时隙、哪段频率上发送
gNB 同时接收很多 UE 的信号,要求它们都恰好在时隙边界到达
如果某个 UE 的信号晚到,就会拖进下一个时隙,和别人的信号叠在一起,谁都解不出来
Tip
可以类比成一条共享总线上的 TDMA:
接收端按固定节拍取数据,发送端离得越远,就必须越早发
(2) 容错空间非常小, 因此会有 CP 这个设计:
每个符号前面有一小段保护间隔,叫循环前缀(CP)
到达时间的偏差只要落在 CP 以内就能容忍
普通数据符号的 CP 只有约 4.7 微秒
(3) TA(Timing Advance,定时提前) 就是 UE 需要提前发送的时间量
它等于往返时延,而不是单程时延,原因:
- UE 没有独立的时间基准!
- UE 的"时钟"是从 gNB 的下行信号里恢复出来的
- 下行信号到达 UE 时已经晚了一个单程时延 d,所以:
- UE 认为的 "0 时刻",实际是 gNB 的 d 时刻
- UE 按自己的钟发出的信号,还要再走 d 才能到 gNB,前后一共晚了 2d
所以: TA ≈ 2d = RTT
预备知识 2: 随机接入(RACH)是什么¶
UE 刚开机时,网络还不认识它,没有给它分配任何资源或地址,它只能靠"抢"来发出第一条消息
这个过程叫随机接入,形式上很像 TCP 握手加上 slotted ALOHA 的冲突处理,一共四步:
- Msg1:发送前导码(preamble)
- 前导码不是带头部的数据包,而是一段事先约定好的特殊波形
- gNB 靠模式匹配就能认出它,还能测出它到达的精确时刻
- UE 从 64 种前导码里随机挑一个发出去,相当于"敲门"
- 允许敲门的时间点是周期性的固定时隙,叫 RO(RACH Occasion)
- 前导码不是带头部的数据包,而是一段事先约定好的特殊波形
- Msg2:随机接入响应(RAR)
- gNB 回复"我听到了第 X 号前导码",同时下发三样东西:
- 该 UE 应该使用的 TA
- 下一步发送要用的上行资源,叫授权(grant)
- 一个临时 ID,类似 DHCP 临时分配的地址
- gNB 回复"我听到了第 X 号前导码",同时下发三样东西:
- Msg3:连接请求
- UE 用分到的资源发送连接请求,里面带着自己的身份标识
- Msg4:竞争解决
- 如果两个 UE 恰好挑了同一个前导码,它们会收到同一个 RAR,并在同一块资源上发 Msg3
- 而: gNB 最多只能解出其中一个
- Msg4 会回显 gNB 解出的那个身份标识:
- 回显的是谁,谁就赢了
- 另一个 UE 重新来过
- 如果两个 UE 恰好挑了同一个前导码,它们会收到同一个 RAR,并在同一块资源上发 Msg3
地面网络中的 TA 是在 Msg1 这一步由 gNB 测出来的:
- UE 不做任何补偿,直接发前导码
- gNB 看它比 RO 起点晚了多少,就得到了这个 UE 的 RTT
- 再通过 Msg2 告诉 UE
后面 NTN 的所有改动, 都是因为上述做法在 LEO 下失效了
TLDR: RACH 分成四步¶

- Step 1: Initial TA Estimation
- UE Timing Advance Estimation and Application
- Step 2: TA Correction
- Timing Advance Correction via Msg2
- Step 3: Scheduling with Uncertainty
- Scheduling of Msg3
- Step 4: Final Synchronization
第 1 步: 接入前的准备¶
(1) 问题
时延问题: 地面 UE 不需要知道自己离基站多远,因为网络会在 Msg1 时替它测出来
LEO 下这个测量做不了(原因见第 2 步),所以 UE 必须在第一次发送之前,就自己知道该用多大的 TA
频率问题: 卫星以约 7.56 km/s 的速度运动,信号会产生多普勒频移
- 在 2 GHz 频段、600 km 轨道下,频偏最高约 48 kHz
- 5G 信号由许多间隔 15 或 30 kHz 的子载波并排组成
- 48 kHz 的频偏相当于整体错开了一两个子载波,gNB 按标准频率去解调,完全对不上
- 地面 UE 移动慢,多普勒小到可以忽略,所以地面网络没有这个问题
(2) 思路
卫星轨道可以精确预测。只要 UE 知道自己在哪、卫星在哪,就能直接算出两者的距离(得到时延)和相对速度(得到频偏),不需要测量
因此,不用 ping,直接根据基于几何坐标算出 RTT
(3) 实际做法
[3.1] 两端的位置从哪来
- UE 的位置: 来自 GNSS(GPS、北斗等)
- 这正是 Rel-17 强制要求 NTN 终端必须具备 GNSS 的原因
- 卫星的位置: gNB 在广播消息
SIB19里下发星历- SIB 是基站周期性广播的系统信息,相当于 beacon("信标"),UE 不需要建立连接就能收到
- SIB19 是专门为 NTN 新增的一块
- 星历就是卫星的轨道参数,作用类似 TLE,并附带一个参考时刻(
epochTime)- UE 据此可以 "外推" 出: 卫星在任意时刻的位置和速度
- SIB 是基站周期性广播的系统信息,相当于 beacon("信标"),UE 不需要建立连接就能收到
[3.2] 时延分两段计算
透明载荷下,信号的路径是 UE → 卫星 → GW → gNB,时延可以拆成两段:
| 路段 | 特点 | 由谁计算 | 名称 |
|---|---|---|---|
| service link (UE↔Sat) | 每个 UE 位置不同,时延也不同; 单程约 2 ms(卫星在头顶)到 6.4 ms(卫星在低仰角) | UE 自己算 | UE-specific TA |
| feeder link (Sat↔gNB) | 同一颗卫星下的所有 UE 都一样 (都是同一个sat-gNB链路); UE 不知道网关在哪,且网关还会切换 | 网络算好后在 SIB19 广播 | Common TA |
两段相加就是:
TA 总量 = UE-specific TA + Common TA
LEO 600 km 透明架构下,这个值最大约 26 ms
严格来说
Common TA 描述的是卫星到某个 "参考点"(Reference Point, RP) 的时延
这个参考点不一定在 gNB!
此时网络会再用一个叫 K_mac 的参数补上差值
理解主线时, 把参考点当作 gNB 就行. 不用纠结!
[3.3] 频偏:
UE 根据 卫星相对自己的速度 算出多普勒频移,发送时主动把频率反向调好,让信号到达卫星时正好落在标准频率上
这叫: 频率预补偿
两个配套设计
- 漂移率:
- 卫星和网关之间的距离也在变化,所以 Common TA 会随时间改变
- SIB19 除了给出当前值,还给出它的变化率
- UE 可以在两次读取广播之间自行外推,不必频繁重读
- 有效期:
- 外推的误差会随时间累积,所以这些信息有"有效期"
- UE 用定时器 T430 来计时:
- 一旦过期,UE 就认为自己"上行失步": 必须停止发送,重新读取 SIB19
- 可以类比缓存的 TTL
Danger
这也就是为什么:

Msg1 开始之前, 叫做 UE estimates and applies TA
第 2 步: Msg1 - 发送前导码¶
(1) 问题
地面的做法是 UE 不做补偿直接发送,由 gNB 测量到达时间
这个方法能成立,依赖两个前提:
- 同一个 RO 里,远近不同的 UE 的前导码到达时间差,不超过前导码的 CP
- 前导码的 CP 比数据符号长得多,常用的格式约 0.1 ms
- 对应的地面小区半径上限约 15 km
- 这个到达时间差远小于相邻 RO 之间的间隔
- 否则 gNB 分不清某个前导码属于哪个 RO
在 LEO 下,这两个前提都不成立:
- 绝对时延太大
- RTT 高达约 26 ms,前导码可能迟到好几个 RO 周期
- gNB 会把它当成后面某个 RO 发来的,从而算出错误的 TA
- 时延差也太大
- 即使 gNB 知道大家整体都晚了约 26 ms,一个 LEO 小区的尺寸动辄几十到几百公里
- 小区内不同位置的 RTT 差仍在毫秒级
- 例如 200 km 的小区约为 1.3 ms,是 0.1 ms CP 的十几倍,前导码依然检测不出来
- 这个时延差大约等于 2 × 小区直径 / 光速,主要由小区大小决定
- 即使 gNB 知道大家整体都晚了约 26 ms,一个 LEO 小区的尺寸动辄几十到几百公里
(2) 思路
把"测量时延"的责任从网络转移给 UE
UE 在第 1 步已经算出了自己的 TA,发送前导码时就直接提前这么多
这样无论 UE 位于小区的哪个位置,它的前导码到达 gNB 时都应该正好对齐 RO 边界
(3) 实际做法
- UE: 按 TA 总量提前发送,频率也已经做过预补偿
- 前导码本身的格式和地面网络完全相同
- gNB:
- 沿用地面的检测方法,测量前导码比 RO 边界早或晚了多少
这个测出来的偏差就是残差 (\(T_{Scheduled} \minus T_{UE to gNB arrival}\)):
- UE 自己的估算不可能完全准确:
- GNSS 定位有误差,星历外推也有误差
- 补偿之后剩下的那一点偏差,就叫残差
- 残差远小于 CP,所以地面的前导码格式和检测方法可以直接复用
- 类比:
- UE 靠 GPS 完成粗同步,gNB 负责最后的精细校准
这一步带来根本变化
- 在 TN 里,gNB 从前导码中测到的是 UE 的完整 RTT
- 在 NTN 下,gNB 只能测到残差,UE 的完整时延它再也看不到了
这个副作用在第 4 步处理,这里先埋下伏笔
为什么 gNB 只能测到残差¶
因为 gNB 无法知道前导码是什么时候发出的,它只能看到前导码比约定时刻晚到了多少
在 LEO 下,UE 已经按自己算出的时延提前发送了,这个"晚到多少"里就只剩 UE 没算准的那一点。
UE 到底提前了多少,前导码里没有写,gNB 也算不出来
(1) gNB 实际能测的是什么
前导码只是一段约定好的波形,没有包头,也没有发送时间戳
gNB 手里只有两个信息:
- 这个 RO(允许发前导码的时刻)本该从哪一刻开始,这是 gNB 自己定的
- 即: 前文提到的 $\(T_{Scheduled}\)
- 前导码实际在哪一刻到达
(2) LEO: 每个 UE 私下提前了不同的量
假设同一小区里有两个 UE。网络广播的 Common TA 为 8 ms,两个 UE 的估算都比真实值短了 0.01 ms:
| UE-A(离卫星近) | UE-B(离卫星远) | |
|---|---|---|
| 真实往返时延 | 18.00 ms | 19.20 ms |
| UE 自己算出并提前的量 | 17.99 ms | 19.19 ms |
| gNB 测到的值 | 0.01 ms | 0.01 ms |
两个 UE 的真实时延差了 1.2 ms,但在 gNB 看来完全一样,都是"晚到 0.01 ms"
时延的大头在发送前已经被 UE 自己的提前量抵消掉了,gNB 从到达时刻上看不出任何痕迹
Tip
这就像会议约定 9:00 开始,每个人根据自己的路程提前出发
主持人只能看到谁准点、谁晚到一分钟,看不出张三路上走了一小时还是十分钟
(3) 更准确地说,看不到的是哪一部分
TA 由两部分组成:
- Common TA(馈电链路部分)
- 这是 gNB 自己在 SIB19 里广播的,它自己当然知道
- UE-specific TA(服务链路部分)
- 由 UE 的位置决定,gNB 不知道
所以准确的说法是: gNB 看不到每个 UE -> Sat 的那段时延
(4) 所以才需要 TA Report
详见第 4 步
既然 gNB 测不出来,就只能让 UE 主动上报!
UE 在 Msg3 里附带 TA Report, 告诉 gNB "我提前了 X".
这样 gNB 就能恢复完整时延:
完整时延 = 上报的提前量 X + 测到的残差
Msg3 是正常的数据传输,有载荷空间,所以能放下这个数值。前导码则放不下
第 3 步: Msg2 - 等待 RAR¶
(1) 问题
地面上:
UE 发完 Msg1 后,会立即打开一个接收窗口(ra-ResponseWindow)等待 RAR,窗口最长 10 ms
这是因为地面的 RTT 不到 1 ms,回复几乎马上就到
在 LEO 下:
RAR 最早也要经过一个 RTT(约 26 ms)才能到达
如果照搬地面做法,窗口在回复到来之前就关闭了,UE 会误以为接入失败
为什么不直接把窗口拉长:
窗口打开期间,UE 必须一直开着接收机,在每个时隙里去检测下行控制信道(PDCCH,gNB 用来下发调度信息的信道),看有没有发给自己的消息
这相当于忙轮询(busy polling),非常耗电
而前 26 ms 内回复在物理上根本不可能到达,这段时间的监听纯属浪费
(2) 思路
UE 已经知道自己的 RTT(就是它的 TA),真正不确定的只有残差
所以窗口不需要加宽,只要整体往后平移一个 RTT 就够了
(3) 实际做法
- UE:
- 发完 Msg1 后, 先等待一段"UE 到 gNB 的 RTT 估计值" (约等于它 当前的 TA 总量)
- 然后再打开正常长度的接收窗口
- gNB:
- 回复的 RAR 内容和地面网络一样
- 其中的
TA command在 LEO 下, 只用来修正第 2 步测到的残差, 因此数值很小 - 这个来自 gNB 的残差, 也叫做修正量
- UE:
- 收到 RAR 后,把这个修正量叠加到自己的 TA 上
Danger
这也就是为什么:

Msg2 结束, 叫做 correction of TA
第 4 步: Msg3 - 发送连接请求¶
(1) 问题
Problem 1: 因果性被破坏
5G 上行授权的时间规则是:gNB 在下行第 n 个时隙发出授权,要求 UE 在上行第 n+K 个时隙发送。这里的 K 是一个很小的固定偏移,只有几个时隙(1 个时隙 = 1 ms)。UE 实际发送的时刻,还要比这个时隙再提前 TA。
- 地面网络:
- TA 最多约 2 ms,而 K 有好几毫秒,所以 UE 收到授权后还有时间准备发送
- 时序没问题
- LEO: TA 约 26 ms,远大于 K
- 例如 K = 4 ms、TA = 26 ms 时,UE 需要在 n + 4 − 26 = n − 22 ms 发送
- 也就是说: UE 得在收到授权的 22 ms 之前就开始发, 而这是不可能的!!!
Problem 2: 网络看不到 UE 的真实时延
经过第 2 步,gNB 只知道每个 UE 的残差,不知道完整时延。但网络在很多地方需要这个信息。例如下面要介绍的 Koffset 是按小区里最坏的情况设置的,对离卫星近的 UE 来说过于保守,会白白增加调度时延。
(2) 思路
- 解决因果性 (Problem 1):
- 给所有 "收到授权 → 上行发送" 的时间关系,统一加上一个足够大的偏移
- 以保证: UE 一定是先收到授权、再发送
- 上面那个
n + 4 − 26就是个很直观的例子
- 解决信息缺失 (Problem 2):
- 网络测不到,就让 UE 主动上报
(3) 实际做法
采用 Koffset:
SIB19广播一个小区级偏移cellSpecificKoffset- 它的取值不小于 小区内可能出现的最大 TA
- 之后所有上行调度时刻都变为 n + K + Koffset
- 沿用上面的例子: 取
Koffset= 30 ms - 发送时刻 = n + 4 + 30 − 26 = n + 8 ms
- 使得: 发生在收到授权之后, 因果性恢复
- 沿用上面的例子: 取
- 这条规则不只作用于 Msg3
- 连接建立之后,所有上行调度和反馈的时间关系都要加上
Koffset
- 连接建立之后,所有上行调度和反馈的时间关系都要加上
采用 TA 上报:
- 如果网络开启了该功能:
- UE 会在 Msg3 里附带一条 TA Report MAC CE,把自己当前使用的 TA 告诉 gNB
- MAC CE 是 MAC 层的控制字段,可以理解为夹带在数据里的一小段控制信息
- 网络由此重新获得这个 UE 的完整时延:
- 完整时延 = UE 上报的提前量 + 第 2 步测到的残差
- 进入连接态后:
- gNB 可以给这个 UE 单独下发一个更小的
Koffset,减少不必要的等待 - 当然, 这属于后续优化了, 跟主线没关系
- gNB 可以给这个 UE 单独下发一个更小的
Danger
这也就是为什么:

Msg3 结束, 叫做 Network receives the UE-specific full TA
第 5 步: Msg4 - 等待竞争解决¶
(1) 问题
地面上: UE 发完 Msg3 后,会立即启动竞争解决定时器,在定时器运行期间等待 Msg4,超时就判定失败
在 LEO 下: Msg4 同样至少要经过一个 RTT 才能到达,这会让 UE 陷入两难:
- 如果定时器按地面的值配置,前 26 ms 会被 RTT 白白耗掉,容易被误判为超时
- 如果把定时器配得很长,UE 又要长时间忙轮询,耗电严重
(2) 思路
和上面第 3 步完全相同: 不拉长,而是平移!
(3) 实际做法
UE 发完 Msg3 后,先等待一个 RTT 估计值,再启动定时器,定时器的长度保持正常值
收到 Msg4 后,UE 核对其中回显的身份标识,如果一致,就表示接入成功,进入连接态
第 6 步: 连接后保持上行同步¶
(1) 问题
地面 UE 移动缓慢,TA 变化也慢,gNB 偶尔下发一条 TA 调整命令就能跟上,这是一种闭环控制
LEO 卫星始终在高速运动,时延的变化率最高约 ±93 微秒/秒。而数据符号的 CP 只有约 4.7 微秒,不到 0.1 秒累积的偏差就会超出容忍范围
如果完全依赖 gNB 下发命令来追踪:
- 命令必须发得非常频繁,信令开销很大
- 每条命令本身还要经过一个 RTT 才能生效,天然滞后,根本跟不上
(2) 思路
可预测的大部分变化由 UE 开环自行跟踪,不可预测的小误差交给网络闭环修正
这和接入阶段的分工是一致的
(3) 实际做法
- UE:
- 持续用 GNSS 和星历重新计算 UE-specific TA 和频率预补偿
- 用 SIB19 给出的漂移率外推 Common TA
- 同时监视 T430,有效期一到就停止上行发送,重新读取 SIB19
- gNB:
- 照常用 TA command 修正残差. 下发告诉 UE "修正量"
总结 RACH: TN 与 NTN¶

| 地面网络 | LEO NTN | |
|---|---|---|
| 时延信息从哪来 | gNB 在 Msg1 测出 | UE 用 GNSS + 星历自算 UE-specific TA (服务链路); 网络广播 Common TA (馈电链路部分) |
| gNB 从前导码测到什么 | 完整 RTT | 只有残差 |
| 何时开始等回复 | 发完立即开窗、立即启动定时器 | 先等一个 RTT,再开窗、再启动定时器 |
| 上行调度时刻 | n + K | n + K + Koffset |
| 网络如何得知 UE 时延 | 自己测出 | UE 主动上报(TA Report) |
| 连接后如何保持同步 | gNB 闭环命令 | UE 开环自算为主,gNB 闭环修正残差 |
常见错误原因
官网里的这部分总结归纳还挺好的
建议熟悉一下这些常见 error 的类型, 自己推测一下原因。然后再对照它的答案
个人认为: 很有利于巩固对上述 Msg1-4 全过程交互的理解

Sec 7: NTN TA - Timing Synchronization¶
Tip
在深刻理解完上述 Sec 6 后, 本章应该易如反掌.
笔者在这里采用 "Go Through" + "Philosophy rather than Techniques" 的方式展开本章的撰写.
每个步骤的写法:
- 问题是什么
- 跟地面网络差别在哪?
- 为什么不能直接复用地面网络的机制?
- NTN 准备如何解决(方法论)
- NTN 实际如何解决(方法科普)
预备知识: LEO 的时延难在哪¶
(1) TA 回顾 (详见 Sec 6 预备知识 1):
- 5G 上行是集中调度的时分复用: gNB 要求所有 UE 的信号恰好在时隙边界到达
- 容错空间只有一个 CP(循环前缀),普通数据符号的 CP 约 4.7 微秒
- 所以 UE 要提前发送,提前量叫 TA: TA ≈ RTT
(2) "时延"其实是三个问题,后面每个机制都对应其中一个:
| 子问题 | LEO 600 km 的表现 | 对应机制 |
|---|---|---|
| 绝对时延大 | 透明载荷 RTT 最大 25.77 ms,全小区基本共有 | Common TA、K_offset、K_mac、关闭 HARQ 反馈 |
| 每个 UE 不同 | 同一小区内 RTT 差最大 3.12 ms,约 660 个 CP | UE 自己算的 UE-specific TA, 这正是 GNSS 必须有的原因 |
| 时延一直在变 | RTT 变化率最高 ±93 µs/s, UE 不动也一样 | 广播 Common TA 的变化率,并设有效期 |
(3) 一次过境的真实数字:
原文举的例子是: 550 km 轨道、约 2.2 GHz 载波,卫星几乎从头顶飞过
- 可见时长: 约 12 分钟,仰角从 0° 升到接近 90° 再降回 0°
- 距离与时延: UE 到卫星的距离从 2,704 km 降到 552 km 再升回去
- service link RTT 相应从约 18 ms 降到 3.7 ms 再升回去
- 同一颗卫星、同一条链路,6 分钟内 RTT 变化约 14 ms
- 多普勒频偏: 卫星接近时约 +51 kHz,在头顶时为 0,远离时约 −51 kHz
TLDR: TA 的完整生命周期¶
- 第 1 步: 网络侧定好参考点(RP),决定时延怎么切分
- 第 2 步: gNB 广播
SIB19,把会变的时延作为"轨迹"下发 - 第 3 步: UE 本地计算 TA 和频率预补偿
- 第 4 步: 随机接入,网络修正残差并拿回绝对时延
- 第 5 步: 调度,
K_offset与K_mac - 第 6 步: 数据传输,HARQ
- 第 7 步: 连接态,持续跟踪时延
- 第 8 步: 换星,提前准备下一颗卫星的参数
贯穿全节的分工原则
- 大而可预测的时延和频偏: UE 开环自算
- 剩下的小残差: gNB 沿用地面网络的闭环机制修正
- 大时延带来的时序问题: 把时间关系整体往后平移
第 1 步: 网络侧定好"参考点", 决定时延怎么切分¶
(1) 问题
地面网络只有 UE 和 gNB 两个端点,TA 由 gNB 直接测出来,不存在"切分"问题
LEO 透明载荷下,信号路径是 UE → Sat → GW → gNB,由此带来两个麻烦:
- UE 能算出自己到卫星的距离,但==不知道 GW 在哪、feeder link 怎么走==,没法自己算出全程时延
- 不同部署方式下(TRANS/REGEN、gNB 与 GW 是否同址),"UE 该补偿到哪里为止"各不相同
- 如果每种架构各写一套规则,规范会很乱
(2) 思路
在路径上定义一个位置可调的 参考点(Reference Point, RP),以它为界把总时延切成两段:
- UE 负责自己能算的那段
- 其余部分由网络负责,并告知 UE
Tip
可以类比为: 把端到端 RTT 拆成"接入段"和"骨干段"
客户端自己测接入段,运营商公布骨干段
(3) 实际做法
- RP 不是设备,只是一个时间上的定义
- 在这个点上,上行帧和下行帧的时间是对齐的
- 那个位置没有任何硬件
- UE 从不被告知 RP 在哪
- 它只收到 Common TA,即 RP 到卫星的往返时延
- RP 的位置,反过来由这个数值隐含确定
- UE 负责的永远只有 service link(UE↔Sat),卫星另一侧的所有时延都由网络告知
| 部署方式 | RP 位置 | Common TA | UE 使用的 TA 总量(最坏情况) |
|---|---|---|---|
| 600 km 透明,gNB 与 GW 同址 | GW / gNB | feeder link RTT,12.89 ms | 12.89 + 12.89 = 25.77 ms |
| 600 km 再生(gNB 在星上) | 卫星 | 0(该字段可以不发) | 12.89 ms |
补充
- gNB 与 GW 不同址时(例如一个 gNB 经地面网络连接多个 GW):
- RP 到 gNB 之间还有一段纯地面时延,用参数
K_mac表示(见第 5 步) - 同址时
K_mac= 0
- RP 到 gNB 之间还有一段纯地面时延,用参数
- 移动 RP 不会让时延消失,只是在 UE 和网络之间重新分配工作
- 再生载荷下 feeder link 依然存在,只是被移到了 UE 的时间计算 之外,由网络自己处理
第 2 步: gNB 广播 SIB19, 把会变的时延作为"轨迹"下发¶
(1) 问题
地面网络不需要广播任何时延信息
LEO 下网络必须告诉全小区两样东西:
- 卫星在哪: UE 算 service link 时延要用
- Common TA: UE 算 TA 总量要用
难点是: 这两样都在持续变化
- 卫星每秒飞 7.56 km,Common TA 也随之改变,单个数值一两秒就过时了
- 而 SIB 是周期性广播的,不可能每个时隙都发一次
(2) 思路
不发某一时刻的"采样值",而是发 一条可以外推的轨迹:
- 当前值、变化率、变化率的变化率
- 再加上一个时间戳和一个有效期
原理很简单:

Tip
类比 NTP: 同时给出时钟偏差和频率漂移,接收方在两次同步之间自己推算
有效期则相当于 TTL
(3) 实际做法
[3.1] SIB19 中与时延相关的字段
| 字段 | 含义 | 要点 |
|---|---|---|
ephemerisInfo |
卫星星历 | 位置和速度向量 / TLE |
ta-Common |
Common TA 的常数项 | 参考时刻的值 (\(f(t_1)\)) |
ta-CommonDrift |
一阶项: 每秒变化多少 | 带正负号,因为卫星可能在接近或远离;范围约 ±51.5 µs/s (\(f'(t_1)\)) |
ta-CommonDriftVariant |
二阶项: 变化率本身的变化 | 保证外推在整次过境期间都够准 (\(f''(t_1)\)) |
epochTime |
上述所有值对应的参考时刻 | 多项式和星历外推的时间原点 (\(t_1\)) |
ntn-UlSyncValidityDuration |
有效期 | 可选 5 s 到 900 s,LEO 通常取短值 |
[3.2] 怎么用
UE 以 epochTime 为起点,把常数项、一阶项和二阶项组成的二阶多项式代入经过的时间,就能算出任意时刻的 Common TA
星历也同样从 epochTime 开始外推
有效期是安全锁,不是性能参数
过期后,UE 不能再认为自己处于上行同步状态
必须停止发送,重新获取 SIB19
第 3 步: UE 本地计算 TA 和频率预补偿¶
(1) 问题
时延方面:
- 地面 UE 的 TA 由网络从前导码测出,再用 RAR 里的 TA 命令告诉 UE
- LEO 下这条路走不通:
- 一是前导码不做预补偿就检测不到(见 Sec 6)
- 二是 RAR 里的 TA 命令只有 12 比特,在 15 kHz 子载波间隔下最大只能表示约 2 ms,装不下 25.77 ms
频率方面:
- 地面网络的相对运动来自 UE 自己
- 高铁时速 500 km 也只有约 0.46 ppm(2 GHz 下约 930 Hz)
- 这种运动网络无法预测,只能靠接收机闭环跟踪
- LEO 卫星一开始就带着 24 ppm(约 48 kHz)的频偏
- 是 15 kHz 子载波间隔的三倍多,而常规同步算法能纠正的范围只有几 kHz
(2) 思路
大而可预测的部分由 UE 开环自算,小残差留给原有的闭环机制
- 卫星轨迹是已知的,所以时延和频偏的大部分,都能由 UE 根据"我在哪、卫星在哪"直接算出
- 网络只修正剩下的小误差
这样 TA 命令的字段不用加宽,地面网络的信令格式可以原样复用
(3) 实际做法
[3.1] TA 公式(TS 38.213)
其中 Tc 是 NR 的基本时间单位,约 0.509 纳秒
| 项 | 谁决定 | 覆盖什么 | 地面 NR 是否有 |
|---|---|---|---|
| N_TA | 网络,通过 RAR 和 TA 命令下发 | 闭环残差,即 UE 自己没算准的部分 | 有 |
| N_TA,offset | 按频段固定 | 收发切换的时间余量,与距离无关 | 有 |
| N_TA,adj^common | 网络定义,UE 用 SIB19 的多项式外推 | RP 到卫星,全小区共有 | NTN 新增 (common TA) |
| N_TA,adj^UE | UE 自己,用 GNSS 和星历计算 | UE 到卫星,每个 UE 各不相同 | NTN 新增 (UE-specific TA) |
- 公式中的 TA command 属于 MAC CE, 即 MAC 层的带内控制消息
- NTN 对 TA 的全部改动就是后两项,前两项的机制原封不动
[3.2] 频率预补偿
- UE 负责 service link:
- UE 算出自己与卫星的相对速度 v,按 "频偏 = v / c × 载频" 得到 service link 的多普勒频移
- 发送上行信号时, 反向调整频率
- 网络负责 feeder link:
- feeder link 的多普勒和卫星转发器的频率误差由网络处理
- 因为 UE 既不知道 GW 位置,也不知道星上振荡器的状态
- 分工与时延一致: UE 管 service link,网络管卫星另一侧
第 4 步: 随机接入, 网络修正残差并拿回绝对时延¶
这一步的细节见 Sec 6,这里只从 TA 的角度看每个阶段"谁知道什么"
(1) 问题
UE 做了预补偿之后,gNB 从前导码里只能测到残差,看不到 UE 的完整时延
但网络做调度时需要这个值
(2) 思路
网络测不到,就让 UE 主动上报
(3) 实际做法
- Msg1: UE 按 TA 总量提前发送
- 此时只有 UE 知道自己的 TA,而且只是近似值
- Msg2: gNB 用 TA command 修正残差
- 但仍不知道 UE 的 TA 绝对值
- Msg3: UE 上报之前,网络只能按小区内的最坏情况来调度
- 如果开启了
ta-Report:- UE 会在 Msg3 里上报自己实际使用的 TA,从此双方掌握同一个值
- After UE 最开始的近似值 + gNB 残差修正, 这个 TA 就是真实的了
- 如果开启了
第 5 步: 调度, K_offset 与 K_mac¶
(1) 问题
[1.1] K_offset 要解决的是: 因果性问题
- 地面规则是: gNB 在第 n 个时隙发出授权,UE 在第 n+K 个时隙发送,实际发送时刻再提前 TA
- 地面的 TA 远小于一个时隙,所以没有问题:
n+K-TA > n. 时序没问题
- 地面的 TA 远小于一个时隙,所以没有问题:
- LEO 下 TA 约 26 ms:
- 按 UE 提前后的时间轴,"第 n+K 个时隙"可能早于 UE 收到授权的时刻
n+K-TA < n. 出现时序问题!!!- 等于是在要求 UE 在收到命令之前就执行命令
[1.2] K_mac 要解决的是: 生效时刻的歧义问题
- 当 RP 不在 gNB 时,gNB 自己的上行时间轴和下行时间轴会错开一段
- 这时像 "MAC CE 在第几个时隙生效" 这样的规则,就说不清以哪条时间轴为准
(2) 思路
给所有"下行命令 → 上行动作"的时间关系统一加上足够大的偏移: 保证命令先到达、动作后执行
Tip
类比: 流水线里下发"在 T 时刻执行"的指令,T 必须晚于"当前时刻 + 指令传输时间"
(3) 实际做法
[3.1] K_offset(cellSpecificKoffset)
| 项目 | 内容 |
|---|---|
| 单位与范围 | 以 15 kHz 子载波间隔的时隙为单位,1 个时隙 = 1 ms,取值 1 到 1023 |
| 下限 | 不小于"service link RTT + Common TA",即 UE 的最大 TA。600 km 透明载荷至少需要 26 个时隙 |
K_offset是小区级参数- 它只能按波束边缘(最坏情况)的 UE 来设置
- 因此: 对波束中心的 UE 来说过于保守
- 网络通过
ta-Report得知某个 UE 的真实时延后,可以单独给它下发一个更小的 UE 级K_offset- 这属于后续优化,我们这里聚焦主线,就不展开了
[3.2] K_mac
| 项目 | 内容 |
|---|---|
| 含义 | 约等于 RP 到 gNB 的往返时延 |
| 何时需要 | 只在 gNB 处上下行帧时间不对齐(即 RP 不在 gNB)时下发;不下发时 UE 按 0 处理 |
| 作用对象 | MAC CE 动作的生效时刻,以及 RAR / MsgB 接收窗口的起点 |
| 常见取值 | TRANS 且 gNB 与 GW 同址时为 0; 再生载荷的 gNB 就在 RP 上,也为 0 |
第 6 步: 数据传输, HARQ¶
(1) 问题
[1.1] HARQ 是什么
物理层之上的快速重传机制,可以理解为: 带"软合并"(把多次收到的出错副本合起来解码)的链路层 ARQ
- 每个 HARQ 进程是一个停等(stop-and-wait)通道
- 发出一个数据块后,必须等 ACK/NACK 回来才能再用这个进程
- 多个进程并行工作,相当于一个大小为 N 的滑动窗口
- 要让数据流不断档,必须满足: 进程数 × 时隙长度 ≥ HARQ 往返时间
[1.2] 为什么是"进程数 × 时隙长度 ≥ HARQ 往返时间"
- N: 进程数
- R: HARQ 往返,单位是时隙
- 从数据发出到 gNB 拿到反馈、可以复用该进程所经过的时隙数
简化为: 只看一个 UE,gNB 每个时隙给它发一块数据
- 时隙 0 到 N−1: P1 到 PN 依次发出,全部进入等待
- 时隙 N: 需要一个空闲进程,而最早空出的 P1 要到时隙 R 才可用
- N ≥ R: P1 已空出,数据流不断档
- N < R: 每 R 个时隙中有 R−N 个无进程可用,只能空等,模式以 R 为周期重复
结论: 该 UE 的时隙利用率 = min(1, N/R)
例如 N = 4、R = 6 时,每 6 个时隙里 4 个在发、2 个空等,利用率约 67%:

例如 N = 16、R = 26 时:

例如 N = 32、R = 26 时:

这下应该很好理解 进程数 × 时隙长度 ≥ HARQ 往返时间 了🚀
Tip
窗口不够用时发送方只能空等, 这和 TCP 在窗口受限时吞吐上不去 是同一个道理
(2) 思路
有两条路:
- 把窗口开大:
- 增加进程数 (16 -> 32 -> ...)
- 窗口仍不够时,干脆不等反馈:
- 关闭反馈后进程发完立即可复用,相当于 R 变成了 0
- 可靠性交给更上层
(3) 实际做法
- 扩大窗口: Rel-17 把下行 HARQ 进程数上限从 16 提高到 32
- 同时扩展了下行数据到 HARQ 反馈之间允许的时间间隔
- 下行不等反馈: 可以按进程关闭 HARQ 反馈,进程发完立即可复用
- 丢失的数据改由 RLC AM 重传
- RLC AM 是更上层的可靠传输机制,相当于"关掉链路层 ARQ,靠上层重传"
- 上行: 定义了 HARQ mode A 和 mode B,可按进程配置
- mode B 允许在上一次传输的 RTT 还没过完时,就再次调度同一个进程
| 反馈开启 | 反馈关闭 | |
|---|---|---|
| 进程复用 | 等 ACK/NACK 回来才能复用 | 立即复用 |
| 丢包由谁恢复 | HARQ,速度快,还有软合并 | RLC AM,速度慢,没有软合并 |
| 调制编码 | 可以激进,首次传输出错的代价小 | 必须保守,或者直接盲目重复发送 |
| 适用场景 | RTT 较短的场景(LEO,尤其是再生载荷) | RTT 较长、吞吐优先的场景 |
Warning
关闭反馈并不会让链路更可靠! 只是把可靠性交给了更慢的上层环路,代价要付两次:
- 调制编码必须更保守
- 一旦出错,恢复时延更长
所以规范把选择权留给网络,按进程配置
第 7 步: 连接态, 持续跟踪时延¶
(1) 问题
地面 UE 的 TA 变化很慢,gNB 偶尔下发一条 TA 命令就能跟上
LEO 下 RTT 变化率最高达 ±93 µs/s,而数据符号的 CP 只有 4.7 µs:
不到 0.1 秒累积的偏差,就会超出容忍范围
(2) 思路
与第 3 步相同:
大部分变化由 UE 开环跟踪,残差由网络闭环修正,再用有效期兜底
这样一来,大部分工作都是 双方各自在本地计算. 不需要逐次交互,只保留少量单向、按需触发的信令!!!
本地计算为什么能保持一致?
- 输入和公式相同:
- 开环部分用的是同一份广播参数(SIB19)和同一套公式
- UE 自己算就行,不需要每次和 gNB 核对
- gNB 不需要知道 UE 此刻算出的具体值:
- 它只看结果,也就是 UE 的上行信号到达得准不准
- 到达时刻可以顺便测:
- gNB 从 UE 正常发送的上行数据和参考信号里就能测出到达时刻,不需要额外信令
(3) 实际做法
[3.1] 哪些本地做、哪些要信令
| 动作 | 在哪里做 | 是否需要信令 |
|---|---|---|
| 重算 UE-specific TA、频率预补偿 | UE 本地 | 不需要,输入是 GNSS 和已收到的星历 |
| 外推 Common TA | UE 本地 | 不需要逐次信令,多项式系数来自已收到的 SIB19 |
| 刷新星历和 Common TA 系数 | 网络广播,UE 接收 | 广播,单向,不针对某个 UE;有效期到之前 UE 要主动去读 |
| 测量上行到达时刻的偏差 | gNB 本地 | 不需要,利用 UE 正常的上行传输来测 |
| 修正残差 | gNB → UE | (偏差变大时) 需要: TA 命令 MAC CE,夹带在下行数据里,UE 不用专门回复 |
| 上报 TA 的变化 | UE → gNB | 可选: 网络配置门限(offsetThresholdTA)后,UE 的 TA 变化超过门限就发一次 TA Report |
下发 UE 级 K_offset |
gNB → UE | (偏差变大时) 偶尔: MAC CE |
[3.2] 两个环

大头交给开环,闭环只负责残差,所以信令量和地面网络差不多
[3.3] 两个"保鲜"定时器,各管一边
timeAlignmentTimer(地面网络就有): 管闭环部分的新鲜度- 每收到一条 TA 命令就重启
- 超时后 UE 认为上行失步,需要重新随机接入
- T430(NTN 新增): 管开环输入的新鲜度,从
epochTime开始计有效期- 到期前 UE 必须拿到新的 SIB19
- 否则超时后必须停止上行发送,重新读取 SIB19
Danger
如果没及时刷新 SIB19,典型现象是: 连接能用几十秒,然后反复掉线
第 8 步: 换星, 提前准备下一颗卫星的参数¶
(1) 问题
- LEO 一颗卫星只能服务一个区域几分钟
- 换星意味着星历和 Common TA 全部改变,整套开环计算都要重来
- 如果切换之后才去读新小区的 SIB19,会凭空多出一段中断
- 而这次切换本可完全预知
(2) 思路
既然切换时刻可以预测,就提前把下一颗卫星的参数发给 UE,让 UE 在切换前就算好
(3) 实际做法
ntn-NeighCellConfigList: 在 SIB19 中广播邻区(即下一颗卫星)辅助信息- UE 可以对还没切过去的卫星预先算好时延
t-Service: 当前小区停止服务本区域的时刻,相当于准地面固定小区的"到期时间"- 它是按时间触发的计划性切换的依据,不必等信号变差再靠测量触发
Note
个人认为 ntn-NeighCellConfigList 和 t-Service 这两个参数非常重要!!!
总结: 谁负责什么¶
| 问题 | UE | 网络 |
|---|---|---|
| service link 时延 | 用 GNSS 和星历实时计算(N_TA,adj^UE) | — |
| feeder link 时延 | 按多项式外推 | 广播 Common TA 及其变化率 |
| 残差 | 叠加网络下发的调整量 | 本地测量到达偏差,下发闭环 TA 命令 |
| service link 多普勒 | 上行预补偿 | — |
| feeder link 多普勒、转发器频偏 | — | 自行处理 |
| 大 TA 导致的调度因果性 | 所有上行时序加上 K_offset |
配置 K_offset;得知真实时延后可下发 UE 级 K_offset |
| HARQ 窗口不够 | — | 扩到 32 个进程,按进程关闭反馈 |
| 信息过期 | 有效期一到就停止发送 | 在有效期内刷新 SIB19 |
| 换星 | 提前算好目标卫星的参数 | 广播邻星信息和 t-Service |
Sec 8: Frequency Compensation¶
前一节讲的是时间(信号晚到多久), 这一节是它在频率域的"孪生问题":
卫星运动太快,UE 收到的载频不等于网络发出的载频,网络收到的载频也不等于 UE 发出的载频
侧重点: LEO + TRANS + "UE 已知 GNSS"
本节和 Sec 7(TA)共用同一套几何计算和辅助信息,重叠的部分只简单带过
每个步骤的写法:
- 问题是什么
- 跟地面网络差别在哪?
- 为什么不能直接复用地面网络的机制?
- NTN 准备如何解决(方法论)
- NTN 实际如何解决(方法科普)
预备知识: 为什么频率也要"对准"¶
(1) 5G 用的是 OFDM(正交频分复用):
一个信号由许多很窄的子载波并排组成,相邻子载波的间隔叫 SCS(子载波间隔),常见的有 15 / 30 / 120 kHz
接收端按一张固定的频率网格,去取每个子载波上的数据
只有频率完全对准网格时,子载波之间才互不干扰,这叫"正交"
Tip
可以类比成一排紧挨着的信道:
每个信道只在自己的位置上取数,整排一旦错位,每个信道都会混进邻居的内容
(2) 频率没对准的后果:
- 网格错位后,每个子载波的能量会泄漏到相邻子载波上,叫 ICI(子载波间干扰)
- ICI 表现为一层噪声底,而且会和信号一起放大,所以加大发射功率也没用
- 如果偏差达到一个 SCS 以上,接收端连信号在哪都对不上
和 Sec 7 完全对称
Sec 7: UE 没有独立的时间基准,"时钟"是 从下行信号里恢复 出来的
本节: UE 也没有独立的频率基准,"频率"同样是 从下行信号里恢复 出来的
(4) 多普勒频移的计算:
| Text Only | |
|---|---|
1 | |
v_rel:- UE 与卫星沿视线方向的相对速度,不是卫星的轨道速度
f_c:- 载波频率
- 同样的运动,载频越高,频偏越大(成正比)
TLDR: 频率补偿的完整流程¶
- 第 1 步: 拆账,频率误差有四个来源,按"谁能知道"分给 UE 和网络
- 第 2 步: 网络侧静默补偿 feeder link 和星上转发器的误差
- 第 3 步: UE 开机找小区,为什么不能直接靠 AFC 跟踪
- 第 4 步: UE 读 SIB19,算出 service link 多普勒
- 第 5 步: UE 上行发送,做显式预补偿,而不是跟着下行走
- 第 6 步: 连接态,残差只能靠 UE 自己的跟踪环
- 第 7 步: 换星,提前算好下一颗卫星的多普勒
方法论
和 Sec 7 一样: 开环把误差拉进可处理的范围,闭环把它保持在范围内
不同的是: 频率上的闭环只在 UE 本地,网络没有任何纠正命令
第 1 步: 频率误差的四个来源¶
(1) 问题
地面网络: 频偏只有 UE 本振误差和 UE 自身运动两项,量级几百 Hz,UE 的 AFC 一把就吸收了,不需要任何分工
LEO 透明载荷下,信号要经过 UE ↔ Sat ↔ GW 两段链路,还要在星上变频一次:
所谓"多普勒",其实是四个来源 (见下表) 的叠加,而且没有任何一方能看到全部
(2) 思路
和 Sec 7 的时延切分完全一样: 按"谁掌握计算所需的信息"来分账
(3) 实际做法
| 来源 | 在哪里产生 | 典型大小(LEO,S 频段) | 谁来补偿 | 为什么是它 |
|---|---|---|---|---|
| service link 多普勒 | UE 与卫星的相对运动 | 最高约 48 kHz | UE | 只有 UE 知道自己的位置,卫星速度又通过星历广播给了它;波束内每个 UE 的值都略有不同 |
| feeder link 多普勒 | 卫星与 GW 的相对运动 | 与 service link 同量级 | 网络 | UE 不知道 GW 在哪、feeder link 怎么走、当前用的是哪个 GW,原理上就算不出来 |
| 星上转发器本振误差 | 卫星上负责变频的振荡器 | 取决于硬件实现 | 网络 | 这是载荷硬件的属性,UE 看不见,也无从得知 |
| UE 本振误差 | UE 自己振荡器的精度和漂移 | 约 0.1 ppm,2 GHz 下约 200 Hz | UE | 和地面网络一样,由 UE 的 AFC 锁到下行上解决 |
为什么这样分
UE 管 service link, 网络管卫星另一侧. 和 Sec 7 的时延分工一模一样
这不是巧合: UE 手里只有 GNSS 和广播星历,恰好够算 service link 的几何,别的都算不了
卫星另一侧的一切,无论时间还是频率,对 UE 都不可见
Tip
UE 本振那一项看起来可以忽略(200 Hz 对 48 kHz)
但把 service link 多普勒预补偿掉之后,它反而会成为主要残差之一(见第 6 步)
频率补偿真正的问题往往不是"能不能去掉多普勒",而是"去掉之后还剩多少"
第 2 步: 网络侧静默补偿 feeder link 和转发器误差¶
(1) 问题
地面网络没有 feeder link,也没有星上变频
透明载荷的卫星是模拟转发器,只变频和放大,不解调:
- feeder link 上的频偏、星上本振的误差,都会被原样转发到 service link 上,最后落到 UE 头上
- 而 UE 对这两项一无所知(见第 1 步)
(2) 思路
对波束内所有 UE 都相同的部分,由网络在信号发出之前一次性消掉
feeder link 是波束内所有 UE 共用的,所以它的误差正好属于"公共部分"
(3) 实际做法
[3.1] feeder link 多普勒
- GW 发送时做预补偿,接收时做后补偿
- GW 自己的位置固定且已知,卫星星历也已知
- 两端都是确定的,算起来比 UE 还容易
[3.2] 星上转发器频率误差
- 在地面监测一路经过星上转发的参考信号,按观测到的偏差进行修正
[3.3] 最终效果
- GW 对发射信号做"预失真":
- 信号经过 feeder link 多普勒、星上变频和星上本振误差之后,到达卫星另一侧时正好落在标称载频上
- UE 收到的 DL 信号里:
- 只剩 service link 多普勒(加上 UE 自己的本振误差)
- 没有任何广播字段告诉 UE 这件事,对 UE 来说这部分误差根本不存在
Tip
类比透明代理: 中间环节替你处理掉了一部分问题,端侧完全感知不到
和时间上的做法有何不同?
- 时间上: SIB19 会把公共部分(Common TA)广播给 UE,由 UE 叠加进 TA
- 频率上: SIB19 里没有对应的"公共多普勒"字段. 公共部分全部由网络自己吸收
总原则是: 所有 UE 相同的部分均分给网络处理, UE-Specific 的部分只能留给 UE
第 3 步: UE 开机找小区, 为什么不能直接靠 AFC 跟踪¶
(1) 问题
地面网络: UE 开机后搜索同步信号(PSS/SSS,基站周期发送的已知波形,相当于小区的"信标"),锁上之后 AFC 接管,几百 Hz 的频偏不成问题
AFC
AFC(Automatic Frequency Control,自动频率控制)是接收机里的一个反馈控制环:
它不断测量 "收到的信号频率" 和 "自己本振的频率" 差多少,再把本振往消除这个差值的方向调,直到两者对齐
LEO 的问题在于时序: AFC 只能在锁上信号之后才开始工作,而多普勒在 UE 收到第一个采样时就已经存在
初始同步在不做额外假设检验的情况下,能吸收的频偏大约只有半个 SCS:
| SCS | 初始同步大约能吸收 | 该配置常见频段的 LEO 多普勒 | 倍数 |
|---|---|---|---|
| 15 kHz | 约 7.5 kHz | 约 52 kHz(n256 下行) | 大 7 倍 |
| 30 kHz | 约 15 kHz | 约 52 kHz(n256 下行) | 大 3.5 倍 |
| 120 kHz | 约 60 kHz | 约 450 kHz(FR2-NTN 下行) | 大 7.5 倍 |
原始多普勒是捕获范围的好几倍,按地面的方式直接搜,UE 可能根本找不到小区
(2) 思路
存在 "🐔生🥚" 和 "🥚生🐔" 的问题: UE 第一次找到小区之前,还读不到这个小区的星历
因此: 大头不能靠测, 只能靠算!
(3) 实际做法
目标: 把频偏从几十 kHz 压到初始同步能吸收的范围(几 kHz)以内
规范只规定结果、不规定方法! 这一步属于 UE 的实现,常见办法有:
- 在更宽的频率范围内做多假设搜索(原文提到的"额外假设检验")
- 代价是更慢、更耗电
- 使用 UE 之前存下的星历
- 网络侧先对下行的公共部分做一部分预补偿(例如按波束中心)
- 这是研究阶段讨论过的选项
第 4 步: UE 读 SIB19, 算出 service link 多普勒¶
(1) 问题
LEO 下:
- 频偏的大头来自卫星运动,整次过境从 +51 kHz 连续变到 −51 kHz
- 动态时变. 不是一个常数
- 波束内每个 UE 的几何略有不同,值也略有不同
- 所以必须由每个 UE 自己算,而且要持续地算
(2) 思路
复用 Sec 7 的输入: 做一次几何计算,同时读出"距离"和"距离的变化率"
(3) 实际做法
[3.1] 输入
- UE 的位置和速度: 来自 GNSS(NTN 接入本来就要求有效定位)
- 卫星的位置和速度: 来自 SIB19 的
ephemerisInfo- 形式是 位置和速度向量(
positionVelocity) 或 TLE(orbital) - 速度信息是关键: 只有位置的星历够算时延,但算不了多普勒
- 形式是 位置和速度向量(
- 公共时间基准:
epochTime,保证两组坐标对应同一时刻
原理也是跟 Sec 7 中描述的一样!
[3.2] 计算
- 算出 UE 与卫星的相对速度向量
- 投影到视线方向,得到
v_rel - 代入
f_d = (v_rel / c) × f_c - 上行和下行分别算
- FDD(频分双工)的上下行用两段不同的频率,频偏也不同
- 例如 n254: 下行 59.8 kHz,上行 38.8 kHz
[3.3] 一次几何,两份修正
| 从几何里读出 | 物理量 | 用途 |
|---|---|---|
| 到卫星的距离 | service link 传播时延 | TA 中的 N_TA,adj^UE(Sec 7) |
| 距离的变化率 | 视线方向相对速度 | 本节的多普勒预补偿 |
第 5 步: UE 上行发送, 做显式预补偿¶
(1) 问题
LEO 下这样做,误差会翻倍
假设卫星正在接近,多普勒为 +f_d(此处忽略上下行载频不同带来的比例差):
| Text Only | |
|---|---|
1 2 | |
"跟着下行走"的结果不是误差为 0, 而是约 2 倍多普勒!
- 地面网络的 f_d 最多几百 Hz,翻倍也无所谓
- LEO 下 48 kHz 会变成 96 kHz
(2) 思路
上行修正不能从下行推出来,只能从几何算出来,而且方向与多普勒相反
(3) 实际做法
[3.1] 修正量
- UE 的目标: 信号到达卫星时, 正好落在标称上行频率 f_UL 上
- 所以 UE 的实际发射频率应为: f_UL − f_d
- 相对于"跟着下行"的基准,相当于再往反方向拉约 2 x f_d
[3.2] 符号随过境翻转
- 卫星接近时: f_d 为正,UE 往低调
- 卫星远离时: f_d 为负,UE 往高调
- 预补偿的范围必须覆盖正负两个方向的全部摆幅,不能只覆盖一边
第 6 步: 连接态, 残差只能靠 UE 自己¶
(1) 问题
[1.1] 网络不会帮你纠错
- 时间上: gNB 能测出 UE 上行的时间偏差,并通过 TA 命令纠正(Sec 7)
- 频率上: NR 里没有"频率调整命令"
- 地面网络从来不需要: UE 锁住下行就足够准
- NTN 沿用了这个空缺! 选择让 UE 自己算,而不是新增一条命令
- 后果: UE 的多普勒算错了,协议里没有任何机制会告诉它
[1.2] 预补偿永远不完美
- 剩下的残差会造成 ICI(见预备知识 1)
- 多普勒还在持续变化: 600 km、2 GHz 下约 540 Hz/s,过顶时变化最快
(2) 思路
开环把误差从几十 kHz 拉进范围,UE 本地的跟踪环把它保持在范围内
不新增任何网络侧命令!
Warning
这一点跟上一节的 TA 网络侧残差补偿 完全不同, 值得注意!
NTN 标准协议竟然放任 "允许基础误差", 而不采用对应机制, 很值得小心
这点让笔者有点疑惑🤔 或许是出于成本之类的因素考量吧...
(3) 实际做法
[3.1] 精度要求: 其实很宽松
常用经验值: 残差控制在 SCS 的 1%–2% 以内,ICI 就可以忽略
[3.2] 真正的下限: UE 自己的本振
把 0.1 ppm 的本振精度换算成 Hz,再和 1% SCS 的预算比一比:
| 频段中心 | 0.1 ppm 对应 | SCS | 1% 预算 | 仅本振就占 SCS 的 |
|---|---|---|---|---|
| 1,542 MHz(n255 下行) | 154 Hz | 15 kHz | 150 Hz | 1.0% |
| 2,185 MHz(n256 下行) | 219 Hz | 15 kHz | 150 Hz | 1.5% |
| 2,185 MHz(n256 下行) | 219 Hz | 30 kHz | 300 Hz | 0.7% |
| 2,492 MHz(n254 下行) | 249 Hz | 15 kHz | 150 Hz | 1.7% |
| 18,750 MHz(FR2-NTN 下行) | 1,875 Hz | 120 kHz | 1,200 Hz | 1.6% |
| 28,750 MHz(n512 上行) | 2,875 Hz | 120 kHz | 1,200 Hz | 2.4% |
还没算多普勒,本振误差自己就已经基本吃掉了整个 1% 预算
由此得到两个结论:
- 1% 只是经验值,不是硬门槛
- ICI 是逐渐恶化的,不会断崖式失效,实际系统在几个百分点下也能工作
- 一次性预补偿永远不够
- 残差的下限由 UE 硬件决定,算不掉
- 所以 UE 必须用常规的跟踪环持续跟踪残差
[3.3] 持续更新
- UE 随时间用星历外推卫星的位置和速度,持续重算 f_d
- 有效期到期前必须重读 SIB19,否则停止上行发送(同 Sec 7 第 7 步)
本节最重要的结论
NTN 频率补偿的难点: 不在于算得多精,而在于两件事
- 必须在接收机开始工作 之前 完成
- 算错了, 协议里 没有任何东西 会告诉 UE
只要 GNSS 定位和星历有效,精度自然够用
第 7 步: 换星, 提前算好下一颗卫星的多普勒¶
(1) 问题
LEO 换星后,卫星的速度方向和几何全部改变,多普勒的大小和符号都可能突变。如果切换后才去读新小区的 SIB19 再算,就会重演第 3 步"找不到"的问题
(2) 思路
切换时刻可以预测,那就提前拿到下一颗卫星的星历,提前算好
(3) 实际做法
ntn-NeighCellConfigList:- SIB19 中每个邻区的 NTN 配置,包含该邻区卫星的星历
- UE 在切换前就能算出目标卫星的多普勒,切换那一刻,修正量已经准备好了
- 切换时刻本身怎么确定(
t-Service等),见 Sec 7 第 8 步
- 切换时刻本身怎么确定(
总结 1: 时间与频率的不对称¶
| 时间(Sec 7) | 频率(本节) | |
|---|---|---|
| 由什么决定 | 到卫星的距离 | 距离的变化率 |
| 最坏情况 | 低仰角,卫星最远 | 也是低仰角,但原因是视线速度最大 |
| 何时为 0 | 从不为 0 | 卫星最接近时,并在过境中途变号 |
| 同一小区内 UE 之间差多少 | 差很多,毫秒级 | 小得多,同一波束内几何相近 |
| 是否随载频变化 | 否,1 微秒在哪个频段都是 1 微秒 | 是,成正比;Ka 频段约为 S 频段的 10 倍 |
| UE 负责的部分 | N_TA,adj^UE,用 GNSS + 星历算 | service link 多普勒,用同一套输入算 |
| 网络负责的部分 | 以 ta-Common 等字段广播给 UE,由 UE 叠加 |
网络自己静默处理,UE 完全不知道 |
| SIB19 里有没有"公共"字段 | 有: ta-Common、ta-CommonDrift、ta-CommonDriftVariant |
没有 |
| 网络闭环纠正 | 有: RAR 中的 TA 命令、TA 命令 MAC CE | 没有,NR 不存在频率调整命令 |
| UE 是否上报 | 是,开启 ta-Report 时 |
否 |
| 算错了怎么办 | 网络测出偏差,用下一条 TA 命令纠正 | UE 只能靠自己的跟踪环发现并修正 |
总结 2: 相关参数¶
| 字段 | 提供什么 | 在频率补偿中的作用 |
|---|---|---|
ephemerisInfo(positionVelocity 或 orbital) |
卫星位置和速度 | 核心输入;速度部分是算多普勒的前提,只有位置的星历只能算时延 |
epochTime |
星历对应的时刻(以帧号 SFN 和子帧表示) | 让 UE 先把星历外推到当前时刻,再算 v_rel |
ntn-UlSyncValidityDuration |
辅助信息可以用多久 | 频率估计和时延估计一起过期 |
ntn-PolarizationDL / ntn-PolarizationUL |
service link 的极化方式(右旋、左旋或线极化) | 不属于频率补偿,但同在 NTN 配置里,UE 收发之前同样必需 |
ntn-NeighCellConfigList |
各邻区的 NTN 配置,包含星历 | 换星前预先算好目标卫星的多普勒 |
Tip
极化: 电磁波的振动方向,收发两端必须匹配
R17/18/19 规范与版本
[1] 各文档分别讲什么
- TR 38.811: 刻画各类轨道的多普勒特性,确定系统要面对的量级
- TR 38.821: 研究补偿方案,确定 UE 与网络的分工
- TS 38.300: 规范性描述
- 有效 GNSS 定位和星历的 UE,预补偿 service link 多普勒
- feeder link 多普勒和转发器频率误差由网络处理
- TS 38.101-5: 射频指标,即 UE 实际必须达到的频率误差,测试时量的就是它
- 具体数值以最新版本为准,加入 FR2-NTN 后有所扩展
[2] 版本演进
- Rel-17: 首个 NR-NTN 规范,只支持透明载荷和 FR1-NTN,强制 UE 具备 GNSS
- 这正是整套预补偿方案能够成立的前提
- Rel-18: 扩展到 10 GHz 以上的 FR2-NTN,绝对频偏约放大 10 倍
- Rel-19 及以后: 持续增强,"UE 管 service link、网络管其余部分"这一分工保持不变
Sec 9: NTN RRC Parameters¶
Cheat Sheet
全部字段以 ASN.1 原型呈现,注释 = 该字段的含义 / 关键数值 / 缺省行为
来源: TS 36.331 (LTE / NB-IoT)、TS 38.331 (NR)
简介 ASN.1
ASN.1(Abstract Syntax Notation One,抽象语法标记一)是一种用于定义 通信协议数据结构 的标准化描述语言
它规定"消息包含哪些字段、字段是什么类型、取值范围是什么、哪些字段可选", 但通常不直接描述字段的业务含义
Part 1 - NTN LTE (TS 36.331)¶
容器: SIB1-v1700(接入控制) / SIB31(服务星) / SIB32(卫星时刻表)
(1) SIB1 扩展: NTN 接入控制
| ASN.1 | |
|---|---|
1 2 3 4 5 6 7 8 | |
(2) SIB1 扩展: NTN 接入控制
| ASN.1 | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | |
(3) Ephemeris:
| ASN.1 | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
(4) SIB32: 卫星时刻表(不连续覆盖用)
| ASN.1 | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | |
Part 2 - NTN NR (TS 38.331)¶
容器: SIB19(广播) / NTN-NeighCellConfig(邻星) / ServingCellConfigCommon v1700(专用信令)
(1) SIB19: NTN 系统信息块
| ASN.1 | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | |
(2) NTN-Config: 全部辅助数据(一个类型,三处复用).
非常非常重要!
| ASN.1 | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | |
(3) Ephemeris:
| ASN.1 | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | |
(4) 专用信令里 ntn-Config 的真实位置:
| ASN.1 | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
(5) HARQ 反馈时序 (长 RTT 适配):
非常非常重要!
| ASN.1 | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
(6) HARQ 进程数与逐进程关反馈:
非常非常重要!
| ASN.1 | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | |
Part 3 - NTN NB-IoT (TS 36.331)¶
要点:
- 几乎不需要任何新字段,直接复用 LTE 的类型
- 差异只在外壳与部署假设
(1) SIB31-NB: 服务星辅助信息
| ASN.1 | |
|---|---|
1 2 3 4 5 6 7 8 9 | |
(2) SIB32-NB: 卫星时刻表
非常非常重要!
| ASN.1 | |
|---|---|
1 2 3 4 5 6 | |
(3) SIB1-NB 扩展: NTN 接入控制
| ASN.1 | |
|---|---|
1 2 3 4 5 6 | |
(4) NB-IoT NTN 能力与专用配置
| Text Only | |
|---|---|
1 2 3 4 5 6 7 8 9 | |
NB-IoT 的典型 UE 流程(SIB32 的真正用途)
- 有覆盖时读到 SIB32
- tle-EphemerisParameters + SGP4 → 算出未来数小时各星轨迹
- footprintInfo → 判断"它走到那里时我在不在覆盖里"
- t-ServiceStart → 确认那时它确实在提供服务
- 得到下一次机会的绝对时刻 → 关射频、定闹钟、睡过去
- 到点醒来直接同步,不盲搜
NB-IoT 与 LTE 的真实差异 (不在字段, 在用法)
- 字段层面:
- 零差异:
SIB31-NB/SIB32-NB直接引用ServingSatelliteInfo-r17/SatelliteInfoList-r17
- 零差异:
- 外壳层面:
- SIB 编号带 -NB、承载在 BCCH-NB、SI 窗口更长重复次数更多
- 后者直接影响
epochTime缺省规则的实际时间精度
- 部署层面:
- LTE 覆盖可不连续,NB-IoT NTN 通常不连续 → SIB32 从"锦上添花"变成"核心机制"
Warning
精度换有效期:TLE 公里级精度对"决定什么时候醒"完全够用
3GPP 官方 NTN 技术页¶
原文
https://www.3gpp.org/technologies/ntn-overview
来源: 3GPP Deep Dive, Non-Terrestrial Networks (NTN)(by Joern Krause, 3GPP MCC)
本章范围: 仅 LEO/NGSO; 终端具备 GNSS
这页的真实结构
大半篇幅是工作项目编年史与 TR 编号索引,技术干货只在两处:概念地基和 Rel-17 机制
三条最值得记的结论:
- Rel-17 由三条硬假设撑起: 透明载荷 + UE 必备 GNSS + Earth-fixed Tracking Area
- Rel-18 在这三条之上做增强, Rel-19 正在逐条拆掉它们
- 全部机制的出发点只有一条: 长时延与快变多普勒, 必须在接入之前就被消化掉
基础概念¶
(1) Payload 类型: 决定 gNB 位置
- Transparent / bent-pipe(透明转发):
- 星上只做变频、滤波、放大,等价于==模拟 RF 中继==
- 此时 NTN Gateway 侧才是 gNB,卫星只是远端射频头
- Regenerative(再生式):
- 星上具备解调/译码、交换/路由、编码/调制
- gNB 在星上. Gateway 退化为连向核心网的路由器
- 硬约束:
- 使用 ISL 必须是 regenerative
- 而 Rel-17/18 只支持 transparent, regenerative 要到 Rel-19
(2) 链路命名
- Service link(服务链路):
- 卫星 ↔ UE
- Feeder link(馈电链路)= SRI(Satellite Radio Interface):
- 卫星 ↔ NTN Gateway
- ISL:星间链路
(3) 波束类型
- Earth Moving Cell (EMC): 波束随卫星走,地面小区被扫过
- Earth-fixed Cell (EFC): 靠波束成形指向地面固定点,在卫星可见时段内保持不动
(4) 架构: CU/DU 分离与两类切换
CU/DU split: DU 上星、CU 在地面
- feeder link 上跑 F1 协议
- RRC 等 L3 处理留在地面 CU
- 多颗星的 DU 可挂同一个地面 CU
因此有额外时延代价
NGSO 绕地快于自转,必然产生两类切换
- Service link switch:更换服务卫星
- Feeder link switch:把馈电链路从源 Gateway 切到目标 Gateway,属==传输网层(TNL)过程==,支持硬切与软切
Rel-17: 真正落地的机制¶
前提假设(限定得很死):
- 仅 transparent payload
- FR1 FDD(410 MHz–7125 MHz),新增 n255(L 波段)/ n256(S 波段)
- 手持终端 power class 3
- UE 具备 GNSS
- earth-fixed tracking area
第 1 步: 接入前的上行同步预补偿 (RAN1)¶
(1) 问题
TN 里 UE 不需要任何几何知识:先发 RACH preamble,由 gNB 估出定时偏移再下发 TA。NTN 里时延与多普勒==在随机接入发生之前就已超出空口容限==,preamble 根本检测不出来——"先接入、再校正"的顺序在 NTN 走不通。
(2) 思路
把校正提前到接入之前,由 UE 依据几何信息自行计算。
(3) 实际做法
- 网络在每个 NTN 小区广播 星历(ephemeris)+ common TA 参数
- UE 接入前必须同时持有三样东西:
- 有效 GNSS 位置、星历、common TA
- 随后用 "common TA + 自身位置 + 卫星位置与速度" 自主预补偿 TA 与多普勒频偏
- 在连接态持续更新
- 失效即静默:
- GNSS 位置或星历任一失效,UE 直接停止与网络通信,直到两者都恢复
- 责任边界:
- UE 只负责 service link 的瞬时多普勒
- feeder link 的多普勒留给网络实现自行处理,不在标准范围内
- UE 可被配置:
- 初始接入或连接态上报 TA
- 连接态支持触发式上报 (节约资源)
第 2 步: 调度时序关系的偏移修正 (RAN1)¶
(1) 问题
TA 只对齐 UE 的发射时刻,不改变协议里写死的调度时序关系(例如收到下行授权后第几个时隙发上行)。这些时序假定 RTT 远小于时隙尺度;NTN 的 RTT 横跨多个时隙,时序关系整体失效。
(2) 思路
给时序关系加可配置偏移,把长 RTT 显式建模进协议。
(3) 实际做法
| 偏移量 | 含义 |
|---|---|
| Common TA | 参考点(RP)到 NTN payload 的 RTT |
| K_offset | ≈ service link RTT + common TA |
| k_mac | ≈ 参考点(RP)到 gNB 的 RTT |
第 3 步: HARQ (RAN1)¶
(1) 问题
HARQ 进程需等反馈才能复用,长 RTT 下全部进程卡在等待态(HARQ stalling),基站发不出新数据。
(2) 思路
要么不等反馈,要么把并行进程数加够。
(3) 实际做法
- 关闭 HARQ 反馈,由 RLC 层 ARQ 重传兜底(GSO 类系统的典型选择)
- 进程数增至 32(NGSO 类系统的典型选择)
- 两者可组合使用
第 4 步: 移动性与测量 (RAN2)¶
(1) 问题
TN 切换依赖信号强度变化。NTN 中波束重叠区信号强度变化极小、切换极其频繁(卫星在动)、且不同卫星来的小区之间存在传播时延差,测量窗口本身都对不齐,强度判决不再可用。
(2) 思路
改用卫星场景下天然确定的时间与几何信息做判决,并让测量配置能容纳时延差。
(3) 实际做法
-
切换命令携带服务小区与邻区的星历,供 UE 接入目标小区
-
CHO 触发条件扩为三类:
- event A4(测量类)、time-based、location-based
- 后两者必须与一个测量类条件一起配置,不能单独使用
- location = UE 到参考位置的距离;time = 从 T1(绝对时刻)起、持续 T2 的时间窗
-
测量配置:
- 每载波可并行配置多个 SMTC(SSB 测量时序配置),依据传播时延差与星历
- 连接态由网络控制调整(可用 UE 辅助信息)
- 空闲/非激活态由 UE 依据自身位置与卫星辅助信息自行调整
-
NTN↔TN 切换双向支持(hand-in/hand-out),但不要求 UE 同时连接两者; 也可支持不同轨道之间的切换
- 这个点信息量很大!!!
- hand-in / hand-out 是从地面网视角命名: hand-in = NTN → TN; hand-out = TN → NTN
- 典型场景: User 从市区(TN 覆盖)走到荒漠(只有 NTN)触发 hand-out; 再走回来触发 hand-in
- "不要求同时连接两者" 说的是终端能力下限:
- UE 必须能在 NTN 和 TN 之间切换! 但不强制要求它同时维持两条活跃连接
- Rel-16 的研究阶段(TR 38.821)认真讨论过 multi-connectivity: 一个 UE 同时挂 NTN + TN,或同时挂两个 NTN,用来提升速率和可靠性
- 但同时收发两条链路: 意味着终端要有两套独立的射频通道,工作在差异很大的频段上,成本和功耗都上一个台阶
- 所以 Rel-17 规范化时把它降级了: 多连接不是必选项,硬切换(一次只连一个)才是必需!
- "不同轨道之间的切换" 是可选项:
- 含义: Cross-orbit Switching 指在基于不同轨道的接入之间移动. GSO ↔ NGSO,或者不同高度的 NGSO 之间(比如 550 km 的星座切到 1200 km 的星座)
- 不同轨道的 RTT、多普勒变化率、各类定时器取值差出一个数量级。UE 换轨道等于把第 1、2 步里那套参数(common TA、K_offset、k_mac、定时器)整体换一套,几乎相当于接入一个完全不同的部署
-
Tracking Area 对应固定地理区域:
- 一个 NTN 小区可按 PLMN 广播多个 TAC,降低小区边缘(尤其 earth-moving 覆盖)的信令负荷
- TAC 变更由网络控制,不一定与波束实际照射时刻严格同步
第 5 步: 位置、小区标识与跨国监管 (RAN2/RAN3)¶
(1) 问题
NTN 单小区可覆盖大片大陆、跨越多国,而同一 NTN RAN 可能连接多国核心网。 服务小区粒度不足以满足公共预警、紧急呼叫、合法监听的属地监管要求 —— 这是 TN 里根本不存在的问题。
(2) 思路
- 让 UE 报位置
- 让小区标识与地理区域解耦
- 让 gNB 按国家挑 AMF
(3) 实际做法
这一部分实际上还是未定式 :)
-
UE 粗位置上报:网络请求时、AS 安全建立后,UE 上报 GNSS 坐标(精度约 2 km)
-
Mapped Cell ID:
- 上报核心网的 Cell Identity 是映射过的(与轨道类型、服务链路类型无关),用于寻呼优化、Area of Interest、公共预警,也用于切换消息中标识目标小区
- 映射关系在 RAN 与 CN 预配置,gNB 依据 UE 位置信息构造
-
跨国 AMF 重选:
- gNB 若发现 UE 所在国家与服务 AMF 服务国家不符,应发起 NG handover 换 AMF,或发起 UE 上下文释放请求
-
O&M 必须下发:星历、epoch time、NTN Gateway 位置,以及支持 feeder/service link 切换所需的参数
演进主线¶
| Release | 性质 | 产出 |
|---|---|---|
| Pre-R15 | 卫星仅用于定位(GNSS) | — |
| R15 | 首个 RAN 研究项 | TR 38.811:信道模型适配 + 部署场景 |
| R16 | 系统侧 FS_5GSAT(TR 22.822)+ 无线侧研究 | TR 38.821:架构方案 + RAN1/2/3 规范化建议 |
| R17 | 首个含规范性要求的版本(ASN.1 2022-06 冻结) | RAN 侧 NR_NTN_solutions;系统侧落到 TS 23.501/502/503 |
| R18 | 增强 R17 (补丁) | 覆盖增强、网络验证 UE 位置、>10 GHz、不连续覆盖、卫星回传 |
| R19 | 下一步 (真前瞻) | regenerative payload、S&F、UE-卫星-UE、GNSS-independent |
Rel-18 要点
- 网络验证 UE 位置:定义 UE/gNB 的 Rx/Tx 时间测量来验证 UE 自报位置,目标精度 5–10 km(约等于地面宏小区直径)。动因即第 5 步的属地监管问题
- 覆盖增强:Msg4 HARQ-ACK 的 PUCCH 重复;PUSCH DMRS bundling,使 UE 在 定时漂移 下仍保持相位连续性
- 移动性:TN 侧 SIB19 携带 NTN 邻区参数;SAN 广播地面 TN 区域列表及频率信息;satellite switch with re-sync
- 频段:新增 n254(UL 1610–1626.5 L 波段 / DL 2483.5–2500 S 波段);FR1 增加 30 MHz 信道带宽(对齐 ITU IMT-2020 卫星评估假设)
- 不连续覆盖(SA2):星座初期部署或掉星导致 UE 只在特定时间地点有覆盖 → 移动性管理、寻呼增强、省电、UE 不可达时段的确定与协调,以及大量 UE 同时恢复覆盖引发的信令过载处理
- 卫星回传:多跳 ISL 的时延/带宽/乱序问题; 星上 UPF 做边缘计算与本地数据交换
Rel-19 前瞻设计非常重要
- REGEN Payload 正式进入架构: gNB/5GS 部分上星
- Store & Forward: UE 在卫星覆盖下通信时 不要求馈电链路同时在线, 面向时延容忍 IoT
- UE-Sat-UE 直接通信: 不绕地面网,省回传、降时延
- GNSS-independent 运行 + 卫星接入下的定位增强: 直接解绑第 1 步的"UE 必备 GNSS"硬假设
另: RAN 侧 Ph3 还包括下行覆盖增强、FR1 上行容量/吞吐增强、MBS 广播服务区域信令、NR NTN 支持 RedCap
IoT-NTN 旁注
NB-IoT/eMTC over NTN 是 Rel-17 起的并行线,原则是 "以 NR NTN 为基线"尽量复用
两点差别:
- 不假设 GNSS 与 NTN 收发可同时运行(需要 GNSS 测量间隙)
- NTN-IoT 侧 Rel-17 就考虑了不连续覆盖; 而 NTN-NR 侧到 Rel-18 才做
Satellite direct to device: 4G or 3GPP NTN?¶
Ericsson《Satellite direct to device: 4G or 3GPP NTN?》
原文
https://www.ericsson.com/en/reports-and-papers/ericsson-technology-review/articles/satellite-direct-to-device-communication
卫星直连终端(D2D):unmodified 4G 与 3GPP NTN
来源:Ericsson Technology Review(2025-12-11)
TLDR
两条路线的全部差异来自同一个分水岭:时延与多普勒由谁补偿
- unmodified 4G:网络侧补
- 代价全部压回星座、波束、轨道设计,换来存量手机即可用
- 3GPP NTN:UE 侧补(GNSS 定位 + 广播星历)
- 用一条新 SIB 换回整个系统设计的自由度,代价是要等 Rel-17 之后的芯片
前置¶
LEO 参数与两种频谱模型
LEO:高度 < 2,000 km,速度约 7.8 km/s。地面网络"时延小、发射端不动"两个前提被同时打破。
模型 A — 地面移动频谱(MNO–SNO 合作):这些频段 ITU 未划给卫星,合法性只来自少数国家的国内新规或 ITU RR 第 4.4 条,均为 不干扰、不受保护。必须设排除区(覆盖内主动静默的区域),粒度约等于一个点波束,一开就吃掉大片覆盖。WRC-27 议题 1.13 在讨论 700–2700 MHz 新增 MSS 划分,但即便通过,地面业务仍然优先。
模型 B — MSS 频谱(L/S 波段):国际划分成熟、共存规则清晰、干扰管理简单,Rel-17 起写入 NTN 规范。代价是终端渗透率低。
四个技术关口¶
按 UE 从接入到保活的时间顺序 排列。后三步在 4G 路线的所有麻烦,都能追溯到第 1 步根因。
第 1 步:上行预补偿(时延与多普勒)
(1) 问题
地面空口容限是按"基站不动、UE 慢速"设计的。LEO 往返上千公里、以 7.8 km/s 掠过,时延与多普勒频移(收发端相对运动导致的频率偏移)双双超限。
超限不是性能下降,是基站解调不出上行,根本连不上。
(2) 思路
在信号发出前把已知的时延和频偏预先减掉(pre-compensation)。分歧只在于谁来算。
(3) 实际做法
[3.1] 4G — 网络侧补:
卫星用星历(ephemeris = 卫星位置 + 速度矢量)按波束统一补偿。但时延/频偏取决于用户在波束内的具体位置,一次补偿只有一组参数,只能对一个参考点最优,离参考点越远残差越大。
[3.2] NTN — UE 侧补(Rel-17):
UE 先用 GNSS 定位(接入前的强制前提)→ 卫星经新增 SIB广播星历 → UE 自行算出定时与频率修正量并预补偿到上行。
残差落回地面 NR 的原有容限,波束足印从被空口倒逼的约束变成自由变量。
仅 Rel-17+ 芯片支持。
第 2 步:随机接入(Random Access)
(1) 问题
RA 是 UE 建立上行同步的第一个动作:发送 preamble(前导序列),基站据此估计定时偏移。此时 UE 还没有任何网络校正,对残差的容忍度全链路最低
残差把波形畸变到检测不出,就是反复接入失败,业务完全建立不起来。
(2) 思路
残差必须在 整个波束覆盖内 合规,而非平均合规。
(3) 实际做法
[3.1] 4G — 只能调系统参数,项项有代价
| 手段 | 代价 |
|---|---|
| 缩小波束足印 | 天线更大 → 成本与集成复杂度上升;同样覆盖需更多波束/卫星 |
| 限制波束指向 | 单星覆盖缩小 → 需要更大星座 |
| 频段、轨道高度 | 基本调不动,受监管约束且直接影响路损 |
各参数互相牵制! 最终容易落到 sub-optimal 系统设计
[3.2] NTN
问题在第 1 步已消解,RA 无需任何卫星专用处理。
第 3 步:HARQ 重传
(1) 问题
HARQ 工作在 stop-and-wait 模式:一个进程必须等反馈回来才能复用。
LTE 上限 16 个进程: 当 RTT > 进程数 × 时隙长度,所有进程卡在等反馈,基站发不出新数据(HARQ stalling)。
进程数是协议硬上限,不可配。
(2) 思路
要么把 RTT 压进协议限制,要么拆掉 stop-and-wait 的约束本身。
(3) 实际做法
-
4G:
- 压 RTT → 反过来==约束轨道高度与仰角==
- 关掉 HARQ 改用 RLC ARQ(上层基于序列号与状态报告的重传)→ 时延与开销上升、吞吐下降
-
NTN:
- 进程数 16 → 32
- 支持 按进程单独关闭 HARQ 反馈,长 RTT 业务走 RLC ARQ,其余照常,不必一刀切
第 4 步:移动性
(1) 问题
地面切换靠源/目标小区的信号强度差判决。卫星场景下 小区直径远小于轨道高度,星到小区内各点距离几乎相同,路损均匀 → 没有强度梯度。
不是测不准,是被测量本身不再携带位置信息。
(2) 思路
放弃"用信号强度推断位置",改用卫星场景下天然确定的信息:轨道可预测、波束落点已知。
(3) 实际做法
-
4G
- 只能沿用强度判决 → 切换与重选可靠性下降,原文未给出补救
-
NTN — 增强 CHO
- 条件切换: 网络预下发目标与触发条件,UE 自行判决执行
- 时间触发:网络给定时间窗,到点执行 → 适用 卫星切换,接替时刻可由轨道精确算出
- 位置触发:UE 估计自身相对源/目标小区参考点的位置 → 适用 相邻小区间移动
- 条件切换: 网络预下发目标与触发条件,UE 自行判决执行
演进与结论¶
Rel-17 之后 / 6G
方向是: GNSS-independent 运行
IoT-NTN 的补偿思路与 NR-NTN 一致: 额外增加 GNSS 测量传输间隙(部分终端无法同时运行 GNSS 与 NTN)
6G: 从一开始内建 NTN! 两项关键能力。不依赖 GNSS 的运行 + 多 RAT 频谱共享(平滑迁移)
| 维度 | unmodified 4G | 3GPP NTN |
|---|---|---|
| 补偿责任 | 网络侧! 对单一参考点最优 | UE 侧! GNSS + 星历自补偿 |
| 终端生态 | 成熟,存量手机即可用 | 需 Rel-17 之后新芯片 |
| 网络设计自由度 | 低,仅 LEO 可支撑 | 高,可适配多种星座 |
| 频谱 | 地面移动频段,不干扰不受保护 | MSS,国际框架成熟 |
| 定位 | 短期务实解 | 长期、面向未来 |
结论
unmodified 4G 把非地面信道的全部代价压在网络侧与星座设计上——波束必须小、轨道必须低、HARQ 必须让步、切换失去判决依据; 唯一但决定性的优势是: 存量终端即可用。
3GPP NTN 把补偿责任移交给具备 GNSS 的 UE,用一条 SIB 换回整个系统设计的自由度,代价是等待终端生态成熟。
IEEE ComSoc NTN¶
原文
https://techblog.comsoc.org/category/non-terrestrial-network-ntn/
TBD. Still working in process. (2026-0918)
两本好书¶
(1) 3GPP‐based Non‐Terrestrial Networks in 5G and 6G: Expanding the Frontiers of Wireless Communications
https://onlinelibrary.wiley.com/doi/book/10.1002/9781394203413
TBD. Still working in process. (2026-0918)
(2) 5G Non-Terrestrial Networks: Technologies, Standards, and System Design
https://ieeexplore.ieee.org/book/10402577
TBD. Still working in process. (2026-0918)
论文与产品¶
看一万遍, 不如对着源码跑一遍
(1) Amarisoft NR SA NTN: 传送门
- NR SA NTN (Non Terrestrial Network)
- NR SA NTN (Non Terrestrial Network) - UEsim
- LTE NB NTN (Non Terrestrial Network)
- NR SA D2C (Direct To Cell)
- LTE D2C (Direct To Cell)
- LteSat
详细内容笔者在 Amarisoft专题 集中展开!
(2) 5G NR NTN From Early Results to the Road Ahead: 传送门
(3) 5G NR NTN - Open Challenges for Full-Stack Protocol Design: 传送门
(4) 5G NR NTN Link-to-System Simulation in ns-3-NTN: 传送门
在 SIGCOMM LEO-NET Workshop (2026) 中详细展开!
(5) OAI NTN: 传送门

