平滑滤波是低频增强的空间域滤波技术。它的目的有两类:一类是模糊;另一类是消除噪音。空间域的平滑滤波一般采用简单平均法进行,就是求邻近像元点的平均亮度值。邻域的大小与平滑的效果直接相关,邻域越大平滑的效果越好,但邻域过大,平滑会使边缘信息损失的越大,从而使输出的图像变得模糊,因此需合理选择邻域的大小。
簡易型平滑濾波器
最簡易型的平滑濾波器可表示為下式
可改寫為
h[n]如下圖所示
|
則可以把y[n]改寫為遞迴形式
一般型態平滑濾波器
一般型態平滑濾波器可表示成下列式子
而h[n]需符合下列條件
任何隨著|n|遞減的偶函數都可以當成平滑濾波器
|
應用
平滑濾波器多用來模糊化、去除雜訊,找出信號長期趨勢。
下列為平滑濾波器簡單的範例
% matlab code %
y =[0:0.1:5]'; %產生信號
y = y+ 0.15.*randn(length(y), 1); %信號加上雜訊
y2 = smooth(y'); %使用平滑濾波器去信號雜訊
subplot(2,1,1),plot(b,y);
title('x[n]');
subplot(2,1,2),plot(b,y2);
title('x[n] after smoother');
模擬結果
一般型平滑濾波器的脈衝響應範例h[n]
Matlab的Smooth函数还有一个参数是设置span, 不同的span影响不同的平滑程度:
a=[0:0.01:10]';
c = a + 0.1.*randn(length(y), 1);
d= smooth(c', 20);
plot(d)
e=smooth(c', 5);
plot(e)
下面是更光滑的: