# 🚀 5G NR 大规模 MIMO 检测算法仿真平台
面向 5G/6G 多天线系统的高性能软输出检测器完整实现
| 痛点 | 本平台解决方案 |
|---|---|
| 📚 MIMO 检测算法复杂难懂 | ✅ 8 种主流算法全覆盖,从线性到非线性,代码结构清晰透明 |
| 🔧 软信息 (LLR) 计算易出错 | ✅ 鲁棒 LLR 实现,自动处理反假设缺失 (Counter-Hypothesis Missing) |
| 📊 缺乏统一对比框架 | ✅ 内置 一键多算法对比仿真,自动生成 BER 曲线 |
| ⚡ 高阶调制复杂度高 | ✅ 智能算法筛选,自动跳过不适用的 MLD/SD 算法 |
| 📡 信道模型不够真实 | ✅ 集成 3GPP TDL/CDL 标准信道模型,支持高移动性场景 |
┌───────────────────────────────────────────────────────────────┐ │ MIMO 检测器信号流 │ ├───────────────────────────────────────────────────────────────┤ │ │ │ y = Hx + n ──► [预处理] ──► [检测器] ──► [LLR计算] ──► [LDPC] │ │ │ │ │ │ │ │ QR分解/LLL ZF/MMSE/ Max-Log-MAP 译码 │ │ LSD/K-Best │ │ │ │ 支持算法: │ │ ZF | MMSE | OSIC | K-Best | LSD | SD | LR-MMSE | MLD │ └───────────────────────────────────────────────────────────────┘
| 场景 (4x4 Rayleigh) | 调制方式 | Eb/N0 | ZF BER | LSD BER | 增益 |
| --------------------- | ---------- | ------- | -------- | ------------------ | ------------------ |
| 基础验证 | QPSK | 4 dB | 2.1e-2 | 8.5e-3 | 2.5 倍 |
| 进阶测试 | 16QAM | 8 dB | 5.2e-2 | 2.7e-2 | 1.9 倍 |
| 高阶调制 | 64QAM | 12 dB | 8.1e-2 | 4.0e-2 | 2.0 倍 |
💡 软信息优势:LSD 输出的软 LLR 结合 LDPC 译码,相比硬判决检测器具有显著的编码增益。
| 项目 | 要求 |
|---|---|
| MATLAB 版本 | R2023b 或更高 (推荐) |
| 必需工具箱 | Communications Toolbox, 5G Toolbox |
| 推荐工具箱 | Signal Processing Toolbox |
| 操作系统 | Windows 10/11, macOS, Linux |
| 内存 | 8 GB+ (8x8 MIMO 仿真建议 16GB) |
% 在MATLAB命令窗口运行 >> ver 5g % 应显示 5G Toolbox 版本信息
问题:在多天线系统中,接收信号 \$\\mathbf{y} = \\mathbf{H}\\mathbf{x} + \\mathbf{n}\$ 是多个发射流的叠加,需要从混叠信号中恢复原始符号。
解决方案:
MMSE 检测器:
$$ \mathbf{W} {MMSE} = (\mathbf{H}^H\mathbf{H} + \sigman^2 \mathbf{I})^{-1}\mathbf{H}^H $$
Max-Log-MAP LLR 计算:
$$
L(b k) \approx \min{\mathbf{x} \in \mathcal{L} {bk=1}} \frac{\|\mathbf{y}-\mathbf{H}\mathbf{x}\|^2}{\sigma n^2} - \min{\mathbf{x} \in \mathcal{L} {bk=0}} \frac{\|\mathbf{y}-\mathbf{H}\mathbf{x}\|^2}{\sigma_n^2} $$
鲁棒 LLR (本项目特色):当候选列表缺少某比特假设时,避免 LLR 无穷大。
MIMO Equalization/
├── 📂 mimo_detection/
│ ├── 📂 core/ # 核心检测算法库
│ │ ├── detect_linear.m # 线性检测器 (ZF, MMSE)
│ │ ├── detect_osic.m # 排序串行干扰消除 (OSIC)
│ │ ├── detect_mld.m # 最大似然检测 (MLD - 基准)
│ │ ├── detect_sd.m # 球形译码 (SD - 硬判决)
│ │ ├── detect_lsd.m # 🚀 列表球形译码 (LSD - 推荐)
│ │ ├── detect_kbest.m # K-Best 检测器 (广度优先)
│ │ ├── detect_mmse_pic.m # MMSE 并行干扰消除
│ │ ├── detect_lr.m # 格基规约辅助检测
│ │ └── lll_process.m # LLL 格基规约算法
│ │
│ ├── 📂 utils/ # 工具函数库
│ │ ├── gen_5g_channel.m # 5G NR 信道生成 (TDL/CDL)
│ │ ├── mod_5g.m # 5G 调制封装 (nrSymbolModulate)
│ │ ├── demod_5g.m # 5G 解调封装 (nrSymbolDemodulate)
│ │ ├── mimo_detect_wrapper.m # 统一检测器调用接口
│ │ └── llr2softsym.m # LLR 转软符号
│ │
│ ├── 📂 sims/ # 仿真脚本 ("一键运行")
│ │ ├── sim_main_comparison.m # 📊 多算法/多场景综合对比
│ │ ├── diag_basic_link.m # 非编码链路诊断
│ │ └── diag_coded_link.m # 编码链路诊断
│ │
│ └── 📂 tests/ # 单元测试
│ ├── test_robust_llr.m # 鲁棒 LLR 验证
│ ├── test_detectors.m # 检测器基础测试
│ └── test_utils.m # 工具函数测试
│
└── 📂 docs/ # 文档
├── 算法文档.md # 📘 算法原理详述 (含公式推导)
└── 项目文档.md # 📒 项目介绍 (本文档)
代码统计:
>> cd mimo_detection/sims >> sim_main_comparison
| 场景 ID | 名称 | 配置 |
| --------- | ------------ | ---------------------------------- |
| 1 | 基础验证 | 4x4 QPSK, Rayleigh, -4\~6 dB |
| 2 | 进阶测试 | 4x4 16QAM, Rayleigh, 0\~12 dB |
| 3 | 真实信道 | 4x4 64QAM, TDL-C 300ns, 5\~18 dB |
| 4 | 大规模天线 | 8x8 QPSK, Rayleigh, -2\~8 dB |
| 5 | 极限挑战 | 8x8 16QAM, TDL-A, 2\~16 dB |


| 内容 | 说明 |
|---|---|
| 📁 完整源码 | 覆盖 8 种主流检测算法,ZF 到 LSD 全覆盖 |
| 📖 原理文档 | MMSE/LSD/K-Best/LR 详细推导与实现说明 |
| 🚀 高效算法 | Schnorr-Euchner 枚举加速的 LSD 实现 |
| 📊 对比套件 | 一键生成多算法 BER 性能对比图 |
| 🔧 鲁棒设计 | 自动处理 LLR 异常、智能跳过高复杂度算法 |
| 📡 5G 兼容 | 集成 3GPP TDL/CDL 信道与 LDPC 编解码 |
本文代码仅为核心片段,完整版工程已整理好。 关注公众号 【 3GPP仿真实验室】进行获取。
🚀 立即获取,开启 5G/6G 大规模 MIMO 检测研究之旅!
© 2026 版权所有
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70049237/viewspace-3107898/ ,如需转载,请注明出处,否则将追究法律责任。