Matlab——资源分配算法-注水算法

算法实现
其中: Num_subc子载波数 Pt功率 gain_subc子载波增益 noise_var噪声功率 gap信噪比间隔
B带宽 K最大分配子载波数 Rt数据速率
%---------Water filling algo--------------
function [bit_alloc,power_alloc,bit_theory]=waterfill(Num_subc,Pt,gain_subc,noise_var,gap,B,K,Rt)
snr_subc=SNR_subc(gap,gain_subc,noise_var);
%------------remove the subcarrier with zero gain-------------------
% [gain_subc,index]=sort(gain_subc,‘descend’);
% num_zero_gain=length(find(gain_subc0));
% num_use=Num_subc-num_zero_gain;
%------------------water filling allocation--------------
power_alloc=(Pt+sum(1./snr_subc))/Num_subc-1./snr_subc;
while(length(find(power_alloc<0))~=0)
neg_index=find(power_alloc<=0);
pos_index=find(power_alloc>0);
power_alloc(neg_index)=0;
num_use=length(pos_index);
snr_use=snr_subc(pos_index);
power_temp=(Pt+sum(1./snr_use))/num_use-1./snr_use

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值