马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
混沌同步模型:
我的仿真程序:
【文件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');
画出的图:
混沌同步
【文件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.为什么高通滤波的结果虽然恢复了明文的函数图象,但幅值过大?
恳请各位高手指教,不甚感激!:@)
|