adaptive_power1.m
上传用户:look542
上传日期:2009-06-04
资源大小:784k
文件大小:1k
源码类别:

传真(Fax)编程

开发平台:

Matlab

  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. H = abs(H);
  17. para=log(5*Ber0)/(-1.6);
  18. %初始化比特Cn,和功率P
  19. Cn=zeros(1,N);
  20. P=zeros(1,N);
  21. % delta_P用于存储功率增量
  22. delta_P=zeros(1,N);
  23. %步长
  24. m=2;
  25. for yy=1:R/m
  26.     for i=1:N
  27.         if Cn(i)>6
  28.             delta_P(i)=inf;
  29.             continue;
  30.         end
  31.         y=H(i)^2;
  32.         delta_P(i)=para*(2^(Cn(i)+m)-2^Cn(i))*Noise/y;
  33.     end
  34.     
  35.     dex=find(delta_P==min(delta_P));
  36.     Cn(dex(1))=Cn(dex(1))+m;
  37.     
  38.     P(dex(1))=P(dex(1))+delta_P(dex(1));
  39. end
  40. P(find(P==0))=1;