【MATLAB源码】5G-A:PRS 链路级定位仿真平台

8 阅读4分钟

🚀 NR-PRS Native 5G 高精度定位仿真平台

Rel-16/17 PRS 完整原生实现
子采样精度 (Sub-sample) + 空间波束赋形 (Beamforming) + 异步 Multi-RTT + 协议级静默 (Muting)


📌 为什么选择本平台?

在 5G 专网、工业互联网和 6G 先行研究中,定位精度是核心。本平台提供了一套完全透明、比特级对齐 (Bit-exact) 的原生实现,主攻高精度 TOA 估计与复杂协议调度。

行业痛点 (Standard Implementation)本平台解决方案 (Native NR-PRS)
📦 依赖商业工具箱Zero-Dependency:纯原生代码,支持任何 MATLAB 基础版
🌑 算法逻辑“黑盒化”全透明架构:从 Gold 序列递归到 IFFT 移位均有数学证明
📏 测量精度受限于采样率子采样插值:采用抛物线拟合技术,精度突破 1/fs1/f_s 物理限制
🚧 NLOS/多径干扰严重首径检测 (First-path):内置能量门限算法,精准捕捉第一径
🔄 不同步组网无法定位Multi-RTT 支持:双向时延测量,天然抵消基站间微秒级偏差

🎯 核心价值

🔬 学术研究价值

  • 协议深度:完整实现 Rel-16 层级静默 (Option-1/2) 与多资源 [Period, Offset] 调度。
  • 高阶建模:集成空间波束赋形增益模型,模拟 MIMO 天线指向性对定位的影响。
  • 严格证明:代码实现与 cinit,k,δoffsetc_{init}, k', \delta_{offset} 等 LaTeX 公式一一对应。
  • 多协议流:支持 OTDOA (下行) 与 Multi-RTT (双向) 联合比对。

💼 工程应用价值

  • 极致性能:在 4 基站标准场景下,RMSE 定位误差稳定在 1.432m (SNR=30dB)。
  • 一键自动化:内置 run_all_simulations.m,自动运行并抓取全套高清结果。
  • 模块化集成:Modulator, Estimator, Solver 完全解耦,极易集成至更大规模仿真。
  • 全中文:全中文专业标注,适合高水准演示与技术汇报。

⚡ 技术亮点

📊 专业性能指标

关键参数性能指标技术手段
TOA 分辨率< 1ns子采样抛物线插值 (Sub-sample)
系统级误差~1.4m (RMS)4-BS OTDOA 最小二乘求解
抗非同步性ImmuneMulti-RTT 双向时延对消证明
处理增益12~24 dB频域相干累积 + Comb 结构拼图

📁 目录结构

PRS-Native-Project/
├── src/                          # 原生算法内核
│   ├── nr_gold_gen.m             # Gold 序列 31 位移位寄存器实现
│   ├── nr_prs_gen_native.m       # [核心] 多资源/多时隙调度渲染器
│   ├── nr_prs_estimate_native.m  # [核心] 带插值与首径检测的估计器
│   ├── nr_ofdm_mod_native.m      # 协议级 OFDM 调制 (支持 SCS 缩放)
│   ├── nr_otdoa_solver.m         # 非线性最小二乘定位坐标结算器
│   └── ...                       # 其他协议查找表 (k_prime, cinit)
├── run_all_simulations.m         # 一键运行全场景演示 (Master Automation)
├── main_*.m                      # "黄金六图" 独立演示程序
├── results/                      # [自动生成] 仿真高清 PNG 存档
└── docs/                         # 深度文档体系
    ├── 算法文档.md               # 严谨数学证明与 TeX 公式
    ├── 时频映射详细规范.md       # 微观 RE 级跳变解析
    └── 代码实现文档.md           # 架构、API 与数据流说明

💻 核心代码预览

🔥 子采样高精度插值 (src/nr_prs_estimate_native.m)

% 采用局部抛物线三点拟合,从离散采样中恢复连续峰值
if use_subsample
    y0 = pdp(peak-1); y1 = pdp(peak); y2 = pdp(peak+1);
    denom = 2 * (2*y1 - y0 - y2);
    offset = (y2 - y0) / denom; % 导数为 0 处的解析偏移量
    refined_idx = (peak-1) + offset;
end

🌟 空间波束增益模型 (src/nr_prs_beam_gain_native.m)

% 模拟 5G 窄波束主瓣增益与空间能量分布
standard_sigma = beam_width / (2 * sqrt(2 * log(2)));
gain_db = -12 * (angle_diff / beam_width)^2; % 高斯波束近似
spatial_gain = 10^(max(gain_db, -20)/10);

🎬 运行指引

% 旗舰自动化演示:一键运行全部 6 种场景并自动保存图片至 results/
>> run_all_simulations

% 独立运行链路验证 (PDP 可视化)
>> main_prs_link_sim_native

% 独立运行异步组网 RTT 仿真
>> main_multi_rtt_sim_native

prs_beamforming_sim.png prs_mapping_v1_micro.png prs_mapping_v2.png prs_slots_scheduling.png prs_multi_rtt_sim.png

🛒 获取方式

本文代码仅为核心片段,完整版工程已整理好。 关注公众号 【3GPP仿真实验室】进行获取。  __________  - -transformed.bmp; filename=UTF-8''æ_«ç æ__ç´¢è__å__ä¼ æ__æ ·å¼-æ å__è_²ç-transformed.png


📚 参考文献

[1] 3GPP TS 38.211: "NR; Physical channels and modulation" [2] 3GPP TS 38.305: "NG Radio Access Network (NG-RAN); Stage 2 positioning spec" [3] Rel-16 Enhancements for PRS, RSTD and RTT measurements.


🔬 理论严谨 · 💻 原生实现 · 🚀 自动化交付