混沌映射(序列)matlab算法“小全”:Logistic、Henon、帐篷、kent(含混沌二值图像生成函数)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

混沌映射(序列)matlab 算法“小全”:Logistic 、Henon 、帐篷、kent (含

混沌二值图像生成函数)

1.Logistic (罗切斯特)映射

变换核:

)

1(1n n n x ax x −=+绘图程序:

n=64;

key=0.512;

an=linspace(3.1,3.99,400);

hold on;box on;axis([min(an),max(an),-1,2]);N=n^2;

xn=zeros(1,N);for a=an;

x=key;for k=1:20;

x=a*x*(1-x);%产生公式end;

for k=1:N;

x=a*x*(1-x);xn(k)=x;

b(k,1)=x;%一维矩阵记录迭代结果end;

plot(a*ones(1,N),xn,'k.','markersize',1);end;

%figure;%imhist(b)

实用混沌加密函数:

function ichao_ans=ichaos_logistic(varargin)%logistic 序列生成算法%函数名:

%logistic 混沌序列生成函数%参数:%(n ,key ),n 为矩阵阶数,key 为迭代初始值。%(n ),n 为矩阵阶数,key=0.600。

%()或(n ,key ,...),n=64,key=0.600。switch nargin;

case 1;

n=varargin{1};key=0.600;case 2;

n=varargin{1};

key=varargin{2};otherwise

key=0.600;n=64;end

N=n^2;

xn=zeros(1,N);a=4;

x=key;for k=1:20;

x=a*x*(1-x);%产生公式end;

for k=1:N;

x=a*x*(1-x);

xn(k)=x;%一维矩阵记录迭代结果end;c=reshape(xn,n,n);%一维矩阵转换二维矩阵d=zeros(n,n);

%二维混沌矩阵调制for a1=1:n;

for a2=1:n;

if c(a1,a2)>=0.5;d(a1,a2)=1;else d(a1,a2)=0;end;end;end;

%figure;title('logistic 映射');%imshow(d);ichao_ans=d;

2.Henon (埃农)映射

变换核:

2

1n 11x {

n n n

n ax y bx y −+==++绘图程序:

b=0.3;N=400;

an=ones(1,N);xn=zeros(1,N);hold on;box on;x=0;y=0;

for a=0:0.001:1.4

for k=1:N;

xm=x;ym=y;

x=ym+1-a*xm.*xm;y=b*xm;end

xn(1)=x;for n=2:N;

xm=x;ym=y;

x=ym+1-a*xm.*xm;y=b*xm;xn(n)=x;end

plot(an*a,xn,'k.','markersize',1);end

xlim([0,a]);

实用混沌加密函数:

function ichao_ans=ichaos_henon(varargin)%埃农(Henon )映射

%0.2

%参数:%(n ,key ),n 为矩阵阶数,key 为迭代初始值。%(n ),n 为矩阵阶数,key=0.314。

%()或(n ,key ,...),n=64,key=0.314。switch nargin;

case 1;

n=varargin{1};

key=0.314;case 2;

n=varargin{1};key=varargin{2};otherwise

key=0.314;n=64;end

n=64;N=n^2;

an=ones(1,N);xn=zeros(1,N);x=0;y=0;a=1.4;

for cir1=1:N;

xm=x;ym=y;

x=ym+1-a*xm.*xm;y=key*xm;end

xn(1)=x;for cir2=2:N;

xm=x;ym=y;

x=ym+1-a*xm.*xm;y=key*xm;xn(cir2)=x;end

c=reshape(xn,n,n);%一维矩阵转换二维矩阵d=zeros(n,n);%二维混沌矩阵调制for a1=1:n;

for a2=1:n;if c(a1,a2)>=0;d(a1,a2)=1;else d(a1,a2)=0;end;end;end;

ichao_ans=d;

314

.02.0)4.1,0(a ≤<∈b

3.帐篷映射

变换核:

||)1(1n n x a a x +−=+绘图程序:%帐篷映射%0

%a 理想值0.99—1%0

xp=zeros(1,N);Aa=ones(1,N);hold on;box on;x=0.01;%初值for a=0:0.001:1;

for n=1:N;

x=a-(1+a)*abs(x);end

for k=1:N;

x=a-(1+a)*abs(x);xp(k)=x;end

plot(Aa*a,xp,'k.','markersize',1);end

xlim([0,a]);

实用混沌加密函数:

function ichao_ans=ichaos_tent(varargin)%帐篷映射%0

%a 理想值0.99—1%x 初值作为密钥%0

%()或(n ,key ,...),n=64,key=0.99。switch nargin;

case 1;

n=varargin{1};key=0.99;case 2;

n=varargin{1};

key=varargin{2};otherwise

key=0.99;n=64;end

N=n^2;

xp=zeros(1,N);x=key;a=0.998;

for cir1=1:N;

x=a-(1+a)*abs(x);end

for cir2=1:N;

x=a-(1+a)*abs(x);xp(cir2)=x;end

c=reshape(xp,n,n);%一维矩阵转换二维矩阵d=zeros(n,n);%二维混沌矩阵调制for a1=1:n;

for a2=1:n;if c(a1,a2)>=0;d(a1,a2)=1;else d(a1,a2)=0;end;end;end;

%sum(sum(d))ichao_ans=d;

%imshow(ichao_ans);

)

1,0(∈a

相关文档
最新文档