基于OFDM系统的多用户子载波分配与功率分配联合优化平台
本项目提供了一个完整的正交频分复用(OFDM)多用户系统资源管理方案。该方案集成并模拟了从信道建模、子载波指派到功率动态优化的全过程,旨在通过数学建模和算法优化,在多用户干扰和频率选择性衰落环境下,最大化系统的频谱效率。
项目核心功能
- 多用户信道仿真:模拟复杂的多径衰落环境,为每个用户生成独立的频率选择性信道响应。
- 启发式子载波分配:基于多用户分集原理,将频率资源分配给信道条件最为匹配的用户。
- 动态功率注水优化:在总功率受限的条件下,利用非线性优化算法实现发射功率的最优分布。
- 多维度性能评估:量化对比不同功率分配策略下的系统容量,并分析算法的收敛性质与用户公平性。
实现逻辑与算法流程
系统运行逻辑主要分为以下五个阶段:
1. 参数初始化与信道生成阶段
系统首先设定仿真环境的基本参数,包括8名用户、128个子载波以及1.0W的总功率门限。
在信道模型部分,系统为每个用户构建了一个6抽头的离散多径 Rayleigh 衰落信道。考虑到用户距离基站的远近差异,引入了基于用户索引倒数开方的路径损耗系数。最后通过快速傅里叶变换(FFT)将时域信道转换至频域,得到各用户在每个子载波上的复信道增益及其功率增益矩阵。
2. 贪婪式子载波分配
通过遍历所有子载波,系统实施了最大增益准则。针对每一个特定的子载波,对比所有用户的在该频点的信道增益,并将该子载波的使用权唯一指派给增益最高的用户。这种策略能够充分挖掘多用户分集增益,确保物理资源被最有效的链路占用。分配结果将被记录在一个二维映射矩阵及一个所有权向量中。
3. 水注算法(Water-filling)功率优化
在子载波所属权确定后,系统对有效信道进行功率优化。其核心逻辑在于求解拉格朗日优化目标:
- 计算每个子载波的“噪声-增益比”,将其视为不平坦的“河床底座”。
- 采用二分搜索法在线性时间内寻找最优的拉格朗日乘数(即水位高度)。
- 在最大迭代次数(100次)和精度容差(1e-7)的约束下,确保所有分配功率之和等于预设的总发射功率。
- 最终使得信道环境好的子载波获得更多的功率份额,从而提升整体速率。
4. 性能指标量化与对比
系统在 0dB 到 30dB 的 SNR 范围内进行了两项性能考量:
- 最大和速率调度:应用子载波贪婪分配结合水注功率分配。
- 等功率分配调度:在相同的子载波分配前提下,将总功率平摊至所有子载波。
通过 Shannon 容量公式计算两者的单位带宽传输速率(bps/Hz),直观展现策略优化带来的增益。
5. 结果可视化分析
系统自动生成五张图表:
- 子载波分配矩阵图:直观展示资源在不同用户间的指派情况。
- 系统容量评价曲线:对比水注算法与等功率分配随信噪比变化的趋势。
- 功率分布数值图:展示不同子载波上功率分配的变化及其与水位线的关系。
- 用户吞吐量直方图:揭示在最大化系统吞吐量目标下,各用户间实际获得的资源公平性状况。
- 算法收敛曲线:记录二分搜索寻找水位的迭代轨迹。
关键细节说明
- 衰落模型:采用复高斯随机过程模拟瑞利衰落,通过
fft 函数确保频域特性符合 OFDM 物理层原理。 - 收敛机制:功率分配采用数值二分法,相比于简单的迭代法,具有更好的稳定性和确定的收敛上界。
- 总功率适配:在对比实验中,系统根据当前的 SNR 动态调整总功率值($P = SNR times N times N_0$),以保证对比实验的严谨性。
系统要求
- 软件平台:MATLAB R2016b 或更高版本。
- 依赖工具箱:基础数学函数库与绘图工具箱。
使用方法
- 启动 MATLAB 软件环境。
- 将该平台下的所有脚本代码置于当前工作目录下。
- 在命令行窗口直接调用主函数名称。
- 程序将自动执行仿真,并在界面上弹出可视化结果曲线,同时在控制台输出当前的系统总统计参数。