完整的 OFDM 索引调制系统实现,从原理到实践的全链路仿真
| 痛点 | 本平台解决方案 |
|---|---|
| 📚 索引调制原理复杂难懂 | ✅ 完整链路实现,调制→信道→解调全流程透明可学习 |
| 🔧 索引表生成算法不熟悉 | ✅ Combinadic 编码实现,高效索引映射,参考论文代码化 |
| 📊 缺乏检测器性能对比 | ✅ 内置 ML/LLR/Greedy 三种检测器,一键对比 BER 性能 |
| ⚡ 功率分方案不清晰 | ✅ 自动功率增强,激活子载波获得 √(n/k) 增益 |
| 📡 与传统 OFDM 难以对比 | ✅ 内置 传统 OFDM 参考曲线,直观展示 IM 优势 |
🔬 学术研究价值
|
💼 工程应用价值
|
┌─────────────────────────────────────────────────────────────────┐ │ OFDM-IM 发射-接收链路 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ 比特流 ──► [索引编码] ──► [QAM调制] ──► [子载波映射] ──► [IFFT] │ │ │ │ │ │ │ │ Combinadic QPSK/QAM 稀疏放置 时域信号 │ │ │ │ ┌──────────────── 信道 ────────────────┐ │ │ │ AWGN / Rayleigh │ │ │ └──────────────────────────────────────┘ │ │ │ │ [FFT] ──► [均衡] ──► [检测器] ──► [索引解码] ──► 恢复比特 │ │ │ │ │ │ │ │ 频域 ZF/MMSE ML/LLR/Greedy 比特恢复 │ └─────────────────────────────────────────────────────────────────┘
| 配置 | SNR | OFDM-IM BER | 传统 OFDM BER | 能效增益 |
|---|---|---|---|---|
| n=4, k=2, QPSK | 10 dB | 1.2e-3 | 4.5e-3 | 3 dB |
| n=4, k=2, QPSK | 15 dB | 2.1e-5 | 3.8e-4 | 3 dB |
| n=8, k=4, 16QAM | 15 dB | 8.5e-3 | 1.2e-2 | 3 dB |
💡 能效优势:OFDM-IM 仅激活 k/n 子载波,发射功率集中在激活位置,获得 10log₁₀(n/k) dB 的能效增益。
| 项目 | 要求 |
|---|---|
| MATLAB版本 | R2021b 或更高 |
| 必需工具箱 | Communications Toolbox |
| 操作系统 | Windows 10/11, macOS, Linux |
| 内存 | 4 GB+ |
>> cd packages/P1_基础包 >> setup_path >> generate_plots
传统 OFDM:所有 N 个子载波都携带数据符号。
OFDM-IM:将子载波分成子块,每个子块只激活 k 个 (k < n),激活模式本身携带额外比特。
索引比特数:
$$ p 1 = \lfloor \log2 C(n,k) \rfloor $$
数据比特数:
$$ p 2 = k \cdot \log2 M $$
频谱效率:
$$ \eta = \frac{G(p 1 + p2)}{N + N_{CP}} $$
ML 检测器:
$$
(\hat{\mathcal{I}}, \hat{\mathbf{s}}) = \arg\min \sum {i \in \mathcal{I}} |yi - H i si|^2 + \sum {j \notin \mathcal{I}} |yj|^2 $$
P1_基础包/ ├── 📂 core/ # 核心调制解调 │ ├── im_modulator.m # 🚀 OFDM-IM 调制器 │ ├── im_demodulator.m # 🚀 OFDM-IM 解调器 (ML/LLR/Greedy) │ └── im_table.m # Combinadic 索引表生成 │ ├── 📂 channels/ # 信道模型 │ ├── awgn_channel.m # AWGN 高斯信道 │ └── rayleigh_channel.m # 瑞利衰落信道 │ ├── 📂 channel_estimation/ # 信道估计 │ ├── ls_estimator.m # LS 最小二乘估计 │ └── lmmse_estimator.m # LMMSE 估计 │ ├── 📂 config/ # 配置参数 │ ├── default_params.m # 默认参数生成 │ └── validate_params.m # 参数验证 │ ├── 📂 utils/ # 工具函数 │ ├── calculate_ber.m # BER 计算 │ └── calculate_papr.m # PAPR 计算 │ ├── 📂 sim/ # 仿真脚本 ├── 📂 docs/ # 文档 │ ├── 算法文档.md # 📘 数学推导与原理 │ ├── 代码文档.md # 📒 接口说明 │ └── 项目文档.md # 📗 本文档 │ ├── generate_plots.m # 📊 一键生成 BER 曲线 └── generate_ber_plots.m # 📊 检测器对比图
代码统计:

| 内容 | 说明 |
|---|---|
| 📁 完整源码 | 调制、解调、信道、检测全覆盖 |
| 📖 原理文档 | 索引调制数学推导、Combinadic 编码详解 |
| 🚀 三种检测器 | ML 最优 / LLR 平衡 / Greedy 低复杂度 |
| 📊 可视化套件 | 一键生成 BER 曲线、星座图 |
| 🔧 灵活配置 | 自定义 n/k/M 参数,支持多场景 |
| 📡 多信道支持 | AWGN + 瑞利衰落信道模型 |
本文代码仅为核心片段,完整版工程已整理好。 关注公众号 【 3GPP仿真实验室】进行获取。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70049237/viewspace-3110062/ ,如需转载,请注明出处,否则将追究法律责任。