ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

OFDM与OTFS仿真实践:设计思路、关键算法与性能对比

OFDM与OTFS仿真实践:设计思路、关键算法与性能对比 简介在无线通信系统设计中OFDM作为4G/5G的主流多载波体制凭借子载波正交特性有效对抗多径衰落而OTFS则通过延迟-多普勒域二维调制为高速移动场景提供更稳健的波形设计。理解两者的调制原理与信道均衡差异是开展物理层仿真的关键基础。借助MATLAB搭建统一仿真框架可在相同多径信道与信噪比条件下对比两者的误码率性能直观评估不同均衡算法与参数配置的影响。无论是面向5G增强还是未来6G候选波形研究这种仿真验证方法都能为系统设计和算法选型提供有力支撑。本文从离散基带等效模型出发深入拆解OFDM与OTFS的收发链路、信道建模及均衡实现并给出可复用的代码框架与调试经验。 我们直接进入正题。很多人一听到“OFDM和OTFS仿真”就头大觉得这是两套完全不同的体制还要叠加多径衰落信道代码量一定爆炸。其实你把框架拆开看这件事的核心就三块发端怎么把数据放到时频/延迟多普勒格点上信道怎么把符号搅浑收端怎么把符号捞回来。搞清楚这三步仿真就是一个不断填参数、看曲线、调平衡的过程。这篇文章我就按自己的实操路径把整套系统的设计思路、关键模块、坑点和改进方向一次讲透。1. 内容整体设计与思路拆解1.1 为什么同时做OFDM和OTFS而不是二选一先说结论OFDM是当前4G/5G的绝对主力OTFS是面向高速移动、高多普勒场景的候选波形。把两者放在同一个仿真框架里对比不是为了炫技而是为了回答一个很实际的问题——在同样的带宽、同样的信噪比、同样的多径信道下OTFS到底比OFDM强在哪、弱在哪、代价是什么。OFDM的本质是把宽带信道切成多个窄带子载波每个子载波上经历的是平坦衰落所以均衡只需要一个简单的单抽头。这个思路在低速移动、多径时延扩展不太夸张的场景下非常完美。但它的软肋也很明显子载波间隔一旦确定对多普勒频移就非常敏感。高速移动下子载波间正交性被破坏产生严重的子载波间干扰ICI而且这个干扰是随着多普勒线性增长的靠加导频、做信道估计只能缓解不能根除。OTFS的思路则是换了一个坐标系。它不把数据放在时频域而是放在延迟-多普勒域。这个域的神奇之处在于在高速移动下信道在这个域里反而是稀疏且近似时不变的。你可以把OTFS理解为先在一个对信道友好的域里放置数据再通过二维变换把数据映射到时频域发射。接收端做逆过程把时频域信号搬回延迟-多普勒域再做均衡。这样做的直接收益是多普勒频移不再表现为子载波间的干扰而是表现为延迟-多普勒域里符号在“多普勒维”的循环移位。对接收机来说这种干扰模式更结构化更容易被消除。所以这个项目选型的第一原则是用同一个仿真平台承载两种体制让对比在相同的信道模型和参考条件下进行。这样出来的结论才有说服力而不是拿着两份不同文献的曲线去空对空。1.2 系统框架选型离散基带等效模型实际仿真里我不会去建模射频载波太浪费算力也没有必要。标准做法是采用离散复基带等效模型。也就是说所有信号处理都发生在复数基带信道用抽头延迟线模型TDL来等效。整个收发链路只有三部分发端星座映射QPSK/16QAM/64QAM→ OTFS/OFDM调制 → 加循环前缀CP信道多径衰落每径有独立的时延、增益、多普勒频移收端去CP → OFDM/OTFS解调 → 信道估计与均衡 → 解映射 → 误码率统计我在实际代码里把调制和解调做成了两个独立函数信道模块也单独封装。这样做的好处是后面想换信道模型、换均衡算法只需要动对应模块的接口其他部分完全不用改。整个工程的扩展性会好很多。2. 核心细节解析与实操要点2.1 OFDM的仿真核心子载波映射与循环前缀OFDM仿真大家都很熟了但我还是强调两个容易出细节问题的点。第一个是导频图案的设计。我常用的是块状导频也就是在时间维的某些OFDM符号上所有子载波都放已知序列。这样做的优点是信道估计简单直接做最小二乘LS估计再插值。但缺点是在快时变信道里导频符号之间的信道变化可能较大估计精度会下降。另外一种常见方案是梳状导频即每个符号上都有一部分子载波放导频适合跟踪频率选择性衰落。实际仿真中如果你要对比OTFS我建议导频开销设置相近这样对比才公平。第二个是循环前缀的长度。CP的作用是吸收多径时延扩展把线性卷积变成循环卷积。理论上CP长度必须大于最大时延扩展否则会有符号间干扰ISI。但CP本身是开销会降低频谱效率。仿真中我用了一个简单经验值CP长度取OFDM符号周期的1/8到1/4之间再根据信道最大时延确认。OFDM的参数设计有个基本公式链条子载波间隔 Δf 决定符号持续时间 T 1/Δf加CP后符号总长为 T_cp T系统带宽 B N × Δf其中N是子载波数在不考虑CP开销时数据速率 ≈ N × log2(M) × ΔfM是调制阶数具体到仿真参数我常设置系统带宽为10 MHz子载波间隔15 kHz和LTE一致子载波数N 600左右加上CP开销量级后单符号时长约71.3微秒。这样一套参数跑下来和真实系统的量级是对得上的。2.2 OTFS的仿真核心延迟-多普勒域网格与辛有限傅里叶变换OTFS的核心概念是延迟-多普勒网格。你在一个 M×N 的二维网格上放置数据符号其中M 对应延迟delay维可以理解为距离方向的采样类似于OFDM的“子载波数量”N 对应多普勒Doppler维可以理解为速度方向的采样相当于OTFS一帧里放了多少个符号这个网格的物理意义是什么延迟维的分辨率由带宽决定Δτ 1/B多普勒维的分辨率由帧长决定Δν 1/(N×T)。网格越大能在延迟-多普勒域分辨的“径”就越细。但网格大了导频开销和数据块长度也会增大信道时变性带来的风险也随之增加。OTFS调制的过程说起来其实不复杂把 M×N 个QAM符号放在延迟-多普勒网格的第一层也就是 X_dd[m, n]做逆辛有限傅里叶变换ISFFT把数据变换到时频域 X_tf[i, j]对时频域数据做海森堡变换Heisenberg transform相当于OFDM调制得到时域发射信号 s(t)接收端反过来做维格纳变换Wigner transform相当于OFDM解调得到时频域接收信号 Y_tf[i, j]做辛有限傅里叶变换SFFT把时频域接收信号变换回延迟-多普勒域 Y_dd[m, n]在延迟-多普勒域做信道估计和均衡恢复数据这里最容易让人晕的地方就是SFFT/ISFFT到底是什么。我自己的理解方式是SFFT本质上就是对时频域矩阵先沿一个维度做傅里叶变换再沿另一个维度做傅里叶变换中间可能穿插FFT移位操作。代码实现上其实就是调用两次快速傅里叶变换再加上fftshift调整顺序。并不神秘。2.3 为什么OTFS在高速场景下更稳一个直观解释很多人问OTFS的数据明明也是经过OFDM发出去的为什么它就不怕多普勒关键区别在于OFDM把数据符号直接放在时频格点上每个符号经历的信道响应随时间和频率都在变化多普勒频移直接导致符号能量泄露到相邻子载波上。OTFS则把每个数据符号的能量“铺开”到整个时频平面。单看某一个时频格点仍然会受到多普勒的影响但接收端把它变换回延迟-多普勒域后干扰变得集中且结构化——每个发射符号只被少数几个邻近的延迟-多普勒格点干扰。这种干扰模式可以用消息传递MP算法或线性最小均方误差LMMSE均衡器有效消除。换句话说OFDM是“单点扛伤害”OTFS是“全图分摊伤害再集中治疗”。高速场景下OTFS的误码率曲线会更陡能在更低信噪比下达到目标误码率。2.4 信道模型的正确打开方式多径衰落信道的仿真也有讲究。我建议直接采用标准化的抽头延迟线模型比如3GPP定义的TDL-A、TDL-B、TDL-C等。每个抽头有四个要素相对时延、平均功率、多普勒谱类型经典6dB、平坦、圆盘等和多普勒频移。在实际代码中每一径的小尺度衰落我用以下方法生成生成一组复高斯随机过程按该径的多普勒谱类型做频域滤波再通过逆傅里叶变换得到时域衰落序列这个方法的本质是多普勒谱描述了信道随时间变化的统计特性。经典谱适用于散射丰富的城市环境平坦谱适用于存在直射径的场景圆盘谱适用于移动台附近有大量局部散射体的情况。仿真时还有一个关键细节信道的时变采样率必须和符号速率匹配。在MATLAB中信道滤波器输出的是连续基带信号在符号速率上的采样所以每条径的多普勒频移会直接体现为衰落系数的相位旋转。这个相位旋转速度和实际多普勒频率、系统采样率之间的关系我在下面实操部分会给出具体数值算例。3. 实操过程与核心环节实现3.1 MATLAB代码框架总览从参数初始化到误码率统计直接上一套我自己的代码结构。工程目录下建议按功能分文件不是把所有内容堆在一个脚本里。main_simulation.m % 主脚本参数设置、循环跑信噪比、汇总结果 init_parameters.m % 初始化系统参数 ofdm_modulate.m % OFDM调制 ofdm_demodulate.m % OFDM解调 otfs_modulate.m % OTFS调制ISFFT Heisenberg otfs_demodulate.m % OTFS解调Wigner SFFT channel_tdl.m % 多径信道生成 ls_channel_estimate.m % LS信道估计 lmmse_equalizer.m % LMMSE均衡 mp_equalizer.m % 消息传递均衡OTFS用 ber_calculation.m % 误码率统计主脚本的核心逻辑% 参数初始化 para init_parameters(); % 设置待仿真的信噪比范围dB snr_list 0:2:20; ber_ofdm zeros(size(snr_list)); ber_otfs zeros(size(snr_list)); for idx 1:length(snr_list) snr snr_list(idx); % 统计OFDM误码率 ber_ofdm(idx) run_ofdm_simulation(para, snr); % 统计OTFS误码率 ber_otfs(idx) run_otfs_simulation(para, snr); fprintf(SNR %d dB: OFDM BER %.5f, OTFS BER %.5f\n, ... snr, ber_ofdm(idx), ber_otfs(idx)); end % 结果绘图 figure; semilogy(snr_list, ber_ofdm, -o, snr_list, ber_otfs, -s); grid on; xlabel(SNR (dB)); ylabel(BER); legend(OFDM, OTFS); title(OFDM vs OTFS under Multi-path Fading Channel);这里我省略了run_ofdm_simulation和run_otfs_simulation的内部实现它们本质上是同一套流程调制 → 过信道 → 解调 → 均衡 → 统计误码。3.2 OTFS调制与解调的核心MATLAB实现OTFS调制函数的关键部分如下。这里输入X_dd是 M×N 的延迟-多普勒域符号矩阵输出是时域发射采样序列。function tx_signal otfs_modulate(X_dd, para) % X_dd: M x N 延迟-多普勒域数据矩阵 % para: 参数结构体包含M、N、CP长度等 M para.M; N para.N; % 1. 逆辛有限傅里叶变换ISFFT % 沿n维做IFFT沿m维做FFT含fftshift调整 X_tf fftshift(ifft(fftshift(X_dd, 2), [], 2), 2); % 多普勒维IFFT X_tf fft(X_tf, [], 1); % 延迟维FFT % 2. 海森堡变换相当于OFDM调制 % 对每个时隙n做M点IFFT生成时域符号 tx_symbols ifft(X_tf, M, 1); % 3. 添加循环前缀并串行输出 cp_len para.cp_len; tx_with_cp [tx_symbols(end-cp_len1:end, :); tx_symbols]; tx_signal tx_with_cp(:).; end对应的解调函数function Y_dd otfs_demodulate(rx_signal, para) M para.M; N para.N; cp_len para.cp_len; % 1. 去掉循环前缀并按符号矩阵化 valid_len M cp_len; rx_matrix reshape(rx_signal(1:valid_len*N), valid_len, N); rx_symbols rx_matrix(cp_len1:end, :); % 2. 维格纳变换相当于OFDM解调 Y_tf fft(rx_symbols, M, 1); % 3. 辛有限傅里叶变换SFFT Y_dd ifft(Y_tf, [], 1); Y_dd fftshift(fft(fftshift(Y_dd, 2), [], 2), 2); end有几点值得解释为什么ISFFT中延迟维用FFT、多普勒维用IFFT这是根据延迟-多普勒域和时频域的转换关系决定的。延迟维对应频率维所以傅里叶变换的方向刚好相反。实际实现时你只需要保证调制和解调互为逆操作即可即使搞反了方向只要收发配对也能正常工作。但在与标准文献对比时建议保持一致。代码中fftshift的作用是调整零频/零多普勒位置。OTFS符号通常在网格中心附近放置导频如果在变换前不调整顺序会导致导频位置在变换后落到边缘产生混淆。3.3 多径衰落信道实现与参数计算信道模块我写成了独立的函数function rx_signal channel_tdl(tx_signal, para, snr) % 生成TDL信道各抽头的衰落系数 h zeros(para.num_taps, length(tx_signal)); for tap 1:para.num_taps % 每径的复高斯随机过程按多普勒谱做频域滤波 noise_tap (randn(1, length(tx_signal)) 1j*randn(1, length(tx_signal))) / sqrt(2); h(tap, :) sqrt(para.tap_power(tap)) * filter_multipath_doppler(noise_tap, para.doppler_spectrum(tap), para); end % 按抽头时延叠加 rx_signal_noiseless zeros(size(tx_signal)); delay_samples round(para.tap_delay * para.fs); for tap 1:para.num_taps if delay_samples(tap) 0 rx_signal_noiseless rx_signal_noiseless h(tap, :) .* ... [zeros(1, delay_samples(tap)), tx_signal(1:end-delay_samples(tap))]; else rx_signal_noiseless rx_signal_noiseless h(tap, :) .* tx_signal; end end % 加高斯白噪声按SNR换算 signal_power mean(abs(rx_signal_noiseless).^2); noise_power signal_power / (10^(snr/10)); noise sqrt(noise_power/2) * (randn(size(rx_signal_noiseless)) 1j*randn(size(rx_signal_noiseless))); rx_signal rx_signal_noiseless noise; end关于多普勒滤波的实现我在函数filter_multipath_doppler中用了频域滤波法将随机序列做FFT乘上多普勒谱的幅度响应再做IFFT。经典6dB谱的形状是S(f) A / sqrt(1 - (f/f_max)^2), |f| f_max这个谱在f_max附近有奇异性所以我在数字实现时对分母加了小的正则项防止除零。这个细节在教材上不会写但实际仿真中不处理滤波结果会出现大量尖峰。参数计算举例。假设载频2.4 GHz移动速度120 km/h那么最大多普勒频移为f_max v * f_c / c (120/3.6) * 2.4e9 / 3e8 ≈ 266.7 Hz如果系统采样率是10 MHz那么在时域信号长度1秒内每径相位旋转约2pi266.7圈。这个数值在仿真中会体现为严重的相位快速变化。对于5G典型的15 kHz子载波间隔用户移动速度300 km/h时归一化多普勒f_max/Δf约0.07。在OFDM里这个值看着不大但在高阶调制下已经会产生明显的ICI了。OTFS在这方面的优势不是说多普勒不存在而是它的数据符号散布在整个时频平面上接收端的二维均衡可以把多普勒维上发生的移位当作是一种“循环延迟”处理起来更从容。3.4 均衡器实现OFDM单抽头均衡 vs OTFS的MP均衡OFDM的均衡很简单。LS信道估计后得到每个子载波上的信道响应H_est然后% 单抽头迫零均衡 X_est Y ./ H_est; % 或LMMSE均衡需要噪声方差估计 X_est conj(H_est) .* Y ./ (abs(H_est).^2 sigma2);OTFS的均衡复杂一些。我最初用LMMSE把延迟-多普勒域的接收符号展开成向量构建等效信道矩阵然后直接求逆。这个方法在M×N较小比如32×32时还可以但网格一旦增大例如256×128矩阵维度达到32768×32768直接求逆根本跑不动。所以我改用消息传递MP均衡。核心思想是把每个接收符号看成发射符号的线性组合加噪声通过迭代更新每个符号的概率分布。MP均衡器对大规模稀疏信道的计算效率很高。我实现的MP均衡简要流程初始化每个发射符号的均值和方差计算每个观测符号对发射符号的干扰项更新发射符号的后验均值和方差重复迭代若干次输出软符号估计在迭代次数设置上我试过5次和20次误码率差别在0.1 dB以内。从效率和稳定性的平衡看迭代10次是比较舒服的选择。4. 常见问题与排查技巧实录4.1 信号经过信道后幅度飞涨或变得极小很多人仿真时遇到的第一反应是“信道是不是写错了”。绝大多数情况是噪声功率算错了。噪声功率要根据信号的实部、虚部分别算正确的做法是noise_power signal_power / (10^(snr/10)); noise_real sqrt(noise_power/2) * randn(size(y)); noise_imag sqrt(noise_power/2) * randn(size(y));很多新手直接乘以sqrt(noise_power)这会把噪声功率放大2倍高信噪比时看不出大影响但低信噪比时误码率会偏高。4.2 OFDM误码率随着SNR增加出现地板效应这个问题的典型原因是导频被污染了。高速移动场景下导频子载波也会受到ICI干扰信道估计不准均衡后就残留了无法消除的干扰。解决办法有几种使用更密集的导频图案但这会增加开销在频域做信道估计插值时采用更平滑的插值算法比如维纳滤波插值而不是简单线性插值如果重点研究高速场景且确定要对比OTFS就把OFDM的导频密度设置为和OTFS相近的导频开销并说明这一前提。我见过不少论文拿“稀疏导频OFDM”和“高密度导频OTFS”对比得出OTFS碾压OFDM的结论这其实很不公平。4.3 OTFS误码率在低信噪比下反而比OFDM差这不是bug是正常的。OTFS的二维变换会带来一定的“噪声扩展”效应在低信噪比下MP均衡器的初始估计不够准迭代后有可能收敛到错误的解。再加上OTFS的导频开销和波形设计通常比OFDM更复杂所以在低信噪比下吃亏是常见现象。我调试时遇到过更隐蔽的问题ISFFT和SFFT的变换方向不一致导致收发两端的数据根本没对上。表现是误码率永远在0.5附近怎么调SNR都没用。排查方法是做一个“无信道”的闭环测试把调制的信号直接送入解调什么信道都不加若恢复出来的符号星座不是原始星座那就是变换逻辑出错了。4.4 MATLAB仿真运行速度太慢我踩过的坑是在循环里反复计算相同的东西比如每帧都重新生成信道系数。正确做法是信道系数生成一次存下来复用。还有一个优化点是并行化不同SNR的仿真互不影响可以用parfor循环。parfor idx 1:length(snr_list) ber_ofdm(idx) run_ofdm_simulation(para, snr_list(idx)); ber_otfs(idx) run_otfs_simulation(para, snr_list(idx)); end对于OTFS的MP均衡内层迭代里有很多矩阵乘法我会尽可能用向量化操作替代for循环。举个例子更新符号均值和方差时不要每个符号单独算而是把整行/整列当成向量操作。实测下来同样的网格规模向量化后速度能提升一个数量级。4.5 CP长度和信道路径时延的关系处理不当如果信道的最大时延超过了CP长度那么即使没有噪声均衡前也会出现符号间干扰。仿真现象是误码率出现不可消除的地板增大SNR也没用。排查方法很简单把CP长度设置成比最大时延大上几倍看看误码率是否恢复如果恢复了就说明问题出在CP长度而不是均衡器。从理论上看CP长度的选择也影响频谱效率频谱效率 N * log2(M) / (N cp_len) * (1 / (1 N_cp_overhead))所以在实际系统参数设计时不是CP越长越好而是在抗多径能力和频谱效率之间取折中。4.6 常见问题速查表现象可能原因排查思路误码率始终约0.5调制/解调变换方向不对先做无信道闭环测试高SNR下误码率不降CP不足或导频污染增大CP、改进插值算法低SNR下OTFS差于OFDMMP迭代未收敛或噪声扩展增加迭代次数、检查初始化仿真速度过慢循环内重复生成信道信道系数复用、用parfor传输波形幅度异常噪声功率算错检查sqrt和/2的处理均衡后星座图有旋转多普勒频移未正确建模核对f_max计算和滤波器4.7 我做过的几个有效调试技巧调试时先跑一个无信道版本确认链路正确再逐步加入多径、多普勒、噪声。这样如果出了错能迅速锁定问题出在哪个模块。还有一个小技巧是把发射信号和接收信号的时频图spectrogram画出来对比。OFDM的时频图能清楚看到信号在哪些子载波上有能量OTFS的时频图则表现为时频平面上比较均匀的分布。如果你画的OTFS时频图有明显的梳状结构说明ISFFT没做对。5. OTFS与OFDM的对比结果与参数影响分析5.1 我仿真中的一组代表性参数与结果我常用的核心参数如下参数数值系统带宽10 MHz子载波间隔15 kHzOFDM子载波数600OTFS延迟维M512OTFS多普勒维N128调制方式QPSK / 16QAM循环前缀长度72个采样点信道模型TDL-A6径最大多普勒频移0 ~ 500 Hz均衡方式OFDM: LMMSE; OTFS: MP在静止信道最大多普勒为0下OFDM和OTFS的误码率性能非常接近OTFS甚至因为变换开销略差一点。但把最大多普勒频移拉到500 Hz后OFDM在16QAM下的误码率曲线明显出现地板效应大约在10^-3附近就压不下去了。而OTFS在同样条件下误码率仍然能随SNR增加持续下降在SNR 16 dB时达到10^-5以下。这里要强调一个前提OFDM采用的是常规的块状导频LMMSE均衡没有加入复杂的ICI消除技术。如果给OFDM加上高级的ICI消除算法差距会缩小但复杂度也会明显上升。这恰恰说明OTFS的工程价值在于用相对简单直接的收发结构在高速场景下获得稳健性能。5.2 参数敏感性哪些参数对结果影响最大在多次实验中我总结出几个对性能影响最明显的参数。延迟维MM越大系统能分辨的时延径越多对时延扩展严重的信道越友好。但M增大意味着FFT点数增加峰均比PAPR问题会更明显发射端功放效率受影响。多普勒维NN越大多普勒分辨率越高能更好地区分不同速度的散射体。但N增大会让OTFS帧长变长信道在帧内的时间变化就不能简单忽略了。导频数量与位置OTFS通常在延迟-多普勒网格的中心放置导频周围留出保护带。保护带越大导频受数据干扰越小信道估计越准但开销也越高。我实验中发现保护带从1格增加到3格性能改善明显超过5格后收益不大。5.3 实际应用中怎么选型以我的经验OFDM和OTFS并不是替代关系而是场景互补。在低移动速度、蜂窝覆盖为主的场景OFDM配合成熟的信道估计和MIMO技术依旧是性价比最高的选择。在高铁、低轨卫星通信、无人机群这类高多普勒场景OTFS的稳健性优势就体现出来了。还有一个趋势值得关注。OTFS可以和MIMO结合形成OTFS-MIMO系统。这时信道矩阵变成二维的延迟-多普勒-空间联合矩阵均衡和预编码的算法设计会更有挑战性。这也是我接下来打算在仿真平台上扩展的方向。如果你有兴趣继续深入建议先在目前的单天线OTFS模型上把消息传递均衡彻底吃透再扩展到多天线。6. 实操心得与进阶建议最后分享几个我在这个项目里的心得体会。首先是关于仿真代码的组织不要追求一次写完所有功能而是先把OFDM单链路跑通再加OTFS最后再引入复杂信道模型。这样每一步的调试成本都很低不容易陷入“满屏报错但不知道哪里错”的困境。其次是关于MATLAB的数值精度。OTFS的ISFFT和SFFT中会用到多次FFT/IFFT浮点误差会累积。在帧长度不是2的幂时FFT效率下降误差也会略增。我建议把M和N都设为2的幂次比如512和128既能提升速度也能减少数值误差曲线也更漂亮。再有一个建议是不要只画BER曲线要学会画星座图、时频图、信道冲激响应图。这些可视化的工具在调试阶段能帮你快速定位问题。比如均衡后的星座图如果出现了“旋转状”发散通常意味着多普勒频移没有被正确建模或均衡器没有考虑ICI。如果你后续想把这个项目扩展到更实际的场景可以研究以下方向OTFS导频设计优化在保证信道估计精度的前提下最小化导频开销OTFS与MIMO结合的预编码设计利用延迟-多普勒域的稀疏性设计预编码低复杂度均衡算法比如基于近似消息传递AMP或正则化匹配追踪的算法OTFS在实际信道如3GPP 38.901中的城市宏蜂窝信道下的性能验证。我自己的下一步准备把目前的仿真框架加入MIMO扩展并在同一信道条件下做完整的两阶段信道估计。到时会再写一篇详细的实现笔记。如果你也正在这条路线上摸索欢迎一起交流踩坑经验。本文还有配套的精品资源点击获取
返回列表