gusucode.com > 信道仿真的很好程序,可以实现不同参数情况下的信道仿真,比如超宽带系统的室内多径环境信道仿真 > 信道仿真/loggen1.m
clear %Gayatari Prabhu and P. M. Shankar %loggen1.m %generates a lognormally faded signal with multipaths (10) and multiple scattering (5) %iterated 1000 times to see of the mean is lognormally distributed. %gives the chi-squate test value as well close all numscat = 8; %number of scatterers numpaths = 10; %number of paths Fc = 900e6; %carrier frequency Fs = 4*Fc; %sampling frequency Ts = 1/Fs; %sampling period t = [0:Ts:4999*Ts]; %time array wc = 2*pi*Fc; %radian frequency v = 1; %vehicle speed in m/s bins = 20; %bins for chi-square test numit = 2000; %number of iterations for Rayleigh meanval = 0; for i = 1:numit ray = zeros(1,length(t)); %received signal for j = 1:numpaths wd = 2*pi*v*Fc*cos(unifrnd(0,2*pi))/3e8; a = prod(raylrnd(1,1,numscat)); ray = ray + a*cos((wc+wd)*t+unifrnd(0,2*pi,1,length(t))); end; [rayi rayq] = demod(ray,Fc,Fs,'qam'); %demodulated signal env_ray = sqrt(rayi.^2+rayq.^2); %envelope of received signal meanval(i) = mean(env_ray); % mean of Rayleigh envelope end; y=sort(meanval./mean(meanval));%mean of y has been made equal to 1 sig=sqrt(log(std(y)^2+1));%parameter sigma for lognormal....... mean of y has been made equal to 1 (inside the bracket) mu=-sig^2/2; %second parameter for lognormal fylog=lognpdf(y,mu,sig);% theoretical lognormal pdf based on the data [h xx]=hist(y,40);%histogram plot(y/max(y),fylog/max(fylog),'r') xlabel('Envelope r'); ylabel('Probability density function f(r)'); hold on plot(xx/max(xx),h/max(h),'k-.') chi_square=logtest(y,20)%chi square test