gusucode.com > m4k20功率分配图 mimo功率优化,OFDM典型仿真程序,贪婪算法仿真程序 > code/15883844m4k20power/m4k20功率分配图xin/optimal_pow_alloc.m
%输入参数:aa,K,其中aa为信道状态信息,是信道增益模值的平方除以噪声功率,是行向量,维数为K %K为子信道个数 %输出:各个子信道上应分配的功率,也是一个1xK的行向量,与信道状态信息是对应的 function power_alloc=optimal_pow_alloc(aa,K) M=4; a=2*(sqrt(M)-1)/(sqrt(M)*log2(sqrt(M))); b=3/(M-1); Pmax=K; p=Pmax/K*ones(1,K); i=1; u(1)=50;%一次迭代的步进为u flag=1; while flag==1 zero_flag=0; for k=1:K uu(k)=1/K*diffunct(aa,p,k,a,b)+lamda_update(aa,p,k,a,b,K); p(k)=p(k)-u(i)*(1/K*diffunct(aa,p,k,a,b)+lamda_update(aa,p,k,a,b,K)); if p(k)<=0 zero_flag=1; end end if abs(uu(k))<1.0e-10;%迭代的精度为1e-10 break; end if zero_flag==1 i=i+1; u(i)=i*u(1); else i=i+1; u(i)=u(1); end end sum(p); power_alloc=Pmax/sum(p).*p %stem(power_alloc)