| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1020 人关注过本帖
标题:如何将经典洛伦兹信号加到kalman滤波器上
取消只看楼主 加入收藏
warjialifute
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-5-24
收藏
 问题点数:0 回复次数:1 
如何将经典洛伦兹信号加到kalman滤波器上

这是洛伦兹信号程序
function out = lorenz_x(length)
h=0.01; %迭代步长
n=length; %需要产生的序列长度
dis=2000; %需要舍弃的初始迭代值的数目
X=[10];Y=[10];Z=[10]; %迭代初值
a=16; b=45.92; c=4; %方程组参数
for i=1:n+dis %迭代产生数值解
x=X(i); y=Y(i); z=Z(i);
q11=fx(x,y,a);
q21=fy(x,y,z,b);
q31=fz(x,y,z,c);
q12=fx(x+0.5*h*q11,y+0.5*h*q21,a);
q22=fy(x+0.5*h*q11,y+0.5*h*q21,z+0.5*h*q31,b);
q32=fz(x+0.5*h*q11,y+0.5*h*q21,z+0.5*h*q31,c);
q13=fx(x+0.5*h*q12,y+0.5*h*q22,a);
q23=fy(x+0.5*h*q12,y+0.5*h*q22,z+0.5*h*q32,b);
q33=fz(x+0.5*h*q12,y+0.5*h*q22,z+0.5*h*q32,c);
q14=fx(x+h*q13,y+h*q23,a);
q24=fy(x+h*q13,y+h*q23,z+h*q33,b);
q34=fz(x+h*q13,y+h*q23,z+h*q33,c);
X(i+1)=x+(h/6)*(q11+2*q12+2*q13+q14);
Y(i+1)=y+(h/6)*(q21+2*q22+2*q23+q24);
Z(i+1)=z+(h/6)*(q31+2*q32+2*q33+q34);
if i>dis %舍弃初始迭代的一段
XX(i-dis)=X(i); YY(i-dis)=Y(i); ZZ(i-dis)=Z(i);
end
end
plot3(XX,YY,ZZ)
out = XX;

function[out]=fx(x,y,a)
out=-a*(x-y);

function[out]=fy(x,y,z,b)
out=-x*z+b*x-y;

function[out]=fz(x,y,z,c)
out=x*y-c*z;

下面是kalman滤波程序
clear
N=200;
w(1)=0;
w=randn(1,N)
x(1)=0;
a=1;
for k=2:N;
x(k)=a*x(k-1)+w(k-1);
end


V=randn(1,N);
q1=std(V);
Rvv=q1.^2;
q2=std(x);
Rxx=q2.^2;
q3=std(w);
Rww=q3.^2;
c=0.2;
Y=c*x+V;

p(1)=0;
s(1)=0;
for t=2:N;
p1(t)=a.^2*p(t-1)+Rww;
b(t)=c*p1(t)/(c.^2*p1(t)+Rvv);
s(t)=a*s(t-1)+b(t)*(Y(t)-a*c*s(t-1));
p(t)=p1(t)-c*b(t)*p1(t);
end

t=1:N;
plot(t,s,'r',t,Y,'g',t,x,'b');
如何将两者结合?

搜索更多相关主题的帖子: 洛伦兹 滤波器 kalman 信号 经典 
2006-05-24 16:31
warjialifute
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-5-24
收藏
得分:0 
求助各位大侠!
2006-05-24 16:32
快速回复:如何将经典洛伦兹信号加到kalman滤波器上
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015838 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved