?? shousuo.m
字號(hào):
%用收縮法實(shí)現(xiàn)有限精度數(shù)字混沌系統(tǒng)并優(yōu)選
%*******************************************************************
N1=3000;
N=1023;
%產(chǎn)生第一個(gè)m序列g(shù)1_seq
connect_cof1=[1 0 1]; %移位寄存器的反饋系數(shù)
g1_seq_initiate=[1 1 1]; %移位寄存器的初始狀態(tài)
temp1=g1_seq_initiate;
g1_seq_length=N1; %g1序列的長度,g1是m序列
g1_seq=[]; %初始時(shí)為空矩陣
g1_seq_leng=0;
while g1_seq_leng<g1_seq_length
connect_sum=temp1.*connect_cof1;
feedback1=mod(sum(connect_sum),2);
g1_seq=[g1_seq,temp1(length(temp1))]; %用移位寄存法產(chǎn)生m序列
g1_seq_leng=length(g1_seq);
temp1=[feedback1,temp1(1:(length(temp1)-1))];
end
for i=1:g1_seq_length
if g1_seq(i)==0
g1_seq(i)=-1;
else
g1_seq(i)=1;
end
end
%******************************************************************
%產(chǎn)生第一個(gè)混沌系統(tǒng)
y1=[];
col1=length(y1);
while col1<g1_seq_length
x1=1-2*x1^2;
if x1<0
y1=[y1,-1];
else
y1=[y1,1];
end
col1=length(y1);
end
%*******************************************************************
s1_seq=-(g1_seq.*y1); %異或過程,相乘取反,產(chǎn)生s1序列
%*******************************************************************
%產(chǎn)生第二個(gè)m序列g(shù)2_seq
connect_cof2=[1 0 0 1]; %移位寄存器的反饋系數(shù)
g2_seq_initiate=[1 1 1 1]; %移位寄存器的初始狀態(tài)
temp2=g2_seq_initiate;
g2_seq_length=N1; %g1序列的長度,g1是m序列
g2_seq=[]; %初始時(shí)為空矩陣
g2_seq_leng=0;
while g2_seq_leng<g2_seq_length
connect_sum=temp2.*connect_cof2;
feedback2=mod(sum(connect_sum),2);
g2_seq=[g2_seq,temp2(length(temp2))]; %用移位寄存法產(chǎn)生m序列
g2_seq_leng=length(g2_seq);
temp2=[feedback2,temp2(1:(length(temp2)-1))];
end
for i=1:g2_seq_length %將0,1單極性序列變成+1,-1的雙極性序列
if g2_seq(i)==0
g2_seq(i)=-1;
else
g2_seq(i)=1;
end
end
%***********************************************************************
%產(chǎn)生第二個(gè)混沌系統(tǒng)
y2=[];
col2=length(y2);
while col2<g2_seq_length
x2=1-2*x2^2;
if x2<0
y2=[y2,-1];
else
y2=[y2,1];
end
col2=length(y2);
end
%***********************************************************************
s2_seq=-(g2_seq.*y2); %異或過程,相乘取反,產(chǎn)生s2序列
%***********************************************************************
%抽取產(chǎn)生輸出序列s
s_seq=[];
for i=1:N1
if s1_seq(i)==1
s_seq=[s_seq,s2_seq(i)];
end
end
s_seq=s_seq(1:N);
%*************************************************************************
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -