声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1670|回复: 1

[分形与混沌] 关于蔡氏系统的混沌同步模型及高通滤波还原信号的Matlab程序

[复制链接]
发表于 2012-5-19 21:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
混沌同步模型: 未命名.jpg

我的仿真程序:
【文件chua.m——蔡氏电路模型脚本程序】
%参数值a=9.9,b=1,c=14.4
%参数值d=-2.475,e=4.95,f=9.9,g=14.4
function dx=chua(t,x,u)
a=9;b=100/7;c=1;
k=7;
m0=-1/7;m1=2/7;
%发送器:x(1)-x(3)
%接收器:x(4)-x(6)
dx=zeros(6,1);
if x(1)>=1
    fm=m1*x(1)+m0-m1;
elseif x(1)<=-1
    fm=m1*x(1)-m0+m1;
else
    fm=m0*x(1);
end
if x(4)>=1
    fs=m1*x(4)+m0-m1;
elseif x(4)<=-1
    fs=m1*x(4)-m0+m1;
else
    fs=m0*x(4);
end
dx(1)=a*(x(2)-x(1)-fm)+k*u(t==t);
dx(2)=x(1)-x(2)+x(3);
dx(3)=-b*x(2)-c*x(3);
dx(4)=a*(x(5)-x(4)-fs)-k*(x(4)-x(1))+k*u(t==t);
dx(5)=x(4)-x(5)+x(6)-k*(x(5)-x(2));
dx(6)=-b*x(5)-c*x(6)-k*(x(6)-x(3));


【文件sync.m——同步程序】
clear;
lim1=0:10^(-3):30;
lim2=0:10^(-3):90;
x0=zeros(1,6);
k=7;

%明文u1(t)=cos(7t)
t=lim1;
u1=cos(7*t);
subplot(321);plot(t,u1,'r-');
ylim([-1.5,1.5]);
title('明文信号u1(t)=cos(7t)');

%明文u2(t)=(1+sin(0.2t))cos(7t)
t=lim2;
u2=(1+sin(0.2*t)).*cos(7*t);
subplot(322);plot(t,u2,'r-');
ylim([-2.5,2.5]);
title('明文信号u2(t)=(1+sin(0.2t))cos(7t)');

clear t;
%密文yT1=x1m+u1(t)
[t1,x1]=ode45(@chua,lim1,x0,[],u1);
u1=cos(7*t1);
yT1=x1(:,1)+u1*k;
subplot(323);plot(t1,yT1,'r-');
title('密文信号yT1');

%密文yT2=x1m+u2(t)
[t2,x2]=ode45(@chua,lim2,x0,[],u2);
u2=(1+sin(0.2*t2)).*cos(7*t2);
yT2=x2(:,1)+u2*k;
subplot(324);plot(t2,yT2,'r-');
title('密文信号yT2');

%接收器信号恢复
ys1=x1(:,4);
uu1=(yT1-ys1)/k;
subplot(325);plot(t1,uu1,'r-');
ylim([-1.5,1.5]);
title('恢复的明文信号u1(t)');
ys2=x2(:,4);
uu2=(yT2-ys2)/k;
subplot(326);plot(t2,uu2,'r-');
ylim([-2.5,2.5]);
title('恢复的明文信号u2(t)');

figure;
plot(t1,x1(:,1));
hold on;
plot(t1,x1(:,4),'r-');
legend('x1m','x1s');


画出的图:

混沌同步

混沌同步
QQ截图20120519214004.png

【文件mainFig.m——高通滤波程序】
clear;
lim1=0:10^(-3):30;
lim2=0:10^(-3):90;
x0=zeros(1,6);
k=7;

%明文u1(t)=cos(7t)
t=lim1;
u1=cos(7*t);
subplot(321);plot(t,u1,'r-');
ylim([-1.5,1.5]);
title('明文信号u1(t)=cos(7t)');

%明文u2(t)=(1+sin(0.2t))cos(7t)
t=lim2;
u2=(1+sin(0.2*t)).*cos(7*t);
subplot(322);plot(t,u2,'r-');
ylim([-2.5,2.5]);
title('明文信号u2(t)=(1+sin(0.2t))cos(7t)');

%密文对数功率谱
clear t;
Fs=32;  %采样频率
N=8192;  %采样点数
tt=(1:N)/Fs;
window=blackmanharris(N);  %4-term Blackman-Harris窗

[t1,x1]=ode45(@chua,tt,x0,[],u1);
u1=cos(7*t1);
yyT1=x1(:,1)+u1*k;  %密文
noverlap=0;
range='onesided';
[Pxx1,f]=pwelch(yyT1,window,noverlap,N,Fs,range);  %计算功率密度
Pxx1=Pxx1/max(Pxx1);  %归一化
subplot(323);plot(f,20*log10(Pxx1));
axis([0 2 -300 0]);
title('密文yT1对数功率谱');

[t2,x2]=ode45(@chua,tt,x0,[],u2);
u2=(1+sin(0.2*t2)).*cos(7*t2);
yyT2=x2(:,1)+u2*k;  %密文
noverlap=0;
range='onesided';
[Pxx2,f]=pwelch(yyT2,window,noverlap,N,Fs,range);  %计算功率密度
Pxx2=Pxx2/max(Pxx2);  %归一化
subplot(324);plot(f,20*log10(Pxx2));
axis([0 2 -300 0]);
title('密文yT2对数功率谱');

%---------------------------------------------------------
%FIR高通滤波
Fc=1;
b=fir1(2048,2*Fc/Fs,'high');   

y1=filter(b,1,yyT1);
subplot(325);plot(t1,y1);
axis([0 60 -1.5 1.5]);
title('高通滤波恢复明文u1(t)');

y2=filter(b,1,yyT2);
subplot(326);plot(t2,y2);
axis([0 120 -2.5 2.5]);
title('高通滤波恢复明文u2(t)');


画出的图:

高通滤波

高通滤波



【问题】
1.程序总体哪里出了问题,为什么仿真结果密文的图像不成混沌状倒和明文形状类似?
2.第二张图x1m和x1s图为什么前部分波动而后部分为一条直线?
3.对数功率谱的意义是什么?可以看出什么信息?
4.为什么高通滤波的结果虽然恢复了明文的函数图象,但幅值过大?
恳请各位高手指教,不甚感激!:@)
回复
分享到:

使用道具 举报

 楼主| 发表于 2012-5-20 21:26 | 显示全部楼层
求大神啊!!很急!!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-23 20:10 , Processed in 0.068397 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表