现代信号分析
legend('未滤波','滤波器1','滤波器2 运行结果见图7-2。
(a)a=0.3 (b)a=0.9
图7-2 不同a值白噪声方差对滤波结果的影响
由图可以看出,两种滤波器下信号方差的变化趋势都为线性增大的状态,当a=0.9时,滤波器1(AR
)性能优于a=0.3, 且明显好于a=0.9时滤波器2(MA),在这种情况下选择滤波器时优先考虑 滤波器1(AR)。
八、卡尔曼滤波器
题目:简述卡尔曼滤波器。并计算下面的例子:(15分)
一连续平稳的随机信号x(t),自相关函数rx(?)?e??,信号x(t)为加性噪声所干扰,噪声是白噪声,测量值的离散值z(k)为已知,Ts=0.01s,
-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.
利用卡尔曼滤波,估计信号x(t)的波形。并给出不同的量测噪声对卡尔曼滤波的影响,同时给出迭代次数与均方误差的关系曲线。
1.卡尔曼滤波器简介
卡尔曼滤波是一种高效率的递归滤波器(自回归滤波器), 它能够从一系列的不完全包含噪声的测量中,估计动态系统的状态。
简单来说,卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法)”。对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。他的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。
- 31 -
首先,我们先要引入一个离散控制过程的系统。该系统可用一个线性随机微分方程(Linear Stochastic Difference equation)来描述:
X(k)?A?X(k?1)?B?U(k)?W(k) (8-1) 再加上系统的测量值:
Z(k)?H?X(k)?V(k) (8-2)
U(k)是k时刻对系统的控制量。 上面两式子中,X(k)是k时刻的系统状态,A和B是系统参数,
对于多模型系统,他们为矩阵。Z(k)是k时刻的测量值,H是测量系统的参数,对于多测量系统,H为矩阵。W(k)和V(k)分别表示过程和测量的噪声。他们被假设成高斯白噪声(White Gaussian Noise),他们的协方差矩阵分别是Q,R(这里我们假设他们不随系统状态变化而变化)。
对于满足上面的条件(线性随机微分系统,过程和测量都是高斯白噪声),卡尔曼滤波器是最优的信息处理器。下面我们来用他们结合他们的协方差矩阵来估算系统的最优化输出。
首先我们要利用系统的过程模型,来预测下一状态的系统。假设现在的系统状态是k,根据系统的模型,可以基于系统的上一状态而预测出现在状态:
X(kk?1)?A?X(k?1k?1)?B?U(k) (8-3)
U(k) 式(8-3)中,X(kk?1)是利用上一状态预测的结果,X(k?1k?1)是上一状态最优的结果,
为现在状态的控制量,如果没有控制量,它可以为0。
到现在为止,我们的系统结果已经更新了,可是,对应于X(kk?1)的协方差矩阵还没更新。我们用P表示协方差矩阵:
P(kk?1)?A?P(k?1k?1)?A'?Q (8-4)
式(5-4)中,P(kk?1)是X(kk?1)对应的协方差矩阵,P(k?1k?1)是X(k?1k?1)对应的协方差矩阵,A'表示A的转置矩阵,Q是系统过程的协方差矩阵。式子8-1,8-2就是卡尔曼滤波器5个公式当中的前两个,也就是对系统的预测。
现在我们有了现在状态的预测结果,然后我们再收集现在状态的测量值。结合预测值和测量值,我们可以得到现在状态X(k)的最优化估算值 X(kk):
X(kk)?X(kk?1)?Kg(k)?(Z(k)?H?X(kk?1)) (8-5)
- 32 -
现代信号分析
其中Kg为卡尔曼增益(Kalman Gain):
Kg(k)?P(kk?1)?H'/(H?P(kk?1)?H'?R) (8-6)
到现在为止,我们已经得到了k状态下最优的估算值X(kk)。但是为了要另卡尔曼滤波器不断的运行下去直到系统过程结束,我们还要更新k状态下X(kk)的协方差矩阵:
P(kk)?(I?Kg(k)?H)?P(kk?1) (8-7)
其中I为1的矩阵,对于单模型单测量,I?1。 2.利用卡尔曼滤波,估计信号的波形 (1)求过程的功率谱密度
将积分按+?和-?分成两部分进行,信号的自相关函数是rx(?)?e??,则其功率谱为
S0??X(?)??e?e?jd????e??e?j????0d?
e(??j?)?0(??j?)????e?1?j????(1?j?) 0???11?? ?1?j??1?j???21??2
(2) 用复频率s来表示功率谱密度 (???js)
Sx(s)?21??2?11?2??s2s?1?1?s (3)谱分解与Z变换根据冲激响应不变原理,将连续系统变成离散系统,即
Sx(z)?m??1?emTz?m?????e?mTz?me?Tzz1?e?2T?m?01?e?Tz?z?e?T?(1?e?Tz?1)(1?e?Tz) 其中z?ejwT,T?TS?0.01
S2?1(1?e?2T)z?1根据等式zz?1x(z)??wB(z)B(z)?(1?e?Tz?1)(1?e?Tz)得 B(z)?1?e?Tz?1
变换到时域得:x(n)?e?Tx(n?1)?w(n?1),
因此A(k)?e?T?e?0.01?0.99,
- 33 -
所以得出状态方程x(k?1)?0.99x(k)?w(k),即B=1, 又因为量测方程y(k)?x(k)?v(k),所以C(k)?1,D(k)=0,
2T=0.01s,Q??w?1?e?2T?0.02。
(4)下面给出的matlab程序,包含自编卡尔曼滤波算法和matlab自带卡尔曼函数。
在用matlab自带卡尔曼函数前,先调用sys=ss(A,B,C,D,Ts)函数,这里采样周期Ts=0.02s,
A,B,C,D均已求出,得到离散卡尔曼状态模型,然后调用函数[kalmf,L,P,H,E] = kalman(sys,Q,R),设
计离散卡尔曼滤波器。H和E表示系统稳态的修正矩阵和均方误差,把它们代入估计值的更新公式(如
下)就可以根据观测信号得到卡尔曼滤波的估计值了。
S(k)?A*S(k?1)?H*[Y(k)?C*A*S(k?1)]
其中,S(k)是卡尔曼滤波估计值,Y(k)是已知的测量值。
clear all; 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,-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); % ----卡尔曼函数 ---------------------------------------- A=0.99;B=1;C=1;D=0; T=0.01; sys = ss(A,B,C,D,T); % 求出离散卡尔曼状态模型 v=std(randn(1,N)); R=v^2; Q=0.02; [kalmf,L,P,H,E] = kalman(sys,Q,R); % H:修正矩阵 E:最小均方误差 S=zeros(1,N); for k=2:N S(k)=A*S(k-1)+H*(Y(k)-C*A*S(k-1)); % 卡尔曼滤波后的估计值 end k=1:1:42; plot(k*0.02,S,'b-',k*0.02,Y,'r'); legend('估计值','测量值'); ylabel('信号幅值'); title('卡尔曼函数滤波结果'); grid on; 运行结果如图8-1所示: - 34 -
现代信号分析
图8-1 卡尔曼滤波估计图
上图是直接用卡尔曼滤波函数进行滤波的效果。在Matlab当中,可以根据状态方程和观测方程,调用dlqe函数,直接求解其最佳递推估计方程,可以利用该方程对输入信号进行滤波,比较两种方式的结果,进行结果验证。结果验证的Matlab程序如下:
% 采用dlqe函数求解kalman滤波器的稳态参数 a=0.99;G=1;Qk=0.02;Rk=1;c=1; [L,P1,P]=dlqe(a,G,c,Qk,Rk); %%%%%%%%% 根据kalman滤波器的稳态参数设计的滤波器 for i=1:size_x(1) xw(i)=X(i); end for i=2:size_x(1) xw(i)=0.99*xw(i-1)+L*(X(i)-0.99*xw(i-1)); end % 结果显示 subplot(312);plot(k*0.02,xk_s(k),'b-',k*0.02,xw(k),'r'); legend('Kalman','Wiener'); xlabel('时间Ts');ylabel('信号幅值');title('Kalman和稳态滤波比较');grid on; 本题中,信号x(t)为加性噪声所干扰,噪声是白噪声,但是白噪声的方差没有给出, 以??0.05为例,Matlab程序得到的结果如图8-2所示。
2
图8-2 卡尔曼滤波结果和稳态滤波结果比较
- 35 -
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库现代信号分析课程大作业(7)在线全文阅读。
相关推荐: