???? OTFS-SCMA 下行链路仿真平台
完整双层接收机链路复现 · OTFS + SCMA + MMSE + MPA · 中文工程化文档
支持完整 BER 仿真、快速演示、8 张深度可视化图自动生成
????%20为什么选择本仿真平台?
很多%20OTFS/SCMA%20示例代码存在同类问题:链路不完整、函数耦合重、文档缺失、图像输出散乱。%20 本项目目标是把“能跑通”升级为“可讲解、可复现、可扩展”的工程级平台。
| 常见痛点 | 本项目解决方案 |
|---|---|
| ????%20仅有单段算法示例,缺少端到端链路 | ✅%20发送端到接收端全链路闭环:SCMA%20编码%20→OTFS%20调制%20→%20信道%20→MMSE→MPA→BER |
| ????%20中间变量不可视化,难以验证过程正确性 | ✅
demo_advanced_visualization.m%20输出%208%20张机制图,覆盖信道、因子图、收敛行为 |
| ????%20参数散落、脚本职责不清晰 | ✅%20三入口脚本职责明确:
full、 demo、 advanced%20分层定位 |
| ????%20码本与因子图关系不透明 | ✅%20从%20
codebook_J6_K4.mat%20自动提取%20 F,结构与检测器直接对齐 |
| ????%20难以快速二次开发 | ✅%20核心函数拆分到%20
functions/,接口清晰,便于替换算法模块 |
????%20核心价值
????%20学术研究价值
完整实现%20OTFS-SCMA%20下行链路双层接收机:线性%20MMSE%20+%20图推断%20MPA 可直接用于过载稀疏多址场景中的检测性能研究 提供算法文档与代码文档双文档体系,便于论文与工程对照 支持迭代次数、SNR%20范围、误码统计门限等关键实验控制参数????%20工程应用价值
模块化函数设计,低耦合,便于插拔替换 内置结果产物规范化输出(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 图
fig1_channel_dd_response.png:时延-多普勒信道响应
fig2_scma_factor_graph.png:SCMA 因子图和
F热力图
fig3_multiuser_superposition.png:多用户叠加过程
fig4_otfs_modulation_flow.png:OTFS 调制流程
fig5_channel_matrix_sparsity.png:
H_rect与
H_eff稀疏结构
fig6_mmse_equalization.png:均衡前后对比
fig7_mpa_convergence.png:MPA 收敛曲线
fig8_ber_vs_mpa_iterations.png:不同迭代次数 BER 对比

???? 获取方式
本文代码仅为核心片段,完整版工程已整理好。 关注公众号 【 3GPP 仿真实验室】进行获取。
