版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
卡尔曼滤波2023/9/2916.1信号模型……RudolfEmilKalman匈牙利数学家BS&MSatMITPhDatColumbia1960年发表的论文《ANewApproachtoLinearFilteringandPredictionProblems》(线性滤波与预测问题的新方法)被引用次数:194062023/9/2926.1信号模型……维纳滤波的模型:信号可以认为是由白噪声激励一个线性系统的响应,假设响应和激励的时域关系可以用下式表示:
上式也就是一阶AR模型。6.1.1状态方程和量测方程2023/9/2936.1信号模型……在卡尔曼滤波中信号被称为是状态变量,用矢量的形式表示为,激励信号也用矢量表示为,激励和响应之间的关系用传递矩阵来表示,得出状态方程:
上式表示的含义就是在k时刻的状态可以由它的前一个时刻的状态来求得,即认为k-1时刻以前的各状态都已记忆在状态中了。2023/9/294在卡尔曼滤波中,用表示量测到的信号矢量序列,表示量测时引入的误差矢量,则量测矢量与状态矢量之间的关系可以写成6.1信号模型……卡尔曼滤波是根据系统的量测数据(即观测数据)对系统的运动进行估计的,所以除了状态方程之外,还需要量测方程。
2023/9/2956.1信号模型……上式和维纳滤波的概念上是一致的,也就是说卡尔曼滤波的一维信号模型和维纳滤波的信号模型是一致的。把上式推广就得到更普遍的多维量测方程
上式中称为量测矩阵,它的引入原因是,量测矢量维数不一定与状态矢量的维数相同,因为我们不一定能观测到所有需要的状态参数。2023/9/2966.1信号模型……6.1.2信号模型状态方程量测方程2023/9/2976.1信号模型……【例6-1】设卡尔曼滤波中量测方程为,已知信号的自相关函数的z变换为:
噪声的自相关函数为,信号和噪声统计独立。求卡尔曼滤波信号模型中的和。2023/9/2986.1信号模型解:根据等式可以求得变换到时域得:因此又因为,所以=1。2023/9/2996.2卡尔曼滤波方法……6.2.1卡尔曼滤波的一步递推法模型把状态方程和量测方程重新给出:
假设信号的上一个估计值已知,现在的问题就是如何来求当前时刻的估计值。2023/9/29106.2卡尔曼滤波方法……如果不考虑噪声和状态方程和量测方程变换如下:
必然,观测值和估计值之间有误差,它们之间的差称为新息(innovation):
显然,新息的产生是由于我们前面忽略了与所引起的。2023/9/29116.2卡尔曼滤波方法……用新息乘以一个修正矩阵,用它来代替式中来对进行估计:
通过上式可以画出卡尔曼滤波对进行估计的递推模型。2023/9/29126.2卡尔曼滤波方法……输入为观测值,输出为信号估计值。卡尔曼滤波的一步递推法模型2023/9/29136.2卡尔曼滤波方法……6.2.2卡尔曼滤波的递推公式(感兴趣自学)卡尔曼滤波的一步递推公式:2023/9/29146.2卡尔曼滤波方法pp.91,【例6-2】2023/9/29156.3卡尔曼滤波器的应用……【例6-3】已知条件和例6-2一样,状态方程和测量方程为:,其中,,信号和噪声统计独立。求卡尔曼滤波器的稳态和。2023/9/29166.3卡尔曼滤波器的应用……解:根据函数调用sys=ss(A,B,C,D,1),得到离散卡尔曼状态模型,采样周期这里设为1。A,C已知,由于函数调用中是设计了两个观测信号的,我们这里只有一个观测信号,所以B取[01],后一个1表示噪声的系数。D取0。实际的语句如下:sys=ss(A,B,C,D,1)然后调用函数[S,L,,H,]=kalman(sys,Q,R),设计离散卡尔曼滤波器。实际语句和计算结果如下:[S,L,,H,]=kalman(sys,0.36,1)L=0.3000=0.6000H=0.3750=0.3750这里省略了输出的S,它表示的信息是达到稳态后系统状态模型,H和表示系统稳态的最终值。2023/9/2917[SLs1Hs]=kalman(sys,0.3卡尔曼滤波器的应用……%s=eegdata(1:M)';*sin(pi*n/50);%仿真信号卡尔曼滤波的一步递推公式:[S,L,,H,]=kalman(sys,0.dx/dt=Ax(t)+Bu(t)4、1和2白噪声,M=10243卡尔曼滤波器的应用……求卡尔曼滤波信号模型中的和。,其中,,信号和噪声统计独立。A,C已知,由于函数调用中是设计了两个观测信号的,我们这里只有一个观测信号,所以B取[01],后一个1表示噪声的系数。e1=Rss(M)-h'*Rxs';2卡尔曼滤波方法……y(t)=Cx(t)+Du(t)卡尔曼滤波在诱发脑电位提取中的应用6.3卡尔曼滤波器的应用……有了修正矩阵和均方误差,代入下式就可以根据观测信号得到卡尔曼滤波的估计值了。从上面例题知道,只要确定了状态模型,就可以调用函数很快设计出卡尔曼滤波器。2023/9/29186.3卡尔曼滤波器的应用……实现代码clearA=0.8;B=[01];C=1;D=0;sys=ss(A,B,C,D,1);[SLs1Hs]=kalman(sys,0.36,1)N=1000;%阶数n=1:N;s=exp(-0.002*n).*sin(pi*n/50);%仿真信号w=0.36*randn(1,N);%白噪声,系数代表噪声相对强度x=s+w;%仿真信号fori=1:Nh(i)=0.5.^i;endss=filter(h,1,x);figure;subplot(2,2,1);plot(n,s);title('信号');subplot(2,2,2);plot(n,w);title('噪声');subplot(2,2,3);plot(n,x);title('观测值');subplot(2,2,4);plot(n,ss);title('信号估计');figure;plot(n,ss-s);title('估计误差');error=mean((ss-s).^2)SYS=SS(A,B,C,D)createsaSSobjectSYSrepresentingthecontinuous-timestate-spacemodeldx/dt=Ax(t)+Bu(t)y(t)=Cx(t)+Du(t)YoucansetD=0tomeanthezeromatrixofappropriatedimensions.IfoneormoreofthematricesA,B,C,Dhaveuncertainty,SSreturnsanuncertainstate-space(USS)model(RobustControlToolboxonly).SYS=SS(A,B,C,D,Ts)createsadiscrete-timestate-spacemodelwithsampletimeTs(setTs=-1ifthesampletimeisundetermined).2023/9/29196.3卡尔曼滤波器的应用……结果图指数正弦衰减信号,N=1000,最小均方误差error=0.2731。指数正弦衰减信号,N=2000,最小均方误差error=0.2350。2023/9/29206.3卡尔曼滤波器的应用……结果图指数正弦衰减信号,N=3000,最小均方误差error=0.1997。指数正弦衰减信号,N=4000,最小均方误差error=0.2021。2023/9/29216.3卡尔曼滤波器的应用……结果图实际心电信号,N=1000,最小均方误差error=0.2808。实际心电信号,N=2000,最小均方误差error=0.2913。2023/9/2922M=input('信号的长度M=');卡尔曼滤波在诱发脑电位提取中的应用h=inv(R_xx)*Rxs';解:根据函数调用sys=ss(A,B,C,D,1),得到离散卡尔曼状态模型,采样周期这里设为1。假设信号的上一个估计值已知,现在的问题就是如何来求当前时刻的估计值。【例6-3】已知条件和例6-2一样,状态方程和测量方程为:e0=e1;把状态方程和量测方程重新给出:N%显示N的最终值解:根据函数调用sys=ss(A,B,C,D,1),得到离散卡尔曼状态模型,采样周期这里设为1。subplot(2,2,2);plot(n,w);title('噪声');6.3卡尔曼滤波器的应用……结果图实际心电信号,N=3000,最小均方误差error=0.2946。实际心电信号,N=4000,最小均方误差error=0.3054。2023/9/29236.3卡尔曼滤波器的应用卡尔曼滤波在诱发脑电位提取中的应用(1)自发电位模型(EEG)和诱发电位(EP)模型的建立(2)卡尔曼状态方程和量测方程的建立(3)卡尔曼滤波器的数据处理结果2023/9/2924本章小结1、掌握:信号模型;2、熟悉:卡尔曼滤波原理和方法;3、了解:卡尔曼滤波的应用。2023/9/2925本章习题pp.95,习题6-12023/9/2926下集预告第七章随机信号的参数建模法2023/9/2927实验4详解……function[h,e]=WH(Rss,Rww,M)%求解维纳-霍夫方程的函数,其中M为信号的长度e1=10;e0=0;N=0;%给e1,e0,N赋初值whileabs(e0-e1)>1e-6%e1和e0不够接近则循环
N=N+1;e0=e1;Rxs=Rss(M:(M+N-1));Rxx=Rww(M:(M+N-1))+Rss(M:(M+N-1));R_xx=zeros(N);forj=1:Nforn=1:NR_xx(j,n)=Rxx(abs(j-n)+1);endendh=inv(R_xx)*Rxs';e1=Rss(M)-h'*Rxs';endN%显示N的最终值e=e1;程序如下:%主程序clear;clc;M=input('信号的长度M=');n=1:M;s=exp(-0.002*n).*sin(pi*n/50);%仿真信号,可以自己生成,任意形式%loadecgdata;%实际心电信号%s=ecgdata(1:M)';%loadeegdata;%实际脑电信号%s=eegdata(1:M)';w=0.4*randn(1,M);%白噪声,系数代表噪声相对强度x=s+w;%仿真信号Rss=xcorr(s,s);%估计信号自相关函数Rww=xcorr(w,w);%估计噪声自相关函数[h,e]=WH(Rss,Rww,M);ss=filter(h,1,x);%用维纳滤波器滤波figure;subplot(2,2,1);plot(n,s);title('信号');subplot(2,2,2);plot(n,w);title('噪声');subplot(2,2,3);plot(n,x);title('观测值');subplot(2,2,4);plot(n,ss);title('信号估计');figure;plot(n,ss-s);title('估计误差');error=mean((ss-s).^2)2023/9/2928实验4详解……1、s为指数正弦衰减信号,w为强度为0.4白噪声,M=1024N=264,最小均方误差error=0.0068。2023/9/2929实验4详解……2、s为实际心电信号,w为强度为0.4白噪声,M=1024N=99,最小均方误差error=0.0236。2023/9/2930实验4详解……3、s为实际脑电信号,w为强度为0.4白噪声,M=1024N=59,最小均方误差error=0.1414。2023/9/2931实验4详解……4、s为指数正弦衰减信号,w为强度为0.4、1和2白噪声,M=1024N=264,最小均方误
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论