仿真原理.docx
- 文档编号:154590
- 上传时间:2022-10-04
- 格式:DOCX
- 页数:22
- 大小:45.07KB
仿真原理.docx
《仿真原理.docx》由会员分享,可在线阅读,更多相关《仿真原理.docx(22页珍藏版)》请在冰豆网上搜索。
一、仿真原理
1、给定条件
设有一个随机信号x(n)服从AR(4)过程,它是一个宽带过程,参数如下:
a
(1)
a
(2)
a(3)
a(4)
s2
-1.352
1.338
-0.662
0.240
1
通过观测方程y(n)=x(n)+u(n)来测量信号,u(n)是方差为1的高斯白噪声
2、推导初始条件如下:
由所给定的条件,得到状态方程如下:
x(n)=1.352*x(n-1)-1.338*x(n-2)+0.662*x(n-3)-0.24*x(n-4)+w(n)
其中w(n)表示动态噪声,其方差s2为1;
令x(-1)=x(-2)=x(-3)=x(-4)=0得到的初始值如下:
x
(1)=w(n);
x
(2)=w(n)+1.352*x
(1);x(3)=w(n)+1.352*x
(2)-1.338*x
(1);
x(4)=w(n)+1.352*x(3)-1.338*x
(2)+0.602*x
(1);
当n≥5时满足如下方程:
x(n)=1.352*x(n-1)-1.338*x(n-2)+0.602*x(n-3)-0.24*x(n-4)+w(n);
其中w(n)是方差为1的高斯白噪声
对卡尔曼滤波有:
由状态方程可得
æx(n) ö æx(n-1)ö æ1ö
ç ÷ ç ÷ ç÷
çx(n-1)÷ çx(n-2)÷ ç0÷
=A* +w(n)
çx(n-2)÷ çx(n-3)÷ ç0÷
è ø è ø èø
çx(n-3)÷ çx(n-4)÷ ç0÷
状态变量增益矩阵为:
æ1.352-1.3380.6620.240ö
ç1 0 0 0÷
A=ç ÷
ç0 1 0 0÷
ç0 0 1 0÷
è ø
仅对x方向进行估计,即考虑一维的情况下,有:
状态变量与输出信号之间的增益矩阵Ck=[1000];
量测噪声协方差阵为Rk=[1];
æ1000ö
ç0100÷
噪声的均方误差阵为Pk=ç ÷;
ç0010÷
è ø
ç0001÷
3、仿真要求
分别利用Wiener滤波器和Kalman滤波器通过测量信号估计x(n)的波形
4、仿真原理
(1)维纳滤波原理
维纳滤波的原理是根据全部过去的和当前的观测数据x(n),x(n-1), …来估计信号的当前值。
以均方误差最小条件下求解系统的传递函数H(z)或单位冲激响应h(n)。
维纳滤波的信号模型是从信号与噪声的相关函数得到。
Wiener滤波器的一般结构如下:
-
+
线性滤波器
y(n)=dˆ(n)
x(n)
e(n)
d(n)
有一期望响应d(n),滤波器系数的设计准则是使得滤波器的输出y(n)是均方意义上对期望响应的最优线性估计。
线性系统输出为:
y(n)=sˆ(n)=åh(m)x(n-m)
m
ìïé ¥ ù2üï
均方误差为:
Eéëe2(n)ùû=Eíês(n)-åh(m)x(n-m)úý
ïîë
m=0
ûïþ
¶Eéëe2(n)ùû
维纳滤波器的设计,实际上就是在最小均方误差条件下,即
¶hj
=0,
确定滤波器的冲激响应h(n)或系统函数H(z),可等效于求解维纳-霍夫方程:
[h]=[φxx]-1[φxs]。
(2)卡尔曼滤波原理
不需要全部过去的观察数据,只根据前一个估计值和最近一个观察数据来估计信号的当前值。
它是用状态空间法描述系统,即由状态方程和量测方程组成。
解是以估计值(是状态变量的估计值)的形式给出的,其算法是递推。
卡尔曼滤波的信号模型则是从状态方程和量测方程得到。
卡尔曼滤波的信号模型(一维)如下:
A(z)
wk sk
uk yk=sk+uk
离散系统的n维状态方程:
x(k)=Akxk-1+wk-1
离散系统的m维量测方程:
yk=c+kxk uk
令Ak表示状态变量之间的增益矩阵,Ck为状态变量与输出信号之间的增益矩阵,不随时间发生变化,动态噪声wk与观测噪声uk都是零均值的正态噪声,
k k kk
且两者互不相关,R=var[u]=EéëuuTùû为量测噪声协方差矩阵,
中Q= var[w]=EéëwwTùû为动态噪声协方差矩阵。
k k kk
系统初始条件为:
E[x0]=m0
0 0 0 0
var[x]=Eéë(x-m)(x-m)Tùû=p
0
k
0
k
cov[x,w]=EéëxwTùû=0
0
k
0
k
cov[x,u]=EéëxuTùû=0
卡尔曼滤波的基本思想是先不考虑激励噪声wk和观测噪声uk,得到状态的
估计值xˆ'和观测数据的估计值yˆ',再用观测数据的估计误差y%=y-yˆ
去修正状
k k k k k
态的估计值xˆk,通过选择修正矩阵H使得状态估计误差的均方值Pk最小。
卡尔曼滤波的递推公式如下:
ìxˆk
ï
=Akxˆk-1+Hk(yk-CkAkxˆk-1)
-1
k kk kkk k
ïH=P'CT(CP'CT+R)
í
ï P'=APAT+Q
k kk-1k k-1
ï P=(I-HC)P'
î k kk k
假设初始条件Ak,,Ck,Q,k,R,k
yk xˆk-1
Pk-1已知,其中
xˆ0=E[x0],P0=var[x0],则卡尔曼滤波的递推流程如下:
xˆ ,P P'
k-1
k-1
P'=APAT+Q k
xˆk
k kk-1
k k-1
H=P'CT(CP'CT+R
xˆk=Akxˆk-1+Hk(yk-CkAkxˆk-1)
k kk kkk k
Hk
)-1
Pk P
=(I-HC
)P'
k kk k
二、 仿真流程
(1)维纳滤波仿真流程如下:
初始条件+状态方程
观测信号与期望信号的互相关函数φyx
观测样本y=x+v,
v表示加性高斯白噪声
真实值x
输出滤波估计值xk_s
维纳滤波器系数:
[h]=[φyy]-1[φyx]
观测信号的自相关函数φyy
误差=真实值-滤波估计值
_
(2)卡尔曼滤波仿真流程如下:
初始值xˆ0
_
误差=真实值-滤波估计值
k=k+1
k=k+1
计算估计值:
xˆk=Akxˆk-1+Hk(yk-CkAkxˆk-1)
观测值ykyk=x+v
kk k
k
'
)
(
P=I-HC P
计算滤波后的均方误差阵:
-1
)
k
k kk kkk
'T
(
'T
H=PC CPC+R
计算增益矩阵:
真实值x
k kk-1k k-1
P'=APAT+Q
计算未考虑噪声时的均方误差阵:
给定Ak、Ck、Rk、Pk的初始值
三、仿真结果及分析
1、利用维纳滤波器进行估计:
(1)Wiener滤波器的阶数取101阶,观测点数取100,u(n)的方差为1时,
通过仿真得到真实轨迹、观测样本及估计轨迹的比较图形如下图1所示:
□估估估
估估估估
估估估估
6
4
2
0
-2
-4
-6
0 10 20 30 40 50 60 70 80 90 100
图1采用维纳滤波,噪声方差为1时,真实轨迹、观测样本及估计轨迹的比较从图1可以看出,利用Wiener滤波器通过测量信号估计x(n)的波形,得
到的估计轨迹接近于真实轨迹。
当噪声方差为1时,估计轨迹与真实轨迹间的误差很小。
(2)Wiener滤波器的阶数取101阶,观测点数取100,u(n)的方差为1
时,通过仿真得到平均误差如下图2所示:
□估估估
2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
0 10 20 30 40 50 60 70 80 90 100
图2采用维纳滤波,噪声方差为1时的平均误差
从图2可以看出,利用Wiener滤波器通过测量信号估计x(n)的波形,当
噪声方差为1时,得到的估计轨迹与真实轨迹的平均误差较小,而且刚开始的时候平均误差相对较大,随着时间的推移,平均误差有逐渐减小的趋势。
(3)Wiener滤波器的阶数取101阶,观测点数取100,u(n)的方差为4时,
通过仿真得到真实轨迹、观测样本及估计轨迹的比较图形如下图3所示:
□估估估
估估估估
估估估估
15
10
5
0
-5
-10
-15
0 10 20 30 40 50 60 70 80 90 100
图3采用维纳滤波,噪声方差为4时,真实轨迹、观测样本及估计轨迹的比较从图3可以看出,当噪声方差为4时,估计轨迹与真实轨迹间的误差变
大了。
利用Wiener滤波器通过测量信号估计x(n)的波形,得到的估计轨迹接近
于真实轨迹。
(4)Wiener滤波器的阶数取101阶,观测点数取100,u(n)的方差为4
时,通过仿真得到平均误差如下图4所示:
□估估估
3
2
1
0
-1
-2
-3
0 10 20 30 40 50 60 70 80 90 100
图4采用维纳滤波,噪声方差为4时的平均误差
从图4可以看出,当噪声方差为4时,估计轨迹与真实轨迹间的平均误差变大了。
而且刚开始的时候平均误差相对较大,随着时间的推移,平均误差有逐渐减小的趋势。
2、利用卡尔曼滤波器进行估计:
(1)采用卡尔曼滤波,观测点数取100,u(n)的方差为1时,通过仿真得
到真实轨迹、观测样本及估计轨迹的比较图形如下图5所示:
□估估估
估估估估
估估估估
6
4
2
0
-2
-4
-6
0 10 20 30 40 50 60 70 80 90 100
图5 采用卡尔曼滤波,噪声
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 仿真 原理