一、实验任务
产生含噪声信号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.2
f=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;
a=[1]; %状态转移矩阵
b=[1]; %输入矩阵
H=[1];
R=std(w); %R是观测白噪声v(k)的方差
Y(1)=20;
P(1)=10;
for i=1:1:N-1
Y(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;
三、实验结果
护理综述
四、实验总结
与维纳滤波器实验结果相比,卡尔曼滤波器的输出更加平滑,但是仍没有去除掉曲线中的椒盐噪声点,这一点需要继续改进。
卡尔曼滤波就是根据前一个估计值xk-1和当前的观测值yk来对信号作递推估计,得到xk。首先建立卡尔曼滤波器的模型,由状态方程和观测方程xk=Akxk-1+wk-1,yk=C效益费用比kxk+vk,由此可得到k时刻的预测值x两房退市k’=Ak-1xk-1与估计值美与丑的剧本yk’=Ckxk’=CkAkxk-1,定义新息yk=yk-yk’,由于wk-1和vk的影响才产生了yk,为了得到最有估计值,有必要利用一系列矩阵Hk来校正预测值yk’,此时xk= Ak-1xk-1+Hk(yk- CkAkx信道估计k-1)上式为卡尔曼滤波器的递推方程,这样就可以根据前一个估计值xk-1和当前观测值yk对信号作递推估计,得到xk。