www.gusucode.com > DS-cdma仿真matlab程序 > code8/cdma/final21.m
%********************************************************************* % This program computes the average BER in Rayleigh fading % and AWGN % % AUTHOR: Wenbin Luo % DATE : 04/28/01 % % final21.m % %******************************************************************** %function Plot_Pe = final21() clear all; %close all; format long; %set up the threshold Vt Vt = 0; Plot_Pe = []; N = 16; x_num = 10000; plot_EbNo = -30:2:30; %-20:2:10; for EbNo = -30:2:30, %convert back from dB Eb_No = EbNo; %dB Eb_No = 10.^(Eb_No/10); %assume No = 2; No = 2; Eb = No * Eb_No; %calculate power p Tc = 1; Ts = N * Tc; p = Eb / Ts; %generate BPSK symbols randomly with value +1 or -1 x = bingen(x_num); x_original = x; x = sqrt(p)*x; %generate Rayleigh fading [env,phi] = fade(length(x),0.5); %generate faded sequence x = env.*x'; x = x'; %DS-SS modulate symbols with user code c = bingen(N); y = ds_mod(c(:),x); %scale by appropriate power factor %y = sqrt(p)*y; %add AWGN to signal y = awgn(y,1); %DS-SS demodulate symbols with user code x_de = ds_demod(c(:),y); %decision x_de(find(x_de < 0)) = -1; x_de(find(x_de >=0)) = 1; Pe = length(find(x_original - x_de))/x_num; Plot_Pe = [Plot_Pe Pe]; end %end for EbNo %--------------------------------------------- %return; %--------------------------------------------- %display the calculated Pd and Pfa Plot_Pe %plot Pe versus Eb/No %subplot(2,1,1) semilogy(plot_EbNo,Plot_Pe,'r^-') xlabel('Eb/No (dB)') ylabel('BER') s=sprintf('BER versus Eb/No in Rayleigh fading and AWGN'); title(s); grid on;