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

传真(Fax)编程

开发平台:

Matlab

  1. function r = Tap_Rayleigh_Jakes(fd,deltaT,Ns)
  2. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  3. %使用Jakes方法产生单径Rayleigh衰落信道
  4. % 输入:
  5. %   fd , 多普勒频移
  6. %   deltaT , 样值之间的时间间隔
  7. %   Ns , 输出瑞利样值序列的长度
  8. %
  9. % 输出:
  10. %   r  ,Ns长的瑞利样值序列,加入多普勒频移
  11. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  12. No = 16;%进行叠加的载波路数,No的值越大越好,一般No取到8即可
  13. N = 2*(2*No+1);%要求N/2是奇数
  14. Eo = 1;
  15. Wm = 2*pi*fd;
  16. Wn = Wm*cos(2*pi*[1:No]/N);
  17. phi = pi*[1:No]/(No+1);                
  18. % 时间长度Ns*deltaT,间隔deltaT
  19. t = [1:1:Ns].*deltaT;
  20. r = zeros(1,Ns);
  21. for n = 1:No
  22.     % No路同相和正交数据叠加
  23.     r = r+cos(Wn(n)*t)*exp(j*phi(n));
  24. end
  25. r = (Eo/sqrt(2*No+1))*(2*r+sqrt(2)*cos(Wm.*t));
  26. %归一化
  27. r = r/sqrt(mean(r.*conj(r)));