📄 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);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -