%读取原始图像
格式长
模糊= imread('fig525(B)BMP')
插曲(1,2,1) imshow(模糊)标题(原始图像)
%自我功能维纳滤波
K = 0.0025
[M,大没桥N] =尺寸(模糊)
频谱= 0(M,N)
H =零(M,N)
为u = 1:M
为V = 1: ?
H(U,V)= exp(-K *((UM / 2)^ 2 +(VN / 2)^ 2)^(5/察孙6))
光谱(U, V)= H(U,V)^ 2
结束
结束
F =双(模糊)
F1 = fftshift(FFT??2(F))
HW = H /(滚猛频谱+0.001)
restore1 = HW。 * F1
恢复=实际(ifft2(ifftshift(restore1)))
插曲(1,2,2),imshow(恢复[])标题(“自功能的维纳滤波')
%调用matlab的维纳%
数字过滤器功能
HW1 =实际(ifft2(ifftshift(H)))转化空域起来
RESULT1 = deconvwnr(模糊HW1,0.001)
结果2 = ifftshift(RESULT1)%
插曲(1逆转图片交换,1,3象限,四象限,2,1)imshow(结果2,[])标题(“呼叫维纳滤波功能')
clcclear all%读原始图像埋哗%
format long
Blurred=imread('fig525(b).bmp')
subplot(1,2,1)imshow( Blurred)title('原图像')
%自编函数进行维纳滤波%
k=0.0025
[m,n]=size(Blurred)
spectrum=zeros(m,n)
H=zeros(m,n)
for u=1:m
for v=1:n
H(u,v)=exp(-k*((u-m/2)^2+(v-n/2)^2)^(5/6))
spectrum(u,v)=H(u,v)^2
end
end
f=double(Blurred)
F1=fftshift(fft2(f))
HW=H./(spectrum+0.001)
restore1=HW.*F1
restored=real(ifft2(ifftshift(restore1)))
subplot(1,2,2)imshow(restored,[])title('自编函数进行维纳滤波')
%调用matlab提供的维纳滤波函数%
figure
hw1=real(ifft2(ifftshift(H)))%转化到空域前液隐上来
result1=deconvwnr(Blurred,hw1,0.001)
result2=ifftshift(result1)%再去图像进行1,3象限对调,2与4象限对慧厅调
subplot(1,2,1)imshow(result2,[])title('调用维纳滤波函数')
七种滤波去噪⽅式1.巴特沃斯低通滤波器去噪
从图上可以看出巴特沃斯低通滤波器对信号⼀的滤波效果还是可以的,主要是因为有效的信号最⾼频率才30Hz,本程序将50Hz以上的信号全部滤除,通过的频率成分中仍然是有⽩噪声的。
对于信号⼆,滤波后的信号与没有加噪声的信号相⽐就有失真了,上升沿和下降沿的⾼频信号被滤除了。
2.FIR低通滤波器去噪
3. 移动平均滤波去噪
从上图可以看出,⽆论是对信号⼀还是对信号⼆,中值滤波的滤波效果都是很不错,特备是对于信号⼆,上升沿和下降失真⽐较的⼩。告枝穗5. 维纳滤波去噪
维纳滤波器属于现代滤波器,传统的滤波器只能滤除信号和⼲扰频带没有重叠的情况,当信号和⼲扰频带有重袜卜叠的时候传统滤波器将⽆能为⼒,这时就需要⽤到现代滤波器,现代滤波器利⽤信号和⼲扰的统计特征(如⾃相关函数、功率谱等)导出⼀套最佳估值算法,然后⽤硬件或软件予以实现。
维纳滤波是以均⽅误差最⼩( LMS(Least MeanSquare) 为准则的,它根据过去观测值和当前观测值来估计信号的当前值,因此它的解
6. ⾃适应滤波去噪
维纳滤波器参数是固定的,适合于平稳随机信号。卡尔曼滤波器参数是时变的,适合于⾮平稳随机信号。然⽽,只有在信号和噪声的统计特
本程序是基于LMS算法的⾃适应滤波,从上图可以看出,滤波效果也是很不错的,特别是对于信号⼆,上升沿有失真,下降沿保持还可以,最要的是得到的波形⼗分的平滑。由此可见⾃适应滤波极具使⽤价值。
7. ⼩波去噪
对于信号⼆,⼩搭如波的去噪效果⾮常不错,虽然得到波形不是很平滑,但是上升沿和下降沿保持的⾮常⾼,基本可以看到棱⾓.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)