adaptive_power1.m
上传用户:gzcxg999
上传日期:2021-07-15
资源大小:190k
文件大小:1k
源码类别:

matlab例程

开发平台:

CHM

  1. function [Cn,P]=adaptive_power(H,Ber0,N,Noise,R)
  2. % 自适应调制和功率优化分配
  3. % 基于功率梯度最小的QAM 算法
  4. % 输入:
  5. % Noise:噪声功率
  6. % N:子载波的个数
  7. % H:通过信道估计得到信道参数向量
  8. % Ber0: 为系统需要的误码率
  9. %R:固定比特速率
  10. % 输出
  11. % Cn:分配给各子载波的比特数 Cn={0,2,4,6}
  12. % P:分配给各子载波的功率
  13. % 由QAM调制的误比特率公式得:
  14. % 信噪比 SNR=In(5*Ber0)*(2^Cn-1)/(-1.6)
  15. % 信噪比因子para
  16. para=log(5*Ber0)/(-1.6);
  17. %初始化比特Cn,和功率P
  18. Cn=zeros(1,N);
  19. P=zeros(1,N);
  20. % delta_P用于存储功率增量
  21. delta_P=zeros(1,N);
  22. %步长
  23. m=2;
  24. for yy=1:R/m
  25.    for i=1:N
  26.      if Cn(i)>6
  27.       delta_P(i)=inf;
  28.       continue;
  29.     end
  30.     y=H(i)^2;
  31.     delta_P(i)=para*(2^(Cn(i)+m)-2^Cn(i))*Noise/y;
  32.   end
  33.   dex=find(delta_P==min(delta_P));
  34. Cn(dex(1))=Cn(dex(1))+m;
  35.   P(dex(1))=P(dex(1))+delta_P(dex(1));
  36. end
  37. P(find(P==0))=1;
  38.   
  39.