www.pudn.com > RS.rar > RS_BPSK_System_Simulation.m


% BER performance of RS & Golay coding and BPSK modulation system. 
% AWGN channel is used in this simulation. 
 
E=1;    % energy of per symbol   
EbN0db_sim=0:6;     % signal to noise ratio in dB of simulation   
%************************ BER of simulation  ************************ 
for nEN = 1:length(EbN0db_sim) 
% Clear bit error counters    
    berr_counter(nEN)=0;  % with Golay coding 
    berr_counter1(nEN)=0;  % without Golay coding 
% Clear counter of transmitted symbols.It has 12 bits per symbol. 
    ndata=0; 
% terminate bit errors 
    berrlim=500; 
    while berr_counter(nEN)0; 
% Golay decoder         
        [decoder_data]=Golay_decoder(demo_data); 
% Count bit errors with Golay coding        
        for i=1:12 
        if (decoder_data(i)~=source(i)) 
            berr_counter(nEN)=berr_counter(nEN)+1;  
        end    
    end     
    ber(nEN)=berr_counter(nEN)/(ndata*24);   % bit error rate in simulation with Golay coding  
% Count bit errors without Golay coding 
mod_data1=source.*2-1;  % modulation data without Golay coding 
noise1=randn(1,length(mod_data1)).*attn; 
channel_data1=mod_data1+noise1;  % Data is transmitted in AWGN channel without Golay coding.   
demo_data1=channel_data1>0;    % demodulation data without Golay coding 
for i=1:12 
        if (demo_data1(i)~=source(i)) 
            berr_counter1(nEN)=berr_counter1(nEN)+1;  
        end    
    end     
    ber1(nEN)=berr_counter1(nEN)/(ndata*12);  % bit error rate in simulation without Golay coding 
end 
end 
% theoretical bit error rate of BPSK modulation without Golay coding 
EbN0db_the=0:0.1:6;     % signal to noise ratio in dB of theory 
for i=1:length(EbN0db_the) 
    SNR=exp(EbN0db_the(i)*log(10)/10);             
    ber_the(i)=0.5*erfc(sqrt(SNR)); 
end 
[x]=textread('RS7.txt','%f');        % with RS(7,3,5) 
[y]=textread('RS127.txt','%f');      % with RS(127,122,7) 
 
semilogy(EbN0db_sim,ber,'o');   % BER-EbNo curve with Golay coding 
hold 
semilogy(EbN0db_sim,ber1,'*');  % BER-EbNo curve without Golay coding 
semilogy(EbN0db_the,ber_the);   % theoretical BER-EbNo curve 
semilogy(EbN0db_sim,x,'ro');    % BER-EbNo curve with RS(7,3,5) coding 
semilogy(EbN0db_sim,y,'r*');    % BER-EbNo curve with RS(127,122,7) coding 
 
title('\bf BER performance of Golay & RS coding and BPSK modulation system'); 
xlabel('\fontsize{10} \bf Eb/N0');ylabel('\fontsize{10} \bf BER'); 
legend('BER-EbNo with Golay coding','BER-EbNo without coding','theoretical BER-EbNo curve','BER-EbNo with RS(7,3,5)','BER-EbNo with RS(127,122,7)');