乐于分享
好东西不私藏

【MATLAB源码】OTFS-SCMA:链路仿真平台

【MATLAB源码】OTFS-SCMA:链路仿真平台

🚀 OTFS-SCMA 下行链路仿真平台

完整双层接收机链路复现 · OTFS + SCMA + MMSE + MPA · 中文工程化文档支持完整 BER 仿真、快速演示、8 张深度可视化图自动生成

📌 为什么选择本仿真平台?

很多 OTFS/SCMA 示例代码存在同类问题:链路不完整、函数耦合重、文档缺失、图像输出散乱。 本项目目标是把“能跑通”升级为“可讲解、可复现、可扩展”的工程级平台。

常见痛点
本项目解决方案
🔴 仅有单段算法示例,缺少端到端链路
✅ 发送端到接收端全链路闭环:SCMA 编码 →OTFS 调制 → 信道 →MMSE→MPA→BER
🔴 中间变量不可视化,难以验证过程正确性
demo_advanced_visualization.m 输出 8 张机制图,覆盖信道、因子图、收敛行为
🔴 参数散落、脚本职责不清晰
✅ 三入口脚本职责明确:fulldemoadvanced 分层定位
🔴 码本与因子图关系不透明
✅ 从 codebook_J6_K4.mat 自动提取 F,结构与检测器直接对齐
🔴 难以快速二次开发
✅ 核心函数拆分到 functions/,接口清晰,便于替换算法模块

🎯 核心价值

🔬 学术研究价值

  • 完整实现 OTFS-SCMA 下行链路双层接收机:线性 MMSE + 图推断 MPA
  • 可直接用于过载稀疏多址场景中的检测性能研究
  • 提供算法文档与代码文档双文档体系,便于论文与工程对照
  • 支持迭代次数、SNR 范围、误码统计门限等关键实验控制参数

💼 工程应用价值

  • 模块化函数设计,低耦合,便于插拔替换
  • 内置结果产物规范化输出(results/*.png
  • 对中间链路有可视化证据,便于回归测试与故障定位

⚡ 技术亮点

🏗️ 完整工程结构

OTFS_SCMA_downlink_refactored/ ├── main_otfs_scma_full.m                 # 完整 BER 蒙特卡洛仿真 ├── main_otfs_scma_demo.m                 # 快速演示仿真 ├── demo_advanced_visualization.m         # 高级可视化 + 收敛分析 ├── data/ │   └── codebook_J6_K4.mat                # SCMA 码本 ├── functions/ │   ├── otfs_modulation.m                 # OTFS 调制 │   ├── otfs_demodulation.m               # OTFS 解调 │   ├── otfs_channel_gen.m                # 多径系数生成 │   ├── otfs_channel_output.m             # 信道传播与噪声叠加 │   ├── build_otfs_channel_matrix.m       # OTFS 等效信道矩阵 │   ├── otfs_mmse_detect.m                # MMSE 均衡 │   ├── extract_indicator_matrix.m        # 因子图指示矩阵提取 │   ├── build_scma_channel_matrix.m       # SCMA 结构化信道矩阵 │   └── scma_mpa_detect.m                 # LLR 域 MPA 检测 ├── results/                              # 图像输出目录 └── docs/     ├── 算法文档.md     └── 代码文档.md

🔁 链路级信号流

随机比特   ↓ SCMA码字映射(J=6, K=4)   ↓ 多用户叠加到DD网格   ↓ OTFS调制(ISFFT + Heisenberg)   ↓ 时延-多普勒多径信道 + AWGN   ↓ OTFS解调(Wigner + SFFT)   ↓ OTFS等效信道矩阵构建 H_rect   ↓ MMSE一级均衡   ↓ SCMA结构映射 H_eff   ↓ MPA二级多用户检测(LLR域迭代)   ↓ 符号恢复 / BER统计

📐 默认参数(项目基线)

参数
OTFS 网格
N=8, M=8
SCMA 配置
J=6, K=4, M_mod=4
多径模型
taps=4, delay_taps=0:3, Doppler_taps=0:3
MPA 参数
n_ite=10, cf=10000
完整仿真 SNR
5:5:30 dB
快速仿真 SNR
5:5:25 dB

🧠 模块深度解读

1) 入口脚本分层

  • main_otfs_scma_full.m
     定位:高置信 BER 曲线生成。 机制:每个 SNR 点采用“错误比特累计到阈值再停止”。 产物:results/ber_curve_full.png
  • main_otfs_scma_demo.m
     定位:快速功能验证。 机制:缩小 SNR 范围与错误门限,优先速度。 产物:results/ber_curve_demo.png
  • demo_advanced_visualization.m
     定位:可解释性分析。 机制:单帧深度图(图 1~7)+ 小规模多参数 BER 对比(图 8)。 产物:results/fig1~fig8_*.png

2) 函数职责总览

函数
主要输入
主要输出
核心职责
otfs_modulation N,M,x(N×M) s(MN×1)
DD→TF→ 时域变换
otfs_demodulation N,M,r(MN×1) y(N×M)
时域 →TF→DD 逆变换
otfs_channel_gen N,M,taps chan_coef(1×taps)
瑞利多径系数生成
otfs_channel_output delay/Doppler/chan_coef/sigma_2/s r
多径传播 +AWGN
build_otfs_channel_matrix delay_taps,Doppler_taps,chan_coef,M,N H_rect(MN×MN)
DD 等效矩阵构建
otfs_mmse_detect yr,H,sigma_2,N,M x_est(N×M)
一级线性均衡
extract_indicator_matrix C,J,K F(K×J)
从码本提取因子图
build_scma_channel_matrix H_rect,F,J,K,M,N H_eff
SCMA 结构化映射
scma_mpa_detect yr,sigma_2,h_matrix,max_iter,C,K,N,M,cf symbol_indices_hat
LLR 域迭代检测

3) 数据与图结构绑定

码本文件 data/codebook_J6_K4.mat 中矩阵 C 是全链路核心静态资源:

  • 发送端:索引到码字完成 SCMA 映射
  • 中间层:extract_indicator_matrix 自动生成 F(K×J)
  • 接收端:scma_mpa_detect 利用同一码本做组合似然推断

这保证了“发端码本结构”和“收端因子图结构”天然一致。

💻 核心代码展示

🔥 片段 1:OTFS 调制(ISFFT + Heisenberg)

% ISFFT X = fft(ifft(x).').'/sqrt(M/N); % Heisenberg s_mat = ifft(X.')*sqrt(M); s = s_mat(:);

🚀 片段 2:OTFS 等效信道矩阵索引填充

eff_ele2 = mod(ele2-1 + Doppler_taps(tap_no), N) + 1; new_chan = add_term * add_term1 * chan_coef(tap_no); H_rect(N*(eff_ele1-1) + eff_ele2, N*(ele1-1) + ele2) = new_chan;

📡 片段 3:MPA LLR 域核心更新

U_sum(abs(U_sum) >= cf) = cf * sign(U_sum(abs(U_sum) >= cf)); U((k-1)*M_mod + m, pr_j) = log(sum(exp(U_sum))); ... if check_value < 0.0001     break; end

🎬 一键运行

% 进入项目根目录后,任选入口执行 % 完整 BER 基线 >> main_otfs_scma_full % 快速演示(推荐开发阶段先跑) >> main_otfs_scma_demo % 深度可视化与迭代收敛分析 >> demo_advanced_visualization

🖼️ 输出产物说明

BER 曲线

  • results/ber_curve_full.png
  • results/ber_curve_demo.png

高级可视化 8 图

  1. fig1_channel_dd_response.png
    :时延-多普勒信道响应
  2. fig2_scma_factor_graph.png
    :SCMA 因子图和 F 热力图
  3. fig3_multiuser_superposition.png
    :多用户叠加过程
  4. fig4_otfs_modulation_flow.png
    :OTFS 调制流程
  5. fig5_channel_matrix_sparsity.png
    H_rect 与 H_eff 稀疏结构
  6. fig6_mmse_equalization.png
    :均衡前后对比
  7. fig7_mpa_convergence.png
    :MPA 收敛曲线
  8. fig8_ber_vs_mpa_iterations.png
    :不同迭代次数 BER 对比

🛒 获取方式

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 【MATLAB源码】OTFS-SCMA:链路仿真平台

评论 抢沙发

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