文章目录
-
- 摘要
- 1 背景意义
-
- 1.1 研究背景
- 1.2 研究意义
- 2 仿真设计
- 3 仿真分析
- 4 总结
摘要
在 6G 通信的研究浪潮中,OTFS(正交时频空) 被视为应对高多普勒频移、高速移动场景的候选波形。传统的 OFDM 在双选择性信道(时变 + 频选)下会因子载波间干扰而性能陡降,而 OTFS 将信息映射在延迟‑多普勒域,使每个符号经历几乎恒定的信道增益,从而有效对抗时间‑频率弥散。本文实现了 OTFS 和 OFDM 在 AWGN 和双选择性信道下的端到端链路,并通过蒙特卡洛方法对比了二者的 BER 性能。
1 背景意义
1.1 研究背景
无线通信的演进与 6G 愿景: 从 4G 到 5G,OFDM(正交频分复用) 凭借其频谱利用率高、实现简单的优点,长期占据空口波形的核心地位。然而,随着 6G 通信的蓝图逐渐展开,应用场景正从“低速静止”向“高速移动”和“空天地海一体化”急剧拓展:
-
超高速度轨道交通:高铁时速可达 500 km/h 以上,未来甚至向 1000 km/h(超高速管道交通)迈进;
-
低轨卫星通信:卫星相对地面终端的径向速度极大,产生显著的多普勒频移;
-
无人机蜂群与 V2X(车联网):高机动性终端间的相对运动剧烈;
-
高频段通信:6G 将向毫米波(mmWave)乃至太赫兹(THz)频段延伸。载波频率的大幅提升将导致多普勒频移呈线性剧增。
-
在上述高移动性场景中,信道呈现双选择性(Doubly Selective)特征——即时间选择性(由多普勒频移引起)和频率选择性(由多径时延引起)同时存在。
OFDM 在高移动性下的瓶颈:OFDM 系统依赖子载波间的严格正交性来分离数据。在双选择性信道下,快速时变破坏了这种正交性,引发严重的子载波间干扰。
-
传统的 OFDM 接收机(如单抽头频域均衡)仅能补偿子载波上的相位旋转,无法抑制多普勒弥散带来的邻频泄漏。
-
即使引入复杂的 MMSE 或干扰消除算法,OFDM 在高归一化多普勒下仍会出现明显的误码平层,导致链路可靠性急剧恶化。因此,亟需一种能从根本上适应时变信道的全新波形设计。
在此背景下,OTFS(正交时频空,Orthogonal Time Frequency Space)调制技术于近年被提出,并迅速成为 6G 物理层的热门候选波形。核心理念是变换域通信:
-
将信息符号映射在延迟-多普勒(Delay-Doppler,DD)域,而非传统的时频(TF)域;
-
通过 ISFFT(逆辛傅里叶变换)和 SFFT 与 TF 域相互转换;
-
在 DD 域中,快速时变的双选择性信道被稀疏地表征为近似时不变的二维卷积——每条径仅对应一个特定的延迟抽头和 Doppler 抽头。
-
这种表征带来的直接优势是:所有数据符号经历几乎相同的信道增益,从而极大简化了接收机均衡算法的设计,并能充分利用信道的全分集潜力。
1.2 研究意义
本仿在完全相同的信道参数(多径、多普勒、采样率)和相同的频谱效率下,给出了 OTFS 与 OFDM 的 BER 性能差异,揭示 OFDM 短板:直观展示了即使 OFDM 采用逐子载波 MMSE 均衡,在高多普勒下仍无法避免 ICI 导致的性能崩溃,且各个功能模块化实现,适合初学者入门。
2 仿真设计



| 调制与编码 | 调制阶数 | QPSK | 每符号携带 2 比特信息 |
| OTFS 帧结构 | 多普勒维点数 | 32 | DD 域网格行数 |
| OTFS 帧结构 | 延迟维点数 | 32 | DD 域网格列数 |
| OFDM 帧结构 | 子载波数量 | 32 | 与 OTFS 延迟维数保持一致,便于带宽对齐 |
| 数据帧 | 每帧比特数 | 1024 | 由 32×32×log2(4) 计算得出 |
| 仿真环境 | 信噪比范围 | -5 dB 至 30 dB | 步进 5 dB,共 8 个测试点 |
| 仿真环境 | 每信噪比帧数 | 500 | 蒙特卡洛独立重复次数,保证统计稳定性 |
| 双选择性信道 | 多径时延 | 0, 1, 3 (采样点) | 三条路径的相对延迟 |
| 双选择性信道 | 多普勒频移 | 0, 2000, 5000 Hz | 最大 5 kHz,模拟高移动性场景 |
| 双选择性信道 | 路径增益(未归一化) | 1, 0.5, 0.3 | 归一化后功率和为 1 |
| 系统参数 | 采样率 | 1 MHz | 决定时间分辨率和子载波间隔 |
| 信道状态 | 归一化最大多普勒 | 0.16 | 远高于 OFDM 容忍阈值(约 0.03),会引发严重 ICI |
| OFDM 特有 | 循环前缀长度 | 8 个采样点 | 占 OFDM 符号周期的 25% |
| OTFS 均衡 | 等效信道矩阵维度 | 1024 × 1024 | DD 域全维度矩阵,用于 MMSE 均衡 |
| 均衡算法 | 处理方式 | 最小均方误差 (MMSE) | OTFS 做全矩阵均衡;OFDM 仅做逐子载波单抽头均衡 |
3 仿真分析
可以看到:
- AWGN 下 OTFS ≈ OFDM;OTFS 的核心调制解调(ISFFT + 海森堡变换 + 魏格纳变换 + SFFT)在数学上是一套酉变换)。可以理解为:把数据在“时频域”和“延迟-多普勒域”之间做了个旋转。在纯 AWGN信道下,没有多径,没有多普勒,信道是一个常数。酉变换不改变信号的能量分布,也不改变噪声的统计特性(白噪声旋转后依然是白噪声)。因此,两者BER曲线几乎完全重合。
- 双选信道下 OTFS,远优于 OFDM, 这正是 OTFS 的核心优势 ;OFDM 只能对抗平坦衰落或慢衰落,面对“时变”信道,它的信道矩阵是病态的,性能急剧恶化。OTFS 将时变、扩散的信道,通过二维变换,在延迟-多普勒(DD)域转换成了稀疏、时不变的信道矩阵。
clc; clear; close all;
addpath(genpath(fileparts(mfilename('fullpath'))));
% ================== 参数配置 ==================
M = 4; % QPSK
N = 32; % Doppler bins
K = 32; % Delay bins
Nsub = K; % OFDM 子载波数
numBits = N * K * log2(M);
SNR_dB = –5:5:30;
numFrames = 500;
% 双选择性信道参数(高移动性 6G 场景)
delays = [0 1 3]; % 多径时延(采样点)
dopplers = [0 2000 5000]; % 多普勒频移
gains = [1 0.5 0.3];
gains = gains / norm(gains);
fs = 1e6; % 采样率 1 MHz
% ================== 预估 OTFS DD 域有效信道矩阵 ==================
fprintf('正在估计 OTFS 有效信道矩阵 (%d x %d)…\\n', N*K, N*K);
L = N * K;
H_eff = zeros(L, L);
for i = 1:L
X_dd = zeros(N, K);
X_dd(i) = 1;
X_tf = isfft(X_dd);
txSig = heisenberg(X_tf);
rxSig = doubly_selective_channel(txSig, delays, dopplers, gains, fs);
Y_tf = wigner(rxSig, N, K);
Y_dd = sfft(Y_tf);
H_eff(:, i) = Y_dd(:);
end
HtH = H_eff' * H_eff; % 预计算,SNR 无关
fprintf('信道矩阵估计完成。\\n');
% ================== 结果存储 ==================
ber_otfs_awgn = zeros(length(SNR_dB), 1);
ber_ofdm_awgn = zeros(length(SNR_dB), 1);
ber_otfs_ds = zeros(length(SNR_dB), 1);
ber_ofdm_ds = zeros(length(SNR_dB), 1);
% ================== 蒙特卡洛仿真 ==================
for i = 1:length(SNR_dB)
err_otfs_awgn = 0; err_ofdm_awgn = 0;
err_otfs_ds = 0; err_ofdm_ds = 0;
totalBits = 0;
noiseVar = 10^(–SNR_dB(i)/10);
% OTFS MMSE 权重矩阵(每个 SNR 计算一次)
W_mmse = (HtH + noiseVar * eye(L)) \\ H_eff';
for frame = 1:numFrames
dataBits = randi([0 1], numBits, 1);
% ========== OTFS 发射 ==========
qamSymbols = qammod(dataBits, M, ...
'InputType','bit','UnitAveragePower',true);
X_dd = reshape(qamSymbols, N, K);
X_tf = isfft(X_dd);
txOtfs = heisenberg(X_tf);
% ========== OFDM 发射 ==========
txOfdm = ofdm_modulator(dataBits, M, Nsub);
% ========== AWGN 信道 ==========
rxOtfs_awgn = awgn_channel(txOtfs, SNR_dB(i));
rxOfdm_awgn = awgn_channel(txOfdm, SNR_dB(i));
% ========== 双选择性信道 + AWGN ==========
rxOtfs_ds = doubly_selective_channel(txOtfs, delays, dopplers, gains, fs);
rxOfdm_ds = doubly_selective_channel(txOfdm, delays, dopplers, gains, fs);
rxOtfs_ds = awgn_channel(rxOtfs_ds, SNR_dB(i));
rxOfdm_ds = awgn_channel(rxOfdm_ds, SNR_dB(i));
% ========== OTFS 接收 — AWGN(无需均衡)==========
Y_dd_awgn = sfft(wigner(rxOtfs_awgn, N, K));
rxBits_otfs_awgn = qamdemod(Y_dd_awgn(:), M, ...
'OutputType','bit','UnitAveragePower',true);
% ========== OTFS 接收 — 双选择性 + MMSE 均衡 ==========
Y_dd_ds = sfft(wigner(rxOtfs_ds, N, K));
X_eq = reshape(W_mmse * Y_dd_ds(:), N, K);
rxBits_otfs_ds = qamdemod(X_eq(:), M, ...
'OutputType','bit','UnitAveragePower',true);
% ========== OFDM 接收 — AWGN(无需均衡)==========
rxBits_ofdm_awgn = ofdm_demodulator(rxOfdm_awgn, M, Nsub);
% ========== OFDM 接收 — 双选择性 + 逐子载波 MMSE ==========
rxBits_ofdm_ds = ofdm_mmse_demodulator( ...
rxOfdm_ds, M, Nsub, delays, dopplers, gains, fs, noiseVar);
% ========== 误码统计 ==========
minLen = length(dataBits);
err_otfs_awgn = err_otfs_awgn + sum(rxBits_otfs_awgn(1:minLen) ~= dataBits);
err_ofdm_awgn = err_ofdm_awgn + sum(rxBits_ofdm_awgn(1:minLen) ~= dataBits);
err_otfs_ds = err_otfs_ds + sum(rxBits_otfs_ds(1:minLen) ~= dataBits);
err_ofdm_ds = err_ofdm_ds + sum(rxBits_ofdm_ds(1:minLen) ~= dataBits);
totalBits = totalBits + minLen;
end
ber_otfs_awgn(i) = err_otfs_awgn / totalBits;
ber_ofdm_awgn(i) = err_ofdm_awgn / totalBits;
ber_otfs_ds(i) = err_otfs_ds / totalBits;
ber_ofdm_ds(i) = err_ofdm_ds / totalBits;
fprintf('SNR=%2ddB | OTFS_DS=%.4f OFDM_DS=%.4f OTFS_AWGN=%.4f OFDM_AWGN=%.4f\\n', ...
SNR_dB(i), ber_otfs_ds(i), ber_ofdm_ds(i), ber_otfs_awgn(i), ber_ofdm_awgn(i));
end
% ================== 绘图 ==================
figure('Position',[100 100 900 700]);
subplot(2,1,1);
semilogy(SNR_dB, ber_otfs_awgn, '-o','LineWidth',2); hold on;
semilogy(SNR_dB, ber_ofdm_awgn, '-s','LineWidth',2);
grid on; xlabel('SNR (dB)'); ylabel('BER');
legend('OTFS','OFDM'); title('AWGN Channel');
subplot(2,1,2);
semilogy(SNR_dB, ber_otfs_ds, '-o','LineWidth',2); hold on;
semilogy(SNR_dB, ber_ofdm_ds, '-s','LineWidth',2);
grid on; xlabel('SNR (dB)'); ylabel('BER');
legend('OTFS + MMSE','OFDM + MMSE'); title('Doubly Selective Channel');
sgtitle('OTFS vs OFDM BER Comparison');
4 总结
本文围绕 OTFS(正交时频空) 与 OFDM(正交频分复用) 在高移动性双选择性信道下的性能差异,完成了一套完整的 MATLAB 仿真链路设计与分析。全文从理论基础到代码实现,再到结果验证,值得初学者入门学习。
参考:https://zhuanlan.zhihu.com/p/612422221
- 源代码 出图所见即所得,代码获取方式见VX公众号




