实验报告-卡尔曼滤波解剖

合集下载

卡尔曼滤波验证试验报告

卡尔曼滤波验证试验报告

卡尔曼滤波验证试验报告一、状态空间模型111---++=k k k k w Bu Ax xkk k k v Z Hx y ++=其中:A 是状态转移矩阵;B 是控制输入量增益矩阵;uk-1是控制输入量;wk-1是状态转移噪声,p(w) ~ N(0,Q);yk 是观测量;H 是观测矩阵;Zk 是系统误差项;vk 表示M 维观测噪声,p(v) ~ N(0,R) ; 二、演示验证由于实际应用中,A 、H 矩阵比较复杂,为了简化验证难度,取k x 为直流信号,即使得A 、H 都为1;k k v w 、为高斯白噪声,方差为Q 、R ;k k z u 、为零。

所以,有上述假设条件可得:状态空间模型:时间更新方程: 1ˆˆ-='k k x xQ P P k k +='-111--+=k k k w x x k k k v x y +=()R N v k ,0~()Q N w k ,0~1-状态更新方程:()k k k k k x y K x x '-+'=ˆˆˆ()1-+''=R P P K k k k()kk k P K I P '-= (1)P'k 越小,Kk 越小,先验估计精度高,估计值应当更加信任先验估计量,如图1所示。

图1 先验权重更大 (2)R 越小,Kk 越大,观测精度高,估计值更加信任观测获得的新息,如图2所示。

图2 观测值权重更大三、实验结论(1)观测噪声协方差R越小,新息的增益Kk越大。

特别地,R 趋向于零时,有Kk趋向于H-1。

因此,估计式中新息的权重(增益Kk)越来越大。

(2)另一方面,先验估计误差协方差P/k越小,新息的增益Kk越小。

特别地,P/k趋向于零时,有Kk趋向于0。

因此,估计式中新息的权重(增益Kk)越来越小。

kalman-卡尔曼滤波器实验

kalman-卡尔曼滤波器实验

实验 卡尔曼过滤信号提取方法一. 实验目的1. 利用计算机软件实现随机信号的卡尔曼滤波。

2. 考察影响卡尔曼滤波方法性能的各种因素。

3. 观察卡尔曼滤波方法与维纳滤波方法的优缺点。

二. 实验原理与方法已知系统的状态的状态方程和量测方程:111k k kk k k k W A B xx u w ---=++(1) kkkkkCVyxv =+(2)其中kA ,kB ,kW ,kC 和kV 为已知的系统参数,ku 为动态系统的确定性激励,kw 和kv 事均值为0,方差分别为Rw 和Rv 的高斯白噪声,k w ,k v 和0x 是相互独立的,问题是如何来从观测数据估计kx 。

利用最小均方误差准则我们可以得到一组卡尔曼滤波的递推公式:111^^^()k k kk kk kk k kC Hy A A B u xx x ----=++(3)1''()T T k k k k kk kC C C H PPR -=+ (4) '1'T kkkk kQP A P A-+=(5) '()kk kkI CP H P=-(6)其中T kvkk V R P R =111T wk k k QWWR---=T 表示转置运算,I 为单位矩阵,如果我们已知初始状态0x 的统计特性,则可选择上述递推公式的初始值为:00^[]E x x=,^()V a r xp=因此当我们已知k H ,利用前一个k x 的估计值1^k x -与当前值ky ,就可以得到在最小均方误差准则下的最佳估计值^kx 。

三. 实验内容及步骤1.在matlab上建立M文件,代码如下:Ak = input('Ak=');Bk = input('Bk=');Wk = input('Wk=');Vk = input('Vk=');Ck = input('Ck=');Rw = input('Rw=');Rv = input('Rv=');x(1) = input('x0=');P(1) = input('p0=');N = input('请输入维数N=');L = input('请输入yk的样本个数L=');v = sqrt(Rv)*(randn(1,L));w = sqrt(Rw)*(randn(1,L));y(1)=Ak*x(1)+Vk*v(1);y1(1) = Ck*x(1);for k=2:L;x(k) = Ak*x(k-1)+Bk*u(k-1)+Wk*w(k-1);y(k)=Ck*x(k)+Vk*v(k);y1(k)=Ck*x(k);endRk = Vk*Vk'*Rv;Qk = Wk*Wk'*Rw;I = eye(N);AC=Ck*Ak;for k=2:LPdk = Ak*P(k-1)*Ak'+Qk;Hk = Pdk*Ck'/(Ck*Pdk*Ck'+Rk);x1(k) = Ak*x1(k-1)+Hk*(y(k)-AC*x(k-1));P(k) = (I-Hk*Ck)*Pdk;y2(k) = Ck*x1(k);endn=1:L;%%»绘图,产生的L个信号yi(k)=Ck*Xk,以及实际的信号y(k)figure(1)stem(n,y1,'r','*');hold onstem(n,y,'b','o');title('信号y1(k)=Ck*xk红色(*)与实际信号yk蓝色(o)的比较');%»绘图产生的L个估计信号x(K),以及实际信号xkfigure(2)stem(n,x1,'r','*');hold onstem(n,x,'b','o');title('估计信号x(k)红色(*)与真实信号xk的比较’);%»绘图,产生的L个信号yik=Ck*x(k),估计信号y2(k)=Ck*x(k)figure(3)stem(n,y1,'r','*');hold onstem(n,y2,'b','o');title('信号yik=Ck*x(k)红色(*)与估计信号y2(k)=Ck*x(k)蓝色(o)的就、比较'); figure(4)stem(n,H,'r','*');hold onstem(n,P,'b','o');title(‘Pk 红色(*)与Hk 蓝色(o )的比较’);2.运行卡尔曼滤波程序,分别输入参编变量Ak=0.95,Bk=0,Wk=1,Vk=1,Ck=1,Rw=0.0975,Rv=1.0,x0=0,p0=1e-12,维数N=1,yk 的样本个数L=100 (1)观察:kalman 滤波的效果如图1所示:其均方误差为E[2()n e ]=1.443528654826331,(2)kalman 滤波的收敛情况如图2所示:(3)与理想的维娜滤波器相比,kalman 滤波器的性能差一点 3.分别取Rw=1,0.01, 1210-,其他参数不变,观察的Rw 对滤波性能的影响分别,如下三图:图3,图4,图5分别是Rw=1, 0.01,1210-时^kx 与实际信号k x 的比较,其均方误差分别为:E[2()n e ]=5.409765863162916,E[2()n e ]=0.139340339669452,E[2()n e ]=6.063221649414783e-012,显然Rw 的变化直接影响着ky 与其估计^k y 的性能,Rw 越大^k y 的估计越差,对其影响分别如图6,图7,图8所示:图3图4图1 图24.改变Rv=20, 0.1, 410-,其他输入同步骤2中的参数,观察并记录Rv 变化对滤波性能的影响,如下三图:图9,图10,图11分别是Rv=20, 0.1, 410-时^kx与实际信号k x 的比较,其均方误差分别为:E[2()n e ]=1.425937*********,E[2()n e ]=0.692969170368545,E[2()n e ]=0.000866756398945823,Rv 的大小直接影响着信号估计值^kx 接近实际信号k x 程度,Rv 越大滤波效果越差。

卡尔曼滤波与组合导航课程实验报告

卡尔曼滤波与组合导航课程实验报告
五、源程序
clear;
clc;
%载入数据
IMU=load('C:\Users\Administrator\Desktop\卡尔曼\IMU.dat');
GPS=load('C:\Users\Administrator\Desktop\卡尔曼\GPS.dat');
%%%%%%%%%%定义常数
e=1/298.3;
else
kesai=kesai_1-pi;
end
end
if Cnb(3,3)==0
if Cnb(1,3)>0
gama=pi/2;
else
gama=-pi/2;
end
elseif Cnb(3,3)>0
gama=gama_1;
else
if Cnb(1,3)>0
gama=gama_1-pi;
else
gama=gama_1+pi;
end
end
%%%%%%%%%%%%存储惯导解算求的的速度、位置和姿态角
velocity(i,:) = [vx,vy,vz];
position(i,:) = [lat/pi*180,long/pi*180,h];
gama=1.78357*pi/180 ; %横滚角
kesai=305.34023*pi/180 ; %航向角
q=[cos(kesai/2)*cos(cita/2)*cos(gama/2)-sin(kesai/2)*sin(cita/2)*sin(gama/2);
cos(kesai/2)*sin(cita/2)*cos(gama/2)-sin(kesai/2)*cos(cita/2)*sin(gama/2);

《信号与分析》卡尔曼滤波实验报告

《信号与分析》卡尔曼滤波实验报告
《信号与分析》卡尔曼滤波实验报告
实验目的:
1.了解卡尔曼滤波。
2.学习卡尔曼滤波滤波的应用及其MATLAB实现卡尔曼滤波的算法。
实验仪器:MATLAB
实验内容及步骤:
functionmain
N=120;CON=28;
Xexpect=CON*ones(1,N);
X=zeros(1,N);
Xkf=zeros(1,N);
实验心得:
通过本次实验,我们学习了卡尔曼滤波,它是一种算法,卡尔曼滤波会根据各测量量在不同时间下的值,考虑各时间下的联合分布,产生比仅基于单个测量值更精确的未知变量的估计,从过去到现在都在用,用途十分广泛。
plot(t,Xexpect,'-b',t,X,'-r',t,Z,'-k',t,Xkf,'-g');
legend('expected','real','measure','kalman extimate');
xlabel('sample time');
ylabel('temperature');
title('Kalman Filter Simulation');
end
Err_Messure=zeros(1,N);
Err_Kalman=zeros(1,N);
fork=1:N
Err_Messure(k)=abs(Z(k)-X(k));
Err_Kalman(k)=abs(Xkf(k)-X(k));
end
t=1:N;
figure('Name','Kalman Filter Simulation','NumberTitle','off');

完整word版Kalman滤波MATLAB综合实验报告

完整word版Kalman滤波MATLAB综合实验报告

《数学实验》综合实验报告实验名称综合实验(Kalman滤波)2016年 5月一、【实验目的】明白滤波计算流程能够调用相关函数进行数据处理使用循环函数和二维曲线画图有效的构建仿真模型,产生模拟数据二、【实验原理分析】卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法)”。

对于解决很大部分的问题,它是最优,效率最高甚至是最有用的。

它的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。

近来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。

设系统可用一个线性随机微分方程来描述:X(k)=A X(k-1)+B U(k)+W(k)再加上系统的测量值:Z(k)=H X(k)+V(k)上两式子中,X(k)是k时刻的系统状态,U(k)是k时刻对系统的控制量。

A和B是系统参数,对于多模型系统,他们为矩阵。

Z(k)是k时刻的测量值,H是测量系统的参数,对于多测量系统,H为矩阵。

W(k)和V(k)分别表示过程和测量的噪声。

他们被假设成高斯白噪声,他们的协方差分别是Q,R(这里假设他们不随系统状态变化而变化)。

对于满足上面的条件(线性随机微分系统,过程和测量都是高斯白噪声),卡尔曼滤波器是最优的信息处理器。

首先要利用系统的过程模型,来预测下一状态的系统。

假设现在的系统状态是k,根据系统的模型,可以基于系统的上一状态而预测出现在状态:X(k|k-1)=A X(k-1|k-1)+B U(k) (1)式(1)中,X(k|k-1)是利用上一状态预测的结果,X(k-1|k-1)是上一状态最优的结果,U(k)为现在状态的控制量,如果没有控制量,它可以为0。

到现在为止,我们的系统结果已经更新了,可是,对应于X(k|k-1)的协方差还没更新。

我们用P表示协方差:P(k|k-1)=A P(k-1|k-1) A'+Q (2)式(2)中,P(k|k-1)是X(k|k-1)对应的协方差,P(k-1|k-1)是X(k-1|k-1)对应的协方差,A'表示A的转置矩阵,Q是系统过程的协方差。

卡尔曼滤波器原理详解

卡尔曼滤波器原理详解

卡尔曼滤波器原理详解卡尔曼滤波器是一种用于估计系统状态的滤波算法,其原理基于状态空间模型和观测模型,并结合最小均方误差准则。

它通过使用系统动态方程和观测值,对系统的状态进行估计和预测,实现对噪声和偏差的最优抑制,从而提高状态估计的精度和稳定性。

1.预测步骤:预测步骤是基于系统的动态方程,利用上一时刻的状态估计和控制输入,预测系统的状态。

预测步骤中,通过状态转移矩阵A将上一时刻的状态估计值x(k-1)预测到当前时刻的状态估计值的先验估计值x'(k):x'(k)=A*x(k-1)+B*u(k-1)其中,x(k-1)为上一时刻的状态估计值,u(k-1)为控制输入。

预测步骤还要对状态估计值的协方差矩阵P(k-1)进行更新,通过状态转移矩阵A和系统的过程噪声协方差矩阵Q的关系:P'(k)=A*P(k-1)*A'+Q2.更新步骤:更新步骤是基于观测模型,利用当前时刻的观测值和预测的状态估计值,对状态进行校正和更新。

更新步骤中,首先计算观测残差z(k):z(k)=y(k)-H*x'(k)其中,y(k)为当前时刻的观测值,H为观测模型矩阵。

然后基于观测模型矩阵H、预测的状态估计值x'(k)和状态估计值的协方差矩阵P'(k),计算卡尔曼增益K(k):K(k)=P'(k)*H'*(H*P'(k)*H'+R)^(-1)其中,R为观测噪声协方差矩阵。

最后,利用卡尔曼增益对状态估计值进行校正和更新:x(k)=x'(k)+K(k)*z(k)更新步骤还要对状态估计值的协方差矩阵P'(k)进行更新,通过卡尔曼增益K(k)和观测噪声协方差矩阵R的关系:P(k)=(I-K(k)*H)*P'(k)其中,I为单位矩阵。

卡尔曼滤波器的主要优点在于可以根据系统的动态方程和观测模型进行状态估计,对于动态系统和噪声的建模具有一定的灵活性。

卡尔曼滤波报告

卡尔曼滤波报告

卡尔曼滤波实验报告一、实验任务产生含噪声信号X(n)=sin(2*pi*f*n)+w(n),f=0.05,w(n)~N(0,1.2)。

编写程序运用卡尔曼滤波进行去噪处理,要求画出去噪前和去噪后图形,滤波误差及收敛过程。

二、实验程序clc;clear;N=256 ; %信号与噪声的长度离散信号个数w=randn(1.2,N); %产生高斯白噪声,令方差为1.2f=0.05; %实正弦信号频率s=sin(2*pi*f*(0:N-1)) ; %产生正弦信号subplot(311);plot(s);title('有用信号s(n)')grid on;x=s+w;subplot(312);plot(x);title('加噪信号x(n)')grid on;c=[1]; %观测矩阵a=[1]; %状态转移矩阵b=[1]; %输入矩阵H=[1];R=std(w); %R是观测白噪声v(k)的方差Y(1)=20;P(1)=10;for i=1:1:N-1Y(i+1)=a*Y(i)+b*s(i);P(i+1)=a*P(i);Kg(i)=P(i+1)*H'*inv(H*P(i+1)*H'+R);Y(i+1)= Y(i+1)+Kg(i)*(x(i)-H*Y(i+1));P(i+1)=P(i+1)-Kg(i)*H*P(i+1);end;subplot(313);t=1:N;plot(t,Y);title('通过卡尔曼滤波后的估计信号y(n)')grid on;三、实验结果四、实验总结与维纳滤波器实验结果相比,卡尔曼滤波器的输出更加平滑,但是仍没有去除掉曲线中的椒盐噪声点,这一点需要继续改进。

卡尔曼滤波就是根据前一个估计值x^k-1和当前的观测值yk来对信号作递推估计,得到x^k 。

首先建立卡尔曼滤波器的模型,由状态方程和观测方程xk=Akxk-1+wk-1,y k =Ckxk+vk,由此可得到k时刻的预测值x^k’=Ak-1x^k-1与估计值y^k’=Ckx^k’=CkAkx^k-1,定义新息y~k =yk-y^k’,由于wk-1和vk的影响才产生了y~k,为了得到最有估计值,有必要利用一系列矩阵Hk 来校正预测值y^k’,此时x^k= Ak-1x^k-1+Hk(yk- CkAkx^k-1)上式为卡尔曼滤波器的递推方程,这样就可以根据前一个估计值x^k-1和当前观测值yk对信号作递推估计,得到x^k。

卡尔曼滤波与组合导航课程实验报告

卡尔曼滤波与组合导航课程实验报告

⑨ 准备过程中由实验教师介绍捷联惯导 /GPS 组合实验系统的组成、工作原理;
2) 捷联惯导 /GPS 组合导航系统静态导航实验 ① 实验系统准备 5 分钟之后, 通过监控软件, 将实验系统设置为 “组合导航” 状态; ② 记录 IMU 的原始输出,即角增量和比力信息; ③ 记录数据过程中, 由实验教师介绍采用卡尔曼滤波方法进行捷联惯导 /GPS 组合导 航的基本原理; ④ 记录 IMU 数据 5 分钟后,停止记录数据,利用监控计算机中的捷联惯导 /GPS 组 合导航软件进行静态导航解算,并显示静态导航结果;
《卡尔曼滤波与组合导航》课程实验报告
实验 姓名
日期
捷联惯导 /GPS 组合导航系统静态导航实验
陈星宇
系院专业
17
班级
ZY11172
2012-5-15
指导教师
宫晓琳
实验序号 学号 成绩
3 ZY1117212
一、实验目的
① 掌握捷联惯导 /GPS 组合导航系统的构成和基本工作原理; ② 掌握采用卡尔曼滤波方法进行捷联惯导 /GPS 组合的基本原理; ③ 掌握捷联惯导 /GPS 组合导航系统静态性能; ④了解捷联惯导 /GPS 组合导航静态时的系统状态可观测性;
03 6 ,
T
H V 03 3 diag 1, 1, 1 03 9 , v v VE v VN v VU v L v v H 为量测噪声。 量测噪声方
差阵 R 根据 GPS 的位置、速度噪声水平选取。
( 3) 卡尔曼滤波方程
状态一步预测: X?k /k 1
k,k 1 X?k 1
状态估计: X?k X?k /k 1 K k (Zk H k X?k/ k 1 )
机常值漂移和加速度计随机常值零偏。(下标

卡尔曼滤波实验报告

卡尔曼滤波实验报告

一、实验目的1. 理解卡尔曼滤波的基本原理和算法流程;2. 掌握卡尔曼滤波在实际应用中的数据预处理、模型建立和参数调整;3. 分析卡尔曼滤波在不同场景下的性能表现。

二、实验环境1. 操作系统:Windows 102. 编程语言:Python3. 库:NumPy、SciPy、Matplotlib三、实验内容1. 卡尔曼滤波基本原理及算法流程卡尔曼滤波是一种递归的线性最小方差估计方法,用于处理线性动态系统和线性观测系统。

其基本原理如下:(1)状态方程:描述系统状态随时间的变化规律,即 \(x_{k+1} = A \cdot x_k + B \cdot u_k\),其中 \(x_k\) 表示状态向量,\(A\) 为状态转移矩阵,\(u_k\) 为控制输入。

(2)观测方程:描述观测值与系统状态之间的关系,即 \(z_k = H \cdot x_k + v_k\),其中 \(z_k\) 表示观测向量,\(H\) 为观测矩阵,\(v_k\) 为观测噪声。

(3)卡尔曼滤波算法:a. 初始化:设定初始状态 \(x_0\) 和初始协方差 \(P_0\);b. 预测:根据状态方程和初始状态,计算预测状态 \(x_k^{\hat{}}\) 和预测协方差 \(P_k^{\hat{}}\);c. 更新:根据观测方程和实际观测值,计算观测残差 \(y_k = z_k - H\cdot x_k^{\hat{}}\) 和观测残差协方差 \(S_k\);d. 估计:根据卡尔曼增益 \(K_k = P_k^{\hat{}} \cdot H^T \cdot (H\cdot P_k^{\hat{}} \cdot H^T + R)^{-1}\),更新状态 \(x_k = x_k^{\hat{}}+ K_k \cdot y_k\) 和协方差 \(P_k = (I - K_k \cdot H) \cdotP_k^{\hat{}}\)。

2. 卡尔曼滤波实验步骤(1)数据预处理:收集实验数据,包括系统状态、观测值和控制输入等,对数据进行清洗和标准化处理。

卡尔曼滤波器原理详解

卡尔曼滤波器原理详解

A· AT
Q
ˆk P
ˆk P
卡尔曼滤波
5
算法扩展 滤波器参数调整
在卡尔曼滤波器实际实现时,测量噪声R一般可以观 测得到,是滤波器的已知条件。观测测量噪声协方差 R可以通过离线试验获取。 而过程激励噪声协方差Q值比较难以确定,因为我们 无法直接观测到过程状态 xk 。有时候可以通过Q的 手动选择,人为的为过程“注入”一个足够的不确定 因素,来产生一个可以接受的结果。 也可以使用一个离线模拟滤波器与在线滤波器进行实 时对比的方式来实时优化滤波器的参数(Q和R)。 卡尔曼滤波
T ˆ ˆk )(I KkH ) Pk ( I KkH ) cov(xk x
Kk cov(vk ) Kk
T
卡尔曼滤波
3
算法推导
如果记
ˆk ˆk ) P cov(xk x
,则有:
T T ˆ ˆ Pk ( I KkH )Pk ( I KkH ) KkRKk
3.4
2、根据先验估计
这里的权重系数也成为卡尔曼增益。 至此卡尔曼滤波计算原型公式基本结束, 下面要确定出最优系数K和在最优系数下 的后验估计误差的协方差矩阵的递推方 法 权重 残差
卡尔曼滤波
3
算法推导
ˆk 推导后验协方差矩阵 P ˆ k 开始推导如下: 按照定义,我们从误差协方差 P
ˆ k cov(xk x ˆk ) P
ˆ k 趋向于零时,根据式3.2可知,Q=0 反之当 P
nx1
易知,此时系统完全抛弃测量值,取先验估计值 卡尔曼滤波
4
算法总结 算法描述
卡尔曼滤波器用反馈控制的方法估计过程状态。估计 过程某一时刻的状态,然后以(含噪声)测量值得方 式获得反馈,因此卡尔曼滤波器可以分为两个部分: 1、时间更新方程 负责向前推算当前状态向量和误差协方差估计的值, 为下一个时间状态构成先验估计。 2、测量更新方程 负责将先验估计和新的测量变量结合已构成改进后的 后验估计。 卡尔曼滤波

卡尔曼滤波实验报告

卡尔曼滤波实验报告

卡尔曼滤波实验报告卡尔曼滤波实验报告引言:卡尔曼滤波是一种常用于估计系统状态的方法,其原理基于贝叶斯推断和最小均方误差准则。

在本次实验中,我们将通过一个简单的例子来展示卡尔曼滤波的应用,并探讨其优势和限制。

实验设计:我们设计了一个简单的系统模型,以模拟一个移动目标的位置估计问题。

假设目标在一个二维平面上运动,我们通过传感器获取到目标的位置观测值,并使用卡尔曼滤波算法对目标的真实位置进行估计。

实验步骤:1. 系统建模:我们首先建立了一个线性动态系统模型,包括状态方程和观测方程。

状态方程描述了目标在每个时间步的位置变化规律,而观测方程则表示传感器对目标位置的观测结果。

这两个方程是卡尔曼滤波的基础。

2. 初始化:在开始实验之前,我们需要对卡尔曼滤波器进行初始化。

初始化包括对系统状态和误差协方差进行初始估计。

这些初始值将在后续的迭代中被不断更新。

3. 迭代更新:在每个时间步,我们根据观测值和上一时刻的状态估计,使用卡尔曼滤波算法进行状态更新和误差估计。

具体来说,我们通过预测步骤和更新步骤来更新状态和误差协方差。

4. 结果分析:在实验结束后,我们将对卡尔曼滤波器的输出结果进行分析。

我们将比较滤波器的估计结果与真实状态的差异,并评估滤波器的性能。

实验结果:通过对实验数据的分析,我们可以得出以下结论:1. 卡尔曼滤波器能够有效地估计系统的状态。

与传统的滤波方法相比,卡尔曼滤波器具有更好的估计精度和稳定性。

2. 在系统状态变化较快或观测误差较大的情况下,卡尔曼滤波器的性能可能会有所下降。

这是因为卡尔曼滤波器假设系统是线性的,并且观测误差是高斯分布的。

3. 卡尔曼滤波器的性能与初始估计值的准确性密切相关。

良好的初始估计可以提高滤波器的收敛速度和估计精度。

讨论与展望:尽管卡尔曼滤波在实际应用中已经取得了很大的成功,但它仍然有一些局限性。

首先,卡尔曼滤波假设系统是线性的,而在实际应用中,许多系统是非线性的。

因此,为了处理非线性系统,研究人员提出了一系列的扩展卡尔曼滤波和无迹卡尔曼滤波方法。

第三章卡尔曼(Kalman)滤波

第三章卡尔曼(Kalman)滤波
来估计信号的当前值 以均方误差最小条件下求解 系统的传递函数H(z)或单位冲激响应h(n)
卡尔曼滤波
不需要全部过去的观察数据
ˆ 只根据前一个估计值 xk -1 和最近一个观察数据 yk
来估计信号的当前值 它是用状态空间法描述系统, 即由状态方程和量测方程组成。
解是以估计值(是状态变量的估计值)的形式给出的
总结
状态方程的核心是:设置状态变量, 状态变量是网络内部(最少的)节点变量, 一般设在延迟支路的输出端,状态方程刻 画了状态变量下一时刻的取值与当前时刻的 状态变量和输入之间的关系。
x(k 1) Ax(k ) Be(k )
一步递推状态方程: x(k ) A(k ) x(k 1) w(k -1)
如果用k0表示起始点的k值从x(k )开始递推,从而有
x(k ) k ,k 0 x(k0 ) k , j 1 Be( j )
j k0
k 1
k0 0:表示从初始状态x(0)开始递推。
k ,k 0:代表从k0状态到k 状态的转移矩阵。
如果k0 k 1,就得到一步递推公式:
第二节 卡尔曼滤波器的信号模型 —离散状态方程与量测方程
引入

在讨论维纳滤波时,提出一个基本概念: 任何具有有理功率谱密度的随机信号都可看作 是白色噪声通过一个线性网络所形成。 由此得到维纳滤波器的信号模型
v ( n)
s ( n)
w(n) A( z )
w( n)
A( z )
s ( n)
x ( n)
-
yk
yk'
Hk
ˆ x
' k
ˆ xk
z -1
Ak
ˆ xk -1

(完整word版)实验报告-卡尔曼滤波

(完整word版)实验报告-卡尔曼滤波

数字信号处理实验报告姓名: 专业: 通信与信息系统 学号: 日期:2015.11实验内容任务一:一连续平稳的随机信号()t x ,自相关函数()tx er -=τ,信号()t x 为加性噪声所干扰,噪声是白噪声,测量值的离散值()k z 为已知,s T s 02.0=,—3.2,—0。

8,—14,—16,-17,—18,—3。

3,—2.4,-18,—0.3,—0.4,-0。

8,—19,-2.0,-1.2,-11,-14,—0.9,-0.8,10,0。

2,0。

5,-0.5,2.4,—0。

5,0。

5,—13,0.5,10,—12,0。

5,—0。

6,—15,—0.7,15,0.5,—0.7,—2.0,—19,-17,-11,—14,自编卡尔曼滤波递推程序,估计信号()t x 的波形。

任务二:设计一维纳滤波器。

(1)产生三组观测数据:首先根据()()()n w n as n s +-=1产生信号()n s ,将其加噪(信噪比分别为20dB ,10dB ,6dB ),得到观测数据() n x 1,() n x 2,() n x 3。

(2)估计() n x i , 1=i ,2,3的AR 模型参数。

假设信号长度为L ,AR 模型阶数为N ,分析实验结果,并讨论改变L ,N 对实验结果的影响。

实验任务一1.卡尔曼滤波原理1。

1 卡尔曼滤波简介早在20世纪40年代,开始有人用状态变量模型来研究随机过程,到60年代初,由于空间技术的发展,为了解决对非平稳、多输入输出随机序列的估计问题,卡尔曼提出了递推最优估计理论。

它用状态空间法描述系统,由状态方程和量测方程所组成,即知道前一个状态的估计值和最近一个观测数据,采用递推的算法估计当前的状态值。

由于卡尔曼滤波采用递推法,适合于计算机处理,并且可以用来处理多维和非平稳随机信号,现已广泛应用于很多领域,并取得了很好的结果。

卡尔曼滤波一经出现,就受到人们的很大重视,并在实践中不断丰富和完善,其中一个成功的应用是设计运载体的高精度组合导航系统.卡尔曼滤波具有以下的特点:(1)算法是递推的,且状态空间法采用在时域内设计滤波器的方法,因而适用于多维随机过程的估计;离散型卡尔曼算法适用于计算机处理.(2)用递推法计算,不需要知道全部过去的值,用状态方程描述状态变量的动态变化规律,因此信号可以是平稳的,也可以是非平稳的,即卡尔曼滤波适用于非平稳过程。

卡尔曼滤波研究综述

卡尔曼滤波研究综述

卡尔曼滤波研究综述1 卡尔曼滤波简介1.1卡尔曼滤波的由来1960年卡尔曼发表了用递归方法解决离散数据线性滤波问题的论文-《A New Approach to Linear Filtering and Prediction Problems》(线性滤波与预测问题的新方法),在这篇文章里一种克服了维纳滤波缺点的新方法被提出来,这就是我们今天称之为卡尔曼滤波的方法。

卡尔曼滤波应用广泛且功能强大,它可以估计信号的过去和当前状态甚至能估计将来的状态即使并不知道模型的确切性质。

其基本思想是以最小均方误差为最佳估计准则,采用信号与噪声的状态空间模型利用前一时刻的估计值和当前时刻的观测值来更新对状态变量的估计,求出当前时刻的估计值。

算法根据建立的系统方程和观测方程对需要处理的信号做出满足最小均方误差的估计。

对于解决很大部分的问题,它是最优,效率最高甚至是最有用的。

它的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。

近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。

1.2标准卡尔曼滤波-离散线性卡尔曼滤波为了描述方便我们作以下假设:物理系统的状态转换过程可以描述为一个离散时间的随机过程;系统状态受控制输入的影响;系统状态及观测过程都不可避免受噪声影响;对系统状态是非直接可观测的。

在以上假设前提下,得到系统的状体方程和观测方程。

X ⎧⎨ 1-1式中:X k 为状态向量,L k 为观测向量,Φk,k-1为状态转移矩阵,U k-1为控制向量,一般不考虑,Γk,k-1,B k 为系数矩阵,Ωk-1为系统动态噪声向量,Δk 为观测噪声向量,其随机模型为E(Ωk ) =0;E(Δk ) =0;cov(Ωk ,Ωj ) = DΩ(k )δkj ,cov (Δk ,Δj ) = D k (k )δkj ;cov(Ωk ,Δj ) =0;E(X 0) =μx(0)var(X 0) = D(X 0);cov(X 0,Ωk ) =0;cov(X 0,Δk ) =0. 1-2卡尔曼滤波递推公式为X ∧(k/k) = X ∧(k/k-1)+J k (L k -B k X ∧(k/k-1)),D(k/k) = (E-J k B k )D x (k/k-1),J k = D x (k/k-1)BT k [B k D x (k/k-1)]B T k +D Δ(k)]-1,X ∧(k/k-1) =Φk ,k-1X ∧(k-1/k-1), D x (k/k-1) =Φk ,k-1D x (k-1/k-1)ΦT k ,k-1+Γk ,k-1D Δ(k-1)ΓT k ,k-1. 1-32 几种最新改进型的卡尔曼滤波算法。

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

数字信号处理实验报告姓名:任伟平 专业: 通信与信息系统 学号: 2015111806 日期:2015.11实验内容任务一:一连续平稳的随机信号()t x ,自相关函数()tx er -=τ,信号()t x 为加性噪声所干扰,噪声是白噪声,测量值的离散值()k z 为已知,s T s 02.0=,-3.2,-0.8,-14,-16,-17,-18,-3.3,-2.4,-18,-0.3,-0.4,-0.8,-19,-2.0,-1.2,-11,-14,-0.9,-0.8,10,0.2,0.5,-0.5,2.4,-0.5,0.5,-13,0.5,10,-12,0.5,-0.6,-15,-0.7,15,0.5,-0.7,-2.0,-19,-17,-11,-14,自编卡尔曼滤波递推程序,估计信号()t x 的波形。

任务二:设计一维纳滤波器。

(1)产生三组观测数据:首先根据()()()n w n as n s +-=1产生信号()n s ,将其加噪(信噪比分别为20dB ,10dB ,6dB ),得到观测数据() n x 1,() n x 2,() n x 3。

(2)估计() n x i , 1=i ,2,3的AR 模型参数。

假设信号长度为L ,AR 模型阶数为N ,分析实验结果,并讨论改变L ,N 对实验结果的影响。

实验任务一 1. 卡尔曼滤波原理1.1 卡尔曼滤波简介早在20世纪40年代,开始有人用状态变量模型来研究随机过程,到60年代初,由于空间技术的发展,为了解决对非平稳、多输入输出随机序列的估计问题,卡尔曼提出了递推最优估计理论。

它用状态空间法描述系统,由状态方程和量测方程所组成,即知道前一个状态的估计值和最近一个观测数据,采用递推的算法估计当前的状态值。

由于卡尔曼滤波采用递推法,适合于计算机处理,并且可以用来处理多维和非平稳随机信号,现已广泛应用于很多领域,并取得了很好的结果。

卡尔曼滤波一经出现,就受到人们的很大重视,并 在实践中不断丰富和完善,其中一个成功的应用是设计运载体的高精度组合导航系统。

卡尔曼滤波具有以下的特点:(1)算法是递推的,且状态空间法采用在时域内设计滤波器的方法,因而适用于多维随机过程的估计;离散型卡尔曼算法适用于计算机处理。

(2)用递推法计算,不需要知道全部过去的值,用状态方程描述状态变量的动态变化规律,因此信号可以是平稳的,也可以是非平稳的,即卡尔曼滤波适用于非平稳过程。

(3)卡尔曼滤波采取的误差准则仍为估计误差的均方值最小。

1.2 卡尔曼滤波的状态方程和测量方程假设某系统k 时刻的状态变量为k x ,状态方程和量测方程(输出方程)表示为kk k k k k k k v x C y w x A x +=+=---111其中,k x 是状态变量;1-k w 表示输入信号是白噪声;k v 是观测噪声;k y 是观测数据。

为了推导简单,假设状态变量的增益矩阵A 不随时间发生变化,k w ,k v 都是均值为零的正态白噪声,方差分别是k Q 和k R ,并且初始状态与k w ,k v 都不相关,γ表示相关系数。

即:[][]kjk v v k vk k kjk w w k w k k R R v E v Q Q w E w j k j k δγσδγσ======,2,2,,0:,,0:其中⎩⎨⎧≠==jk jk kj 01 δ1.3 卡尔曼滤波的递推算法卡尔曼滤波采用递推算法来实现,其基本思想是先不考虑输入信号k w 和观测噪声k v 的影响,得到状态变量和输出信号(即观测数据)的估计值,再用输出信号的估计误差加权后校正状态变量的估计值,使状态变量估计误差的均方值最小。

因此,卡尔曼滤波器的关键是计算出加权矩阵的最佳值。

当不考虑观测噪声和输入信号时,状态方程和量测方程为1'1'-∧∧∧-∧∧===k k k k k k k k k x A C x C y x A x显然,由于不考虑观测噪声的影响,输出信号的估计值与实际值是有误差的,用k y ~表示'~k k k y y y ∧-=为了提高状态估计的质量,用输出信号的估计误差k y ~来校正状态变量⎪⎭⎫ ⎝⎛-+=⎪⎪⎭⎫ ⎝⎛-+=-∧-∧∧-∧∧11'1C k k k k k k k k kk k k k x A y H x A y y H x A x 其中,k H 为增益矩阵,即加权矩阵。

经过校正后的状态变量的估计误差及其均方值分别用k x ~和k P 表示,把未经校正的状态变量的估计误差的均方值用'k P 表示⎥⎥⎦⎤⎢⎢⎣⎡⎪⎪⎭⎫ ⎝⎛-⎪⎪⎭⎫ ⎝⎛-=⎥⎥⎦⎤⎢⎢⎣⎡⎪⎭⎫ ⎝⎛-⎪⎭⎫ ⎝⎛-=-=∧∧∧∧∧Tk k k k k T k k k k k kk k x x x x E P x x x x E P x x x ''~卡尔曼滤波要求状态变量的估计误差的均方值k P 为最小,因此卡尔曼滤波的关键即为通过选择合适的k H ,使得k P 取得最小值。

首先推导状态变量的估计值k x ∧和状态变量的的估计误差k x ~,然后计算~x 的均方值k P ,通过化简k P ,得到一组卡尔曼滤波的递推公式:()()⎪⎪⎪⎩⎪⎪⎪⎨⎧-=+=+=⎪⎭⎫ ⎝⎛-+=----∧-∧∧'11'1''11kk k k k T k k k kk Tk k k T k k k k k k k k k k k P C H I P QA P A P R C P C C P H x A C y H x A x 假设初始条件k A ,k C ,k Q ,k R ,k y ,1-k x ∧,1-k P 已知,其中[]00x E x =∧,[]00var x P =,那么递推流程如下:1-k x ∧,1-k P 'kPk H k x ∧,k P2. 卡尔曼滤波递推程序编程思想题目分析(1)由于信号()t x 为加性噪声所干扰,可知k k k v x y +=,所以1=k C(2)又因为噪声为白噪声,所以()102===vv v k S R σ(3)因为()tx er -=τ,所以()()()()()111211110111111--------∞==--=-∞=-∞=-∞=--∞=-∞=----=-+-=+===∑∑∑∑z e z e e z e ez z e z e ze zezm r z S m m mm m m mm m m mmm m mxx xx由此可知,1111----=z e z B z ,即()()()111-=---n w n x e n x ,可得到:1-=e A k,因为抽样间隔s T s 02.0=,所以:02.0--==e eA sT k 。

(4)因此()()()n x en x n w sT --+=1,所以[]()()[]T ww w k e n w n w E r Q 2210--====σ因此04.01--=e Q k编程分析由上面的分析可知初始条件k A ,k C ,k Q ,k R ,k y 已知,在仿真中假设00=x ,则00=∧x,10=P ,由以上参数可得卡尔曼实际递推公式()()⎪⎪⎪⎩⎪⎪⎪⎨⎧-=-+=+=⎪⎭⎫ ⎝⎛-+=-----∧--∧-∧'04.0104.0'1''102.0102.011kk k k kkk k k k k k k P H I P e P e P P P H x e y H x e x将得到的公式代入前面分析的递推公式,即可进行迭代得到结果k x 。

3. MATLAB 源代码根据以上分析,编写matlab 程序如下:%%%---------------卡尔曼滤波----------------- %-----说明%X(k+1)=Ak*X(k)+W(k); %Y(k)=Ck*X(k)+V(k) %% clear;clc; %基本参数值Ak=exp(-0.02);Ck=1; Qk=1-exp(-0.04);Rk=1; %初始值设置 X0=0;P0=1; %观测值y(k)Y=[-3.2 -0.8 -14 -16 -17 -18 -3.3 -2.4 -18 -0.3 -0.4 -0.8 -19 -2.0 -1.2 ...-11 -14 -0.9 0.8 10 0.2 0.5 2.4 -0.5 0.5 -13 0.5 10 -12 0.5 -0.6 -15 -0.7 15 ...0.5 -0.7 -2.0 -19 -17 -11 -14]; %数据长度N=length(Y);for k=1:Nif k==1 %k=1时由初值开始计算P_(k)=Ak*P0*Ak'+Qk;H(k)=P_(k)*Ck'*inv(Ck*P_(k)*Ck'+Rk);X(k)=Ak*X0+H(k)*(Y(k)-Ck*Ak*X0);I=eye(size(H(k)));P(k)=(I-H(k)*Ck)*P_(k);else%k>1时,开始递推%递推公式P_(k)=Ak*P(k-1)*Ak'+Qk;H(k)=P_(k)*Ck'*inv(Ck*P_(k)*Ck'+Rk);X(k)=Ak*X(k-1)+H(k)*(Y(k)-Ck*Ak*X(k-1)); I=eye(size(H(k)));P(k)=(I-H(k)*Ck)*P_(k);endendM=1:N;T=0.02*M;%作图,画出x(t)的波形figure(1)plot(T,Y,'r','LineWidth',1);xlabel('t');ylabel('y(t)');title('卡尔曼滤波-测量信号y(t)波形');grid;figure(2)plot(T,X,'b','LineWidth',1);xlabel('t');ylabel('x(t)');title('卡尔曼滤波-估计信号x(t)波形');grid;4. 实验结果0.10.20.30.40.50.60.70.80.9-20-15-10-5051015ty (t )卡尔曼滤波-测量信号y(t)波形0.10.20.30.40.50.60.70.80.9tx (t )卡尔曼滤波-估计信号x(t)波形实验任务二 1. 维纳滤波器原理维纳-霍夫方程()()()()()k r k h m k r m h k r xx m xx xd *0=-=∑+∞=当()n h 是一个长度为M 的因果序列(即一个长度为M 的FIR 滤波器)时,维纳-霍夫方程表述为()()()()() ,,,210*1==-=∑-=k k r k h m k r m h k r xx M m xx xd定义0.10.20.30.40.50.60.70.80.9-20-15-10-551015()()()()()()()()()()()()⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡----=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=02120111011021xx xx xx xx xx xx xx xx xx xx xd xd xd xdM r M r M r M r r r M r r r M r r r h h h R R h则可写成矩阵的形式,即h R Rxx xd=对上式求逆,得到R R hxd xx 1-=由以上式子可知:若已知期望信号与观测数据的互相关函数及观测数据的自相关函数,则可以通过矩阵求逆运算,得到维纳滤波器的最佳解。

相关文档
最新文档