fade.m

来自「Single/Multipath Channel Model Verificai」· M 代码 · 共 65 行

M
65
字号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% File Name: fade.m
% Function: Generate Rayleigh fading
% Author: 
% Date: 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [iout,qout]=fade(idata,qdata,nsamp,tstp,fd,no,counter,flat)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Variables %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% idata  : Input Ich data     
% qdata  : Input Qch data     
% iout   : Output Ich data
% qout   : Output Qch data
% nsamp  : Number of samples to be simulated       
% tstp   : Minimum time resolution                    
% fd     : Maximum doppler frequency               
% no     : Number of waves in order to generate fading (Number of oscillator)
% counter  : Fading counter                          
% flat     : Flat fading or not 
% (1->flat (only amplitude is fluctuated),0->normal(phase and amplitude are fluctutated)    
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

if fd ~= 0.0  
    ac0 = sqrt(1.0 ./ (2.0.*(no + 1)));   % power normalized constant(ich)
    as0 = sqrt(1.0 ./ (2.0.*no));         % power normalized constant(qch)
    ic0 = counter;                        % fading counter
 
    pai = 3.14159265;   
    wm = 2.0.*pai.*fd;
    n = 4.*no + 2;
    ts = tstp;
    wmts = wm.*ts;
    paino = pai./no;                        

    xc=zeros(1,nsamp);
    xs=zeros(1,nsamp);
    ic=[1:nsamp]+ic0;

  for nn = 1: no
	  cwn = cos( cos(2.0.*pai.*nn./n).*ic.*wmts );
	  xc = xc + cos(paino.*nn).*cwn;
	  xs = xs + sin(paino.*nn).*cwn;
  end

  cwmt = sqrt(2.0).*cos(ic.*wmts);
  xc = (2.0.*xc + cwmt).*ac0;
  xs = 2.0.*xs.*as0;

  ramp=sqrt(xc.^2+xs.^2);   
  rcos=xc./ramp;
  rsin=xs./ramp;

  if flat ==1
    iout = sqrt(xc.^2+xs.^2).*idata(1:nsamp);    % output signal(ich)
    qout = sqrt(xc.^2+xs.^2).*qdata(1:nsamp);    % output signal(qch)
  else
    iout = xc.*idata(1:nsamp) - xs.*qdata(1:nsamp);   % output signal(ich)
    qout = xs.*idata(1:nsamp) + xc.*qdata(1:nsamp);   % output signal(qch)
  end

else  
  iout=idata;
  qout=qdata;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% End %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?