www.pudn.com > Spread.zip > chaohop.m


%THIS PROGRAM PRESENTS A NOVEL TYPE OF CHAOTIC HOP COMMUNICATION WHEREIN 
%HOPPING IS NOT IN TERMS OF FREQUENCY BUT IN TERMS OF DIFFERENT CHAOTIC SEQUENCES 
%ACCORDING TO ORDER OF A PARTICULAR CHAOTIC SEQUENCE.THE ORDER OF CONSOLE 
%CAN BE CHECKED AT COMMAND WINDOW.(only transmitter part has been modelled) 
% L - LOGISTIC, Q - QUADRATIC, T - TENT, B - BERNOULLI. 
clc; close all;  clear all; 
 
R = input('TYPE THE WORD to be carried by chaotic sequence based chaos hopping system :', 's'); 
 
M = isempty(R); 
 
if M == 1 
   R = 'MANIPAL REDDY'; 
else     
   R = R;      
end   
 
%TRANSMITTER SECTION OF THE DSSS COMMUNICATION SYSTEM. 
RR = double(R);  bb = 1;  Rp = dec2bin(RR,8); [TA TC] = size(Rp); 
for  ll = 1:1:TA 
  for  lg = 1:1:TC       
      msg(bb) =  Rp(ll,lg); 
      bb = bb + 1; 
  end     
end 
 
msg = msg;                  %RANDOM MESSAGE TO BE TRANSMITTED 
%MESSAGE IN TWO BIT FORMAT FOR QPSK TRANSMISSION. 
rt = 1;  ht = 1; 
for ls = 1:1:TA     
  for ll = 1:2:(TC-1)                
    Inp_msg(rt,(ht:ht+1)) = Rp(ls,(ll:ll+1)); 
    rt = rt + 1;     
  end            
end 
%MESSAGE IN SINGLE BIT FORMATION FOR COMPARISON. 
for  ll = 1:1:TA 
  for  lg = 1:1:TC       
      msg(bb) =  Rp(ll,lg);               
      bb = bb + 1; 
  end     
end 
 
T = 0:((2*pi)/299):(2*pi);  
for ii = 1:1:length(T)     
car1(ii) = cos(T(ii) + (pi/4));               %CARRIER TO BE TRANSMITTED 
car2(ii) = cos(T(ii) + ((5*pi)/4)); 
car3(ii) = cos(T(ii) + ((3*pi)/4)); 
car4(ii) = cos(T(ii) + ((7*pi)/4)); 
end 
 
%-------------------------------------------------------------------------- 
% BERNOULLI MAP 
%-------------------------------------------------------------------------- 
B = 1.75; A = .5; phin = 0.25; phi(1) = (B*phin) - A; 
for ii = 2:1:300        
if phi(ii-1) > 0         
phi(ii) = (B*phi(ii-1)) - A;             
else       
phi(ii) = (B*phi(ii-1)) + A;         
end 
end 
%-------------------------------------------------------------------------- 
% LOGISTIC MAP 
%-------------------------------------------------------------------------- 
A1 = .5; B1 = 4; phin1 = -0.35; 
phi1(1) = ( B1*[(A1^2) - (phin1^2)] ) - A1; 
for ih = 2:1:300 
  phi1(ih) = ( B1*[(A1^2) - (phi1(ih-1)^2)] ) - A1;   
end 
%------------------------------------------------------------------------- 
% QUADRATIC MAP 
%------------------------------------------------------------------------- 
A2 = 4; B2 = .5; phin2 = 0.15; 
phi2(1) = B2 - A2*(phin2^2); 
for ib = 2:1:300 
phi2(ib) = B2- (A2*(phi2(ib-1).^2));     
end 
%------------------------------------------------------------------------- 
%TENT MAP 
%------------------------------------------------------------------------- 
A3 = .5; B3 = 1.99; phin3 = .5; 
phi3(1) = A3 - (B3*phin3); 
for it = 2:1:300     
 phi3(it) = A3 - (B3*abs(phi3(it-1)));    
end 
Carrier = [];  FULinmsg = []; 
 
in_car1 = [-1*ones(1,length(car1)/2),-1*ones(1,length(car1)/2)]; 
in_car2 = [-1*ones(1,length(car1)/2), 1*ones(1,length(car1)/2)]; 
in_car3 = [1*ones(1,length(car1)/2) , 1*ones(1,length(car1)/2)]; 
in_car4 = [1*ones(1,length(car1)/2) ,-1*ones(1,length(car1)/2)]; 
 
for ii = 1:1:length(Inp_msg)     
     if Inp_msg(ii,(1:2))     == '00'    
         ORG_msg = in_car1; 
         Car = car1;                     
     elseif Inp_msg(ii,(1:2)) == '01'    
         ORG_msg = in_car2; 
         Car = car2;           
     elseif Inp_msg(ii,(1:2)) == '11'           
         ORG_msg = in_car3; 
         Car = car3;           
     else           
         ORG_msg = in_car4; 
         Car = car4;           
     end           
         Carrier  = [Carrier Car]; 
         FULinmsg = [FULinmsg ORG_msg]; 
end 
 
% THIS IS FOR TIME CALCULATION. 
Time = 0; 
for bb = 2:1:length(FULinmsg) 
    Time(bb) = Time(bb-1) + 1;   
end 
 
% WE WILL MULTIPLY DIFFERENT CHAOTIC SEQUENCES IN CHOATIC WAY (BY PREDETERMINED WAY)  
% IN ORDER TO ENSURE HIGH SECURITY THAT IS MULTIPLY BY BERNOULLI (B),LOGSITIC(L),QUADRATIC(Q), 
% TENT(T) CHAOTIC SEQUENCES IN CHAOTIC ORDER SO AS TO DODGE ANY EAVESDROPPER'S 
% ATTACK EVEN IT MAY BY  
% SELECTING THE DIFFERENT CHAOTIC SEQUENCES  BLQT 
Toi = (length(FULinmsg)/300); 
AA1 = .5; BA1 = 3.99; phinA1 = -0.35; 
phiA1(1) = ( BA1*[(AA1^2) - (phinA1^2)] ) - AA1; 
for ih = 2:1:Toi 
  phiA1(ih) = ( BA1*[(AA1^2) - (phiA1(ih-1)^2)] ) - AA1;   
end 
 
Ttmd_msg = []; Tck = 1; tot_seq = []; 
for st = 1:1:Toi 
     
     if phiA1(st) <= .5 & phiA1(st) > 0.25; 
         
        SPD_sig = Carrier(Tck:(Tck+299)).*phi*2;    %THIS IS FOR SELECTION OF BERNOULLI SEQUENCE. 
        Ttmd_msg = [Ttmd_msg SPD_sig]; 
        Tck = Tck + 150; 
        seq = 'B'; 
         
     elseif  phiA1(st) <= .25 & phiA1(st) > 0.0; 
         
        SPD_sig = Carrier(Tck:(Tck+299)).*phi1*2;   %THIS IS FOR SELECTION OF LOGISTIC SEQUENCE. 
        Ttmd_msg = [Ttmd_msg SPD_sig]; 
        Tck = Tck + 150;         
        seq = 'L'; 
         
     elseif phiA1(st) <= 0.0 & phiA1(st) > -0.25; 
          
         SPD_sig = Carrier(Tck:(Tck+299)).*phi2*2;  %THIS IS FOR SELECTION OF QUADRATIC SEQUENCE. 
        Ttmd_msg = [Ttmd_msg SPD_sig]; 
        Tck = Tck + 150;   
        seq = 'Q'; 
          
     else  phiA1(st) <= -.25 & phiA1(st) > -0.5;     
          
         SPD_sig = Carrier(Tck:(Tck+299)).*phi3*2;  %THIS IS FOR SELECTION OF TENT SEQUENCE. 
        Ttmd_msg = [Ttmd_msg SPD_sig]; 
        Tck = Tck + 150;   
        seq = 'T'; 
         
     end 
     tot_seq = [tot_seq  seq]; 
      
end 
 
%POWER SPECTRAL DENSITIES  
FFT_MSG = fft(FULinmsg); 
FFT_CAR = fft(Carrier); 
FFT_SPD = fft(Ttmd_msg); 
 
figure(1); 
subplot(221);  plot(car1);      title('\bf SYMBOL S1 for 00'); 
subplot(222);  plot(car2,'r');  title('\bf SYMBOL S2 for 01'); 
subplot(223);  plot(car3,'g');  title('\bf SYMBOL S3 for 11'); 
subplot(224);  plot(car4,'m');  title('\bf SYMBOL S4 for 10'); 
 
figure(2); 
subplot(411);   plot(Carrier);   title('\bf QPSK SIGNAL FOR SENT INPUT BINARY BITS');                        axis([0 length(Carrier) -2 2]); 
subplot(412);   plot(FULinmsg);  title('\bf ORIGINAL MESSAGE IN BINARY FORMAT');                             axis([0 length(FULinmsg) -2 2]); 
subplot(413);   plot(Time,Carrier,'m',Time,FULinmsg,'k'); title('\bf COMPARISON BETWEEN ANALOG AND DIGITAL FORMAT'); axis([0 length(Time) -2 2]);    
subplot(414);   plot(Ttmd_msg);  title('\bf SPREAD SIGNAL BY DIFFERENT MAPS IN CHAOTIC ORDER');              axis([0 length(Carrier) -2 2]); 
 
figure(3); 
subplot(311);   plot(abs(FFT_MSG));    title('\bf MESSAGES PSD'); 
subplot(312);   plot(abs(FFT_CAR));    title('\bf QPSK SIGNAL PSD'); 
subplot(313);   plot(abs(FFT_SPD));    title('\bf PSD of SPREAD SIGNAL'); 
display(tot_seq);