简介:面向无线通信与5G技术学习者,这份MATLAB代码包聚焦FBMC在AWGN信道下的完整仿真实现。方案基于OQAM调制,将发送端预处理、主仿真流程与接收端后处理封装为三个独立m文件,清晰演示了滤波器组多载波系统的信号生成、噪声叠加、匹配滤波、符号解调及误码率统计环节;相比OFDM,FBMC通过滤波器组抑制旁瓣泄漏、提升频谱效率,代码中的原型滤波器设计值得重点研读。包内共3个m文件,压缩后仅3KB,结构紧凑,无冗余数据,适合快速研读与二次开发,已有922人学习下载。通过运行仿真可查看星座图与BER曲线,调整信噪比、子载波数等参数能直观观察系统性能变化,是通信专业学生、算法工程师及科研人员理解FBMC与OFDM差异、掌握滤波器设计及AWGN信道特性的实用参考资料,也为后续研究5G物理层候选波形提供可复现的实验基础;代码注释简明,变量命名清晰,便于学习者对照原理逐步理解。 做物理层仿真,FBMC 和 AWGN 信道这一对组合我前前后后跑过不少遍。FBMC(Filter Bank Multi-Carrier,滤波器组多载波)常被拿来和 OFDM 对比,核心卖点就是省掉了循环前缀还能压住符号间干扰,频谱旁瓣也比 OFDM 低一大截,所以一直是"后 OFDM 时代"热门的替代波形。而 AWGN(加性高斯白噪声)信道是通信仿真最基础的一关——连纯噪声环境下的收发链路都调不稳,后面上了衰落信道、多径信道只会更头疼。这篇文章就是一次完整 FBMC/OQAM 链路仿真的实践记录,用 MATLAB 实现 PHYDYAS 原型滤波器设计、OQAM 调制解调、AWGN 加噪和 BER 统计。适合信号处理、通信方向的在校学生,也适合正要搭新波形验证平台的工程师参考。
1. 项目背景与整体仿真链路
1.1 FBMC 是什么,为什么值得仿真
FBMC 的工作原理可以理解成"用一组精心设计的滤波器,把频带切成一堆相互交叠但不干扰的子信道"。和 OFDM 用矩形窗导致频谱旁瓣高、必须靠循环前缀对抗多径不同,FBMC 靠原型滤波器本身的滚降特性压低带外泄漏,代价是符号之间允许重叠,因此需要更复杂的调制结构来保证正交性。
这套体系里最常用的是 FBMC/OQAM 组合。OQAM(Offset QAM,偏移正交幅度调制)把每个复 QAM 符号的实部、虚部错开半个符号周期发送,再配上相位因子,让实部和虚部之间、相邻子载波之间都能保持实正交。这样就能在完全去掉循环前缀的情况下,做到理论上无 ISI / ICI。仿真验证的意义就在这里:先证明加性白噪声条件下性能不掉链子,后续再接多径、时变信道,才能有信心判断是信道模型的问题,还是系统本身的问题。
1.2 AWGN 信道在仿真中的定位
AWGN 信道虽然简单,却是最公允的"性能标尺"。在 AWGN 中,接收信号就是发送信号叠加上零均值的高斯随机噪声,功率谱密度在整个频带内平坦。对于调制解调结构来说,AWGN 下的 BER 曲线可以直接和理论值做对比,比如 QPSK 在 AWGN 中的理论误码率是 ( P_b = Q(\sqrt{2 E_b/N_0}) )。如果仿真出来的曲线偏离理论值太多,说明收发链路里大概率存在正交性破坏、幅度失衡或符号定时偏移之类的问题。
这个仿真项目里,AWGN 的作用就是模拟一个"无失真的噪声环境"。FBMC 信号经过 AWGN 信道后,主要挑战变成了:接收端能不能从带噪声的混合信号里,把 OQAM 实值符号正确提取出来。所以开发时我会先把信道理想化,聚焦验证滤波器组和调制解调代码的正确性。
1.3 仿真链路模块划分
整个仿真我拆成四个部分:
| 模块 | 作用 | 关键函数/工具 |
|---|---|---|
| 发射机 | 比特生成 → QAM 映射 → OQAM 拆分 → 相位旋转 → 滤波器组调制 | qammod、ifft、重叠相加 |
| 信道 | 按目标 SNR 叠加高斯白噪声 | awgn 或 randn |
| 接收机 | 匹配滤波 → 折叠 → FFT → 去相位因子 → 逆映射 | 匹配滤波、fft、实数判决 |
| 性能评估 | 统计 BER,和理论 QPSK 曲线对比 | qamdemod、误码率计算 |
发射机和接收机是重头戏,后面两章分别展开。
2. 原型滤波器设计:FBMC 的核心元
2.1 原型滤波器为什么关键
原型滤波器是整个 FBMC 系统的灵魂。它决定了子载波之间的频谱泄漏、符号之间的时域重叠方式,以及最终系统的正交性能否成立。如果滤波器设计得不好,无论 OQAM 调制做得多漂亮,接收端都会出现残余干扰,BER 曲线会直接"地板"在某个高位,怎么增加 SNR 都下不去。
设计性能好的原型滤波器有很多思路,PHYDYAS 是应用最广泛的一种。它是欧盟 PHYDYAS 项目组提出的设计方案,基于频域采样法,在频域只保留少量非零抽头系数,再通过 IFFT 得到时域脉冲。这种滤波器在 K=4(重叠因子)时,能在频谱效率和抗干扰之间取得不错的平衡,也是我实测下来最容易调通的一组参数。
2.2 PHYDYAS 滤波器的频域采样法设计
长度为 N = K·M 的 PHYDYAS 滤波器,频域非零系数随重叠因子不同而变化。K=4 时,经典的一组系数是:
- H0 = 1
- H1 = 0.97195983
- H2 = 0.70710678(即 √2/2)
- H3 = 0.23514695
这些系数反映了滤波器的频域滚降形状:DC 处增益最大,越往边缘衰减越快。代码实现时,把 H0 放在频域向量第一个位置,H1~H3 对称地放在正负频率两边,然后 IFFT 转回时域并做能量归一化:
function h = design_phydyas(M, K) % PHYDYAS 原型滤波器设计 % M: 子载波数 % K: 重叠因子(2/3/4) % 返回长度 K*M 的时域滤波器系数 switch K case 2 H = [1, sqrt(2)/2]; case 3 H = [1, 0.911438, 0.411438]; case 4 H = [1, 0.97195983, 0.70710678, 0.23514695]; otherwise error('当前仅支持 K = 2/3/4'); <p> <a href="https://download.csdn.net/download/weixin_43870101/12399637" style="color:#ec7500;font-size:14px;"> 本文还有配套的精品资源,点击获取 </a> <img alt="menu-r.4af5f7ec.gif" src="https://csdnimg.cn/release/wenkucmsfe/public/img/menu-r.4af5f7ec.gif" style="width:16px;margin-left:4px;vertical-align:text-bottom;cursor:text;"> </p>