function  [H, At, Ar]=stat_mmCh(ULA,dr,dt,t,r,Wt,heightt,Wr,heightr, path, cl,ray,mu_ta, mu_te, mu_ra, mu_re, sigma_ta,sigma_te,sigma_ra,sigma_re)
    
         
kr=(0:r-1)';
kt=(0:t-1)';

if ULA==1
    phi_t=zeros(ray,cl);
    phi_r=zeros(ray,cl);
    
    for n_cl=1:cl
        phi_t(:,n_cl)=trunclaprnd(ray,1,mu_ta(n_cl),sigma_ta(n_cl));
        phi_r(:,n_cl)=trunclaprnd(ray,1,mu_ra(n_cl),sigma_ra(n_cl));
    end
    phi_t=reshape(phi_t,1,path);
    phi_r=reshape(phi_r,1,path);
    
    al=(randn(path,1)+1i*randn(path,1))/sqrt(2);
    Ar=exp(1i*2*pi*dr*(0:r-1)'*cos(phi_r));
    At=exp(1i*2*pi*dt*(0:t-1)'*cos(phi_t));
    
    H=Ar*diag(al)*At'/sqrt(cl*ray);
else
    phi_ta=zeros(ray,cl);
    phi_ra=zeros(ray,cl);
    phi_te=zeros(ray,cl);
    phi_re=zeros(ray,cl);
    
    for n_cl=1:cl
        phi_ta(:,n_cl)=trunclaprnd(ray,1,mu_ta(n_cl),sigma_ta(n_cl));
        phi_ra(:,n_cl)=trunclaprnd(ray,1,mu_ra(n_cl),sigma_ra(n_cl));
        phi_te(:,n_cl)=trunclaprnd(ray,1,mu_te(n_cl),sigma_te(n_cl));
        phi_re(:,n_cl)=trunclaprnd(ray,1,mu_re(n_cl),sigma_re(n_cl));
    end
    phi_ta=reshape(phi_ta,1,path);
    phi_ra=reshape(phi_ra,1,path);
    phi_te=reshape(phi_te,1,path);
    phi_re=reshape(phi_re,1,path);
    
    al=(randn(path,1)+1i*randn(path,1))/sqrt(2);
    
    H=zeros(r,t);Ar=zeros(r,path); At=zeros(t,path);
    for i_path=1:path
        temp_t=exp(1i*dt*2*pi*(0:heightt-1)'*cos(phi_te(i_path)))*exp(1i*dt*2*pi*(0:Wt-1)*sin(phi_te(i_path))*cos(phi_ta(i_path)));
        temp_r=exp(1i*dr*2*pi*(0:heightr-1)'*cos(phi_re(i_path)))*exp(1i*dr*2*pi*(0:Wr-1)*sin(phi_re(i_path))*cos(phi_ra(i_path)));
        temp_t=reshape(temp_t,t,1);
        temp_r=reshape(temp_r,r,1);
        H=H+al(i_path)*temp_r*temp_t';
        Ar(:,i_path)=temp_r;
        At(:,i_path)=temp_t;
    end
    
    H=H/sqrt(cl*ray);
end