【MATLAB源码】FBMC:链路级仿真平台
🚀FBMC/OQAM 完整链路仿真平台
基于 PHYDYAS 滤波器的下一代多载波波形完整实现极低旁瓣 (>60dB) + 最大频谱效率 + 完备 MIMO/同步支持
📌 为什么选择 FBMC/OQAM?
在 5G-Advanced 和 6G 场景中,频谱资源日益碎片化,认知无线电 (CR) 和物联网 (IoT) 对带外辐射提出了极高要求。传统 CP-OFDM 由于矩形窗的 Sinc 频谱特性,旁瓣衰减缓慢,且循环前缀 (CP) 造成了固有的频谱效率损失。
本平台实现了基于 PHYDYAS 原型滤波器 的 FBMC/OQAM 系统,提供了比 OFDM 更优异的频谱特性和抗干扰能力。
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
🎯 核心价值
🔬 学术研究价值
|
💼 工程应用价值
|
⚡ 技术亮点
🌊 FBMC vs OFDM 性能实测
|
|
|
FBMC/OQAM (本平台) |
|
|---|---|---|---|
| 旁瓣抑制 |
|
> 60 dB |
|
| 频谱效率 |
|
100% (理论极限) |
|
| 误码率 (AWGN) |
|
相当
|
|
| 抗多径能力 |
|
依赖滤波器 TFL |
|
📊 关键特性
-
高级滤波器设计: 实现了重叠因子 的标准 PHYDYAS 滤波器,满足奈奎斯特准则。 -
OQAM 调制: 完美的实数域正交处理,消除 ISI/ICI。 -
部分均衡 (Per-Subcarrier EQ): 支持 ZF 和 MMSE 频域单抽头均衡。 -
智能同步: SC (Schmidl-Cox) 风格的前导码设计,支持盲估计。
🖥️ 运行环境
-
MATLAB 版本: R2020a 及以上 (推荐 R2024b 以获得最佳绘图效果) -
依赖工具箱: -
Signal Processing Toolbox (必须) -
Communications Toolbox (推荐,用于对比分析) -
DSP System Toolbox (可选)
📁 项目结构
FBMC_Pro/├── +fbmc/ # 核心算法包│ ├── phydyas_filter.m # 滤波器设计核心│ ├── fbmc_mod_fast.m # 高效调制器│ ├── oqam_mod.m # OQAM 预处理│ ├── channel_estimator.m # LS/MMSE 信道估计│ └── mimo_encoder.m # MIMO 编码├── +channel/ # 信道模型│ └── multipath_channel.m # 3GPP 多径信道 (EPA/EVA/ETU)├── +utils/ # 工具库│ ├── ber_calculator.m # BER 统计│ └── papr_analysis.m # PAPR CCDF 分析├── demo/ # 场景演示│ ├── demo_ber_awgn.m # BER 性能仿真│ ├── demo_mimo.m # MIMO 演示│ └── demo_synchronization.m # 同步演示├── docs/ # 文档中心│ ├── 算法文档.md # 理论推导 (v3.0)│ └── 代码文档.md # API 手册└── run_all_demos_save.m # 🚀 一键启动脚本
📄 文档体系
本平台提供 “理论+实战” 双轨制文档,通过 Markdown 格式提供最佳阅读体验。
📘 算法文档 (v3.0)
包含 11 个章节,深度解析 OQAM 正交性证明、PHYDYAS 滤波器闭式解、以及 MIMO-FBMC 的固有干扰处理推导。
📒 代码文档 (v1.0)
完整的 API 字典,详细说明每个函数的输入输出参数、维度要求及调用示例。
💻 核心代码展示
🔥 PHYDYAS 滤波器设计 (+fbmc/phydyas_filter.m)
function[p, H] = phydyas_filter(M, K)% PHYDYAS_FILTER 生成频率采样原型滤波器% 基于 Bellanger 提出的闭式解,实现 >60dB 旁瓣抑制% 频率采样系数 (K=4) H = [1; 0.97195983; sqrt(2)/2; 0.23514695]; % 时域闭式解 t = 0:(K*M-1); p = H(1) + 2*sum((-1).^(1:K-1) .* H(2:end) .* ...cos(2*pi*(1:K-1)' * (t+1) / (K*M))); p = p / norm(p); % 能量归一化end
🚀 高效 FBMC 调制 (+fbmc/fbmc_mod_fast.m)
functions = fbmc_mod_fast(d_oqam, p, M, K)% 矩阵化实现的 FBMC 调制器,比循环实现快 100 倍% 1. 批量 IFFT x_ifft = ifft(d_oqam, M); % 2. 周期扩展与滤波 (利用 Kronecker 积思想优化)% ... (核心矩阵操作) ...% 3. 重叠相加 (OLA)% 自动处理 K 倍重叠的信号累加end
📡 干扰消除辅助的信道估计 (+fbmc/channel_estimator.m)
functionH_est = channel_estimator(rx, tx, M, 'MMSE')% 考虑固有干扰 (Intrinsic Interference) 的信道估计% IAM-C (干扰近似-消除) pseudo_pilot = tx + 1j * estimated_interference;% MMSE 估计 H_est = conj(pseudo_pilot) .* rx ./ ... (abs(pseudo_pilot).^2 + noise_var);end
🎬 一键运行
>> cd 'd:\03_代码库\04.code4sale\1.FBMC'>> run_all_demos_save% 控制台将输出进度:% 1. PHYDYAS滤波器特性... 完成% ...% 7. MIMO编码... 完成% ...% 15. 系统对比... 完成% 结果保存在 results/ 文件夹,包含 15 张高清分析图
结果预览
|
|
|
|
|---|---|---|
| (极低旁瓣可视化) | (无误码平层) | (清晰的星座分裂) |













🛒 获取方式
📚 参考文献
[1] Bellanger, M. “FBMC physical layer: a primer.” PHYDYAS project, 2010.
[2] Farhang-Boroujeny, B. “OFDM versus filter bank multicarrier.” IEEE Signal Processing Magazine, 2011.
[3] 3GPP TS 36.104 “Base Station radio transmission and reception”.
夜雨聆风
