组合导航matlab仿真
- 格式:docx
- 大小:13.61 KB
- 文档页数:2
(1)对不含噪声的原始图像加高斯白噪。
(2)设计一个Kalman滤波算法,尽可能滤除这些噪声。
(3)Kalman滤波算法中,考虑用两种变量来作为状态变量:
a.以每一个象素,每行从左至右,然后每行从上至下扫描。
b.以每一行象素,从上至下扫描。
(4)对除噪后的图像与带噪图像进行比较,算出信噪比。
clear all;
q=imread('lena.bmp'); %读取给定图像。
show_size=size(q) %显示给定图像尺寸。
figure(1);
imshow(q); %显示无噪图像。
d=imnoise(q,'gaussian',0,0.01); %对给定图像加高斯白色噪声。
figure(2);
imshow(d); %显示加噪图像。
[r1,c1]=size(d);
imwrite(d,'lena2.bmp','bmp') %写加噪图像。保存成图像文件lena2.bmp d=double(d)/255; %unit转换成double类型
p=3; %先验误差估计协方差初始值
Q=0.25; %过程白噪协方差
R=0.25; %观测白噪协方差
A=1; %系统矩阵。
H=1; %观测矩阵。
f=d(1,:); %读取加噪图像第1行。开始n=1 。
for n=2:r1
f=A*f'; %先验第(n+1)行。开始n+1=2 。
P=A*p*A'+Q; %先验误差估计协方差。
K=P*H'*inv(H*P*H'+R); %Kalman增益。
F=f+K*(d(n,:)'-H*f);
P=(1-K*H)*p;
p=P;
f=F';
r(n,:)=f; %保存像素值
n
end;
r=im2uint8(r);
imshow(r);
q=im2double(q);
r=im2double(r);
'加噪后图像的信噪比SNR1'
10*log((sum(q.^2))/(sum((d-q).^2))) '滤波后图像的信噪比SNR2'
10*log((sum(q.^2))/(sum((r-q).^2)))