• Matlab下多径衰落信道的仿真


     衰落信道参数包括多径扩展和多普勒扩展。时不变的多径扩展相当于一个延时抽头滤波器,而多普勒扩展要注意多普勒功率谱密度,通常使用Jakes功率谱、高斯、均匀功率谱。

      多径衰落信道由单径信道叠加而成,而单径信道中最重要的就是瑞利(Rayleigh)平坦衰落信道。

      下面给出瑞利平坦衰落信道的改进Jakes模型的实现:

    function [h]=rayleigh(fd,t)
    %改进的jakes模型来产生单径的平坦型瑞利衰落信道
    %Yahong R.Zheng and Chengshan Xiao "Improved Models for 
    %the Generation of Multiple Uncorrelated Rayleigh Fading Waveforms" 
    %IEEE Commu letters, Vol.6, NO.6, JUNE 2002
    %输入变量说明:
    %  fd:信道的最大多普勒频移 单位Hz     
    %  t :信号的抽样时间序列,抽样间隔单位s  
    %  h为输出的瑞利信道函数,是一个时间函数复序列 
    
        %假设的入射波数目
        N=40; 
    
        wm=2*pi*fd;
        %每象限的入射波数目即振荡器数目
        N0=N/4;
        %信道函数的实部
        Tc=zeros(1,length(t));
        %信道函数的虚部
        Ts=zeros(1,length(t));
        %归一化功率系数
        P_nor=sqrt(1/N0);
        %区别个条路径的均匀分布随机相位
        theta=2*pi*rand(1,1)-pi;
        for ii=1:N0
              %第i条入射波的入射角 
                alfa(ii)=(2*pi*ii-pi+theta)/N;
                %对每个子载波而言在(-pi,pi)之间均匀分布的随机相位
                fi_tc=2*pi*rand(1,1)-pi;
                fi_ts=2*pi*rand(1,1)-pi;
                %计算冲激响应函数
                Tc=Tc+cos(cos(alfa(ii))*wm*t+fi_tc);
                Ts=Ts+cos(sin(alfa(ii))*wm*t+fi_ts);
        end;
        %乘归一化功率系数得到传输函数
       h=P_nor*(Tc+j*Ts );


      改变fd,可以观察到信号功率随着fd的增大而变化加快。

      还可以使用Matlab内置函数实现:

    chan=rayleighchan(ts,fd);
    y=filter(chan,x);%过信道


      此内置函数可以直接生成一个频率选择多径衰落信道,每径为一个瑞利衰落过程。

    chan=rayleighchan(ts,fd,tau,pdb);
    %tau为每径相对时延向量
    %pdb为每径相对增益


  • 相关阅读:
    Spring MVC 入门示例讲解
    使用Word2013,发布博文到博客园
    走过2103,迈向2014
    C#中的字符串拼接@,$
    ORA-22922:nonexistent LOB value问题及listagg()函数
    证明一个数是不是存在于该数组中
    论java中System.arrayCopy()与Arrays.copyOf()的区别
    JSP中获取各种路径的方法
    JavaScript中变量声明有var和没var的区别
    JavaScript:理解事件循环
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3217793.html
Copyright © 2020-2023  润新知