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

传真(Fax)编程

开发平台:

Matlab

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