⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chaohop.m

📁 本程序应用了混沌序列作为伪码生成器对直接扩频系统进行了仿真
💻 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);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -