乐于分享
好东西不私藏

【MATLAB源码】OTFS/OCDM/AFDM:高机动 NTN 均衡对比仿真平台

【MATLAB源码】OTFS/OCDM/AFDM:高机动 NTN 均衡对比仿真平台

🚀 OTFS/OCDM/AFDM 高机动 NTN 对比仿真平台

统一信道建模 · 三体制公平对比 · 双检测器性能评估

支持 OTFS / OCDM / AFDM 一键仿真,输出 BER 曲线与结构化结果文件

   

📌 为什么需要这个项目?

高机动场景下(高速终端、卫星链路)时延-多普勒扩散显著,传统单波形脚本很难回答“到底哪种体制在当前参数下更稳”。常见问题包括:

常见痛点(零散脚本)
本项目解决方式
🔴 参数不统一,体制对比不公平
✅ 统一 K/L/M/SNR/NTN 参数链,三体制同口径
🔴 信道模型拆散在多处,难验证正确性
✅ 通用 NTN_channels+ 兼容封装 NTN_channels1/2
🔴 只有一种检测器,无法比较检测增益
✅ 同时支持 LMMSE 与 MMSE-SD
🔴 输出文件命名混乱、结果难复现
✅ 固定文件名输出,单目录清晰落盘

🎯 核心价值

🔬 研究价值

  • 公平比较框架:同一 NTN 参数下评估 OTFS/OCDM/AFDM。
  • 统一检测口径:在每个体制内同时给出 LMMSE 与 MMSE-SD。
  • 可解释链路:信道构造、域变换、等效信道、检测与 BER 统计全链路闭环。
  • 可复现实验:固定随机种子与固定输出行为,便于重复实验和论文复核。

💼 工程价值

  • 模块化结构清晰:入口脚本薄、算法模块独立、工具函数复用。
  • 输出可直接集成:图像 + MAT 结构化结果适合后处理与报告自动化。
  • 扩展路径明确:新增体制、新增检测器可低耦合接入。
  • 维护门槛低:全中文注释与文档,利于团队协作交接。

⚡ 技术亮点

🏗️ 完整工程架构

OTFS-OCDM-AFDM/
 ├── run_unified_comparison.m        # 正式仿真入口(full)
 ├── demo_waveform_showcase.m        # 演示入口(demo)
 ├── src/
 │   ├── default_params.m            # 参数工厂:full/demo 模式
 │   ├── prepare_output_dir.m        # 输出目录准备 + 旧结果清理
 │   ├── run_ocdm_simulation.m       # OCDM 仿真主循环
 │   ├── run_afdm_simulation.m       # AFDM 仿真主循环
 │   ├── run_otfs_simulation.m       # OTFS 仿真主循环
 │   ├── NTN_channels.m              # 通用 NTN 信道矩阵构造
 │   ├── NTN_channels1.m             # AFDM 兼容信道封装
 │   ├── NTN_channels2.m             # OCDM(含CP)兼容信道封装
 │   ├── mmse_sd_detector_unified.m  # MMSE-SD 统一检测器
 │   ├── normalize_channel_matrix.m  # 信道归一化
 │   ├── symbols_to_bits.m           # 符号转比特工具
 │   ├── plot_comparison_results.m   # 曲线绘图与保存
 │   └── print_performance_summary.m # 终端摘要与结构化统计
 └── docs/
     ├── 算法文档.md
     ├── 代码文档.md

📊 实测性能(full 模式结果)

数据来源:outputs/unified_comparison_results.mat(当前项目实测输出)

LMMSE BER

SNR (dB)
OCDM
AFDM
OTFS
最优体制
0
3.150e-01
3.073e-01
3.071e-01
OTFS
4
2.299e-01
2.165e-01
2.171e-01
AFDM
8
1.469e-01
1.254e-01
1.268e-01
AFDM
12
7.530e-02
4.730e-02
4.740e-02
AFDM
16
3.080e-02
8.200e-03
7.900e-03
OTFS
20
1.370e-02
9.000e-04 9.000e-04
AFDM/OTFS 并列

MMSE-SD BER

SNR (dB)
OCDM
AFDM
OTFS
最优体制
0
3.154e-01
3.076e-01
3.073e-01
OTFS
4
2.312e-01
2.173e-01
2.179e-01
AFDM
8
1.500e-01
1.272e-01
1.285e-01
AFDM
12
7.880e-02
4.750e-02
4.770e-02
AFDM
16
3.340e-02
5.900e-03
5.800e-03
OTFS
20
1.800e-02
2.000e-04
3.000e-04
AFDM

结论:在当前配置下,AFDM 与 OTFS 在中高 SNR 区间显著优于 OCDM;MMSE-SD 相对 LMMSE 的增益在高 SNR 更明显。

💻 核心实现展示

1) OCDM:Fresnel 域有效信道构造

% 发射端:QAM符号 -> OCDM调制 -> 加循环前缀 s_qam = qammod(x, params.M, 'UnitAveragePower', true); s_ocdm = IFSnT * s_qam; s_cp = CP_mtx * s_ocdm; % 有效信道构造与归一化 Heff = R_mtx * H * CP_mtx; D = normalize_channel_matrix(FSnT * Heff * IFSnT);

2) AFDM:DAFT 域等效信道

% DAFT 变换矩阵 A = D2 * DFT * D1; AH = A'; % 仿射域信道与检测输入 Y = A * r_time; H_daft = normalize_channel_matrix(A * HT * AH);

3) OTFS:DD 域等效化

% OTFS 变换算子 OP = kron(WH, eye(M)); % 时域信道 -> DD域等效信道 H_eff = normalize_channel_matrix(OP' * HT * OP); r_dd = H_eff * x + w;

4) MMSE-SD:增广系统 + QR 回代

A = [H; reg * eye(n_tx)]; b = [y; zeros(n_tx, 1)]; [Q, R] = qr(A, 0); z = Q' * b; for i = n_tx:-1:1     inter = R(i, i+1:end) * x_hat(i+1:end);     rhs = z(i) - inter;     soft_val = rhs / R(i, i);     x_hat(i) = nearest_constellation(soft_val, constellation); end

🔄 端到端调用链

run_unified_comparison / demo_waveform_showcase         ↓ default_params(mode)         ↓ prepare_output_dir(...)         ↓ run_ocdm_simulation run_afdm_simulation run_otfs_simulation         ↓ plot_comparison_results print_performance_summary         ↓ save(...results, params, summary, plot_paths)

🎬 一键运行

% 进入工程目录 cd('D:/03_代码库/04.code4sale/OTFS-OCDM-AFDM') % 快速演示 run('demo_waveform_showcase.m') % 正式仿真 run('run_unified_comparison.m')

📂 输出预览

当前输出目录:outputs/

典型结果文件:

  • unified_comparison_results.mat
  • ber_comparison_full.png
  • ber_comparison_full.fig
  • demo_results.mat
  • ber_comparison_demo.png
  • detector_gain_demo.png

图像示例:

🖥️ 运行环境

  • MATLAB:R2020a 或更高版本(建议 R2022a+)
  • 依赖函数:
    • qammod / qamdemod
      (通信相关工具箱)
    • physconst
      (物理常量函数)

🛒 获取方式

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 【MATLAB源码】OTFS/OCDM/AFDM:高机动 NTN 均衡对比仿真平台

评论 抢沙发

8 + 5 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮