🌍 3GPP NTN Timing Advance 仿真计算器
面向 3GPP R17/R18 Non-Terrestrial Networks 的高精度 TA 及其预补偿算法实现
📌 为什么选择本仿真平台?
| 痛点 | 本平台解决方案 |
|---|---|
| 🎯 不仅是公式堆砌 | ✅ 完整工程实现:从 WGS-84 坐标转换到光行时修正的完整链路 |
| 🔬 不仅是理论推导 | ✅ 所见即所得:提供 GUI 计算器,参数调整立即生效,直观理解物理过程 |
| ⚠️ 不仅是几何计算 | ✅ 高精度物理修正:包含定点迭代光行时修正 & Hopfield 对流层延迟模型 |
| 📊 不仅是代码片段 | ✅ 完整测试套件:包含 LEO/GEO 全场景覆盖的单元测试,确保逻辑严密 |
| 🧩 不仅是黑盒 | ✅ 代码透明可控:纯 MATLAB 实现,无加密,无专用工具箱依赖 |
🎯 核心价值
🔬 学术/标准研究价值
|
💼 工程/产品落地价值
|
⚡ 技术亮点
🌊 NTN TA 计算技术栈
┌────────────────────────────────────────────────────────────────────────┐
│ NTN TA 计算核心流程 │
├────────────────────────────────────────────────────────────────────────┤
│ │
│ UE(LLA) Sat(Ephemeris) │
│ │ │ │
│ ▼ ▼ │
│ [坐标转换] ──► [轨道外推] ──► [光行时迭代] ──► [大气修正] ──► [N_TA计算] │
│ lla2ecef linear_extrap fixed_point hopfield quantization │
│ │
│ 关键特性: │
│ WGS-84 椭球 | 线性/高阶外推 | 迭代收敛保证 | 对流层时延模型 │
└────────────────────────────────────────────────────────────────────────┘
📊 性能指标 (实测验证)
| 场景 | 距离 (km) | 单向时延 | 光行时修正量 | 对流层修正 (12°) | (采样点) |
|---|---|---|---|---|---|
| LEO (600km) | ~1,000 | ~3-5 ms | -0.05 μs | +0.04 μs | ~10^7 量级 |
| LEO (1200km) | ~2,000 | ~6-10 ms | -0.10 μs | +0.03 μs | ~3x10^7 量级 |
| GEO (36000km) | ~38,000 | ~120 ms | -0.15 μs | +0.02 μs | ~4.7x10^8 量级 |
💡 核心优势:针对 LEO 卫星的高动态特性,算法通过迭代修正消除了约 15-50 米 的测距误差,满足 5G NR 高精度同步要求。
🖥️ 运行环境
最低要求
| 项目 | 要求 |
|---|---|
| MATLAB版本 | R2021b 或更高 (推荐以获得最佳 GUI 体验) |
| 必需工具箱 | 无 (基于基础 MATLAB 语言开发) |
| 操作系统 | Windows 10/11, macOS, Linux |
🧠 算法原理
为什么需要光行时修正?
几何距离 != 物理距离:信号以光速传播,当信号到达卫星时,卫星已经不在发射时刻的位置了。 对于 LEO 卫星 (7.5 km/s),10ms 的传播延迟意味着卫星移动了 75米。如果不进行修正,这 75 米的误差会导致 TA 计算严重偏离,甚至导致接入失败。
算法流程
graph TD
A[输入: UE 位置 & 卫星星历] --> B[坐标系转换 LLA->ECEF]
A --> C[卫星轨道线性外推]
B & C --> D{光行时迭代求解?}
D -->|未收敛| E[更新卫星位置]
E --> D
D -->|收敛| F[叠加对流层延迟]
F --> G[量化为 Tc 单位]
G --> H[扣除 K_offset]
H --> I[输出最终 N_TA]
📁 项目结构
NTN_TA_Calculation/
├── 📂 src/ # 核心算法库
│ ├── lla2ecef.m # 🌍 WGS-84 坐标转换
│ ├── extrapolate_satellite.m # 🛰️ 卫星轨道外推
│ ├── compute_propagation_delay.m # ⚡ 光行时迭代求解器
│ ├── compute_tropospheric_delay.m# ☁️ Hopfield 大气模型
│ └── compute_ntn_ta.m # 🧮 主计算流程
│
├── 📂 gui/ # 交互界面
│ └── ta_calculator_gui.m # 🖥️ 图形化计算器 (App Designer)
│
├── main_ntn_ta_demo.m # 📊 综合演示脚本
├── 📂 tests/ # 测试套件
│ └── test_ta_calculation.m # ✅ 单元测试 (100% 通过)
│
└── 📂 docs/ # 文档
├── 算法文档.md # 📘 数学原理详述
代码统计:
- 📝 100% 中文详细注释,适合教学与二次开发
- 🔧 模块化设计:核心算法与 GUI 分离,易于移植到 C/C++ 或 Python
- 🧪 开箱即用:
main_mntn_ta_demo.m一键演示所有场景
🎬 仿真演示
1. 命令行演示 (main_ntn_ta_demo.m)
展示 4 种典型场景的计算过程与结果分析:
>> main_ntn_ta_demo
输出示例:
【场景 4: 对流层延迟与 K_offset 演示】
UE: (39.9N, 116.4E), Sat: (25.0N, 116.4E)
仰角: 11.8° (低仰角但可见)
[对流层]
启用修正: YES
附加时延: 0.039 μs
[K_offset]
N_ta_offset: 25600
N_TA (Physical): 23946627
N_TA (Pre-comp): 23921027
2. 图形化计算器 (ta_calculator_gui.m)
提供直观的参数调整与结果显示:
>> cd gui
>> ta_calculator_gui
功能: 支持自定义卫星位置、速度,实时查看 LEO/GEO 不同轨道高度下的时延与 TA 变化。

🛒 获取方式
本文代码仅为核心片段,完整版工程已整理好。 关注公众号 【3GPP仿真实验室】进行获取。
包含:
- 完整源代码
- 详尽的算法文档
- 3GPP 标准符合性报告
📚 参考文献
核心标准
- 3GPP TS 38.211: NR Physical channels and modulation ( 定义)
- 3GPP TS 38.213: Physical layer procedures for control (TA 机制)
- ITU-R P.834: Effects of the troposphere on refraction (大气模型)