
做OFDM仿真碰到信道估计这一关基本都要经历一个从“看得懂公式”到“调得出曲线”的痛苦过程。LS算法看着简单就是把接收导频除以发送导频可一旦仿真链路里有噪声估计出来的信道频域响应抖得厉害均衡之后星座点散得没法看。另一边的DFT算法原理一句话也能说清——把LS结果变换到时域、砍掉多余的抽头、再变换回来——但真要动手做导频怎么放、抽头保留多少、IFFT和FFT的尺寸怎么对齐处处是坑。这篇就聊聊我在MATLAB里完整实现LS和DFT两种OFDM系统信道估计方法、并把两者性能做系统对比的过程。内容覆盖原理推导、仿真链路搭建、参数设置、结果分析以及几个我真实踩过的坑。适合正在学OFDM信道估计的通信专业学生或者做物理层链路仿真验证的工程师参考。先说个结论DFT估计并不是在所有情况下都优于LS它有一个前提条件——信道冲激响应必须在时域上是稀疏的也就是多径数量不能太多、时延扩展要远小于OFDM符号长度。条件不满足时DFT截断掉的可能不只是噪声还有真实的信道能量。理解了这句话后面整个仿真做起来就有底了。1. OFDM信道估计要解决的本质问题多径衰落如何污染接收信号要搞清楚两种估计算法在做什么得先把OFDM系统里信道对信号的影响理清楚。无线通信里发射信号经过建筑物、地面、障碍物的反射会形成多条传播路径接收端收到的是多个不同时延、不同幅度的信号副本叠加。对OFDM这种多载波调制方式来说时域的多径时延扩展反映到频域就是频率选择性衰落——不同子载波上的信道增益不一样有的子载波被深衰落吞掉有的子载波还能正常传输。OFDM系统收发模型在频域上可以非常简洁地写出来。假设第k个子载波上的发送符号是X(k)经过信道后接收端做FFT解调得到的Y(k)满足Y(k) H(k) × X(k) N(k)这里的H(k)就是第k个子载波上的信道频域响应N(k)是高斯白噪声。之所以能写成这种逐点相乘的形式是因为OFDM的循环前缀CP设计保证了每个子载波之间正交只要CP长度大于信道最大时延扩展信道对每个子载波的作用就退化为一个复增益不产生子载波间干扰ICI。这就是信道估计要解决的核心问题接收端需要知道每个子载波上的H(k)值才能做相干解调、恢复发送数据。拿QPSK举例子接收星座点的相位会被信道旋转幅度会被信道缩放不把信道增益估计出来判决根本没有意义。信道估计大体分两类非盲估计基于导频和盲估计基于信号统计特性。工程里绝大多数用的是导频辅助方案也就是发送端在已知位置插入收发双方都认识的导频符号接收端对比收到的导频和原始导频的差异从而推算出信道响应。LS和DFT这两种方法都属于导频辅助的经典方案但它们在处理噪声和利用信道相关性上的思路完全不同。LS是“老老实实逐点算”每个导频子载波单独估计互不相关DFT则是在LS的结果之上利用信道冲激响应的时域稀疏特性做了一次“全局滤波”。后面我把两种方法的推导和实现细节逐一展开。2. LS估计器公式来源、实现细节与性能边界2.1 最小二乘估计的数学推导过程LS估计的全称是最小二乘估计Least Squares它在信道估计里的地位就像排序算法里