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

📄 shousuo.m

📁 这里是我得一些常用函数库
💻 M
字号:
%用收缩法实现有限精度数字混沌系统并优选
%*******************************************************************
N1=3000;
N=1023;
%产生第一个m序列g1_seq
connect_cof1=[1 0 1];            %移位寄存器的反馈系数
g1_seq_initiate=[1 1 1];         %移位寄存器的初始状态
temp1=g1_seq_initiate;
g1_seq_length=N1;                            %g1序列的长度,g1是m序列
g1_seq=[];                                     %初始时为空矩阵
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))];       %用移位寄存法产生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
%******************************************************************
%产生第一个混沌系统
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);                          %异或过程,相乘取反,产生s1序列
%*******************************************************************
%产生第二个m序列g2_seq
connect_cof2=[1 0 0 1];            %移位寄存器的反馈系数
g2_seq_initiate=[1 1 1 1];         %移位寄存器的初始状态
temp2=g2_seq_initiate;
g2_seq_length=N1;                          %g1序列的长度,g1是m序列
g2_seq=[];                                     %初始时为空矩阵
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))];       %用移位寄存法产生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
%***********************************************************************
%产生第二个混沌系统
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);                          %异或过程,相乘取反,产生s2序列
%***********************************************************************
%抽取产生输出序列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);
%*************************************************************************

⌨️ 快捷键说明

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