gusucode.com > 信道仿真的很好程序,可以实现不同参数情况下的信道仿真,比如超宽带系统的室内多径环境信道仿真 > 信道仿真/rayrice.m
clear %rayrice.m %Gayatrii Prabhu and P. M. Shankar %generates Rayleigh and Rician faded signal with 10 multiple paths %by varying the number of paths, it is possible to get an idea on how many paths are required %for Rayleigh fading (numpaths) v=input('MU speed in m/s....5, 10, 15, 20, 25,..>'); numpaths = 10; %number of paths Fc = 900e6; %carrier frequency Fs = 4*Fc; %sampling frequency Ts = 1/Fs; %sampling period t = [0:Ts:1999*Ts]; %time array wc = 2*pi*Fc; %radian frequency %v = 25; %vehicle speed in m/s ray = zeros(1,length(t)); %received signal for i = 1:numpaths wd = 2*pi*v*Fc*cos(unifrnd(0,2*pi))/3e8; a = weibrnd(1,3,1,length(t)); 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 mean(env_ray) subplot(2,2,1) plot(t*1e9,ray,'k')%plots the rf signal %title('rf signal') xlabel('time (ns)') ylabel('rf signal (volt)') ylim([-10 10]) xlim([0 20]) subplot(2,2,3) plot(t*1e9,env_ray,'k',t*1e9,mean(env_ray),'k')%plots the envelope %title('envelope') xlabel('time (ns)') ylabel('envelope (volt)') xlim([0 20]) ylim([0 10]) rice = zeros(1,length(t)); %received signal for i = 1:numpaths-1 wd = 2*pi*v*Fc*cos(unifrnd(0,2*pi))/3e8; a = weibrnd(1,3,1,length(t)); rice = rice + a.*cos((wc+wd)*t+unifrnd(0,2*pi,1,length(t))); end; wd = 2*pi*v*Fc/3e8; rice = rice + 2.8*cos((wc+wd)*t); [ricei riceq] = demod(rice,Fc,Fs,'qam'); %demodulated signal env_rice = sqrt(ricei.^2+riceq.^2); %envelope of received signal mean(env_rice) subplot(2,2,2) plot(t*1e9,rice,'k')%plots the rf signal %title('rf signal') xlabel('time (ns)') ylabel('rf signal (volt)') xlim([0 20]) ylim([-10 10]) subplot(2,2,4) %thrshold value is fixed at the average value of the envelope in the Rayleigh case plot(t*1e9,env_rice,'k',t*1e9,mean(env_ray),'k')%plots the envelope %title('envelope') xlabel('time (ns)') ylabel('envelope (volt)') xlim([0 20]) ylim([0 10])