目录
一、什么是数字滤波器
二、数字滤波器的几个重要的基础概念
三、数字滤波器的基本单元
differentiator 差分器
Integrator 积分器
FIR滤波器
IIR滤波器(无限冲击响应滤波器)
一、什么是数字滤波器
二、数字滤波器的几个重要的基础概念
如下图,时域信号可以分解成为多个不同频率正弦信号的合成;在变换到频域上可以看到不同成分的幅度,在时域和频域之间进行反变换;
采样定理: 要想正确恢复一个信号,就必须高于这个信号2倍以上的采样频率才可以,
当前采用值与之前采样值,之后采样值的偏差大小△,表征了信号的频率,所有以它是一个相对概念,如下右图,蓝色线斜率高,偏差越大,表示高频;红色线变化最缓,偏差最小,表示低频;
如下表示一个图像信号经过低通滤波处理的过程,初始状态时,中心和四周信号强度(四周是0)偏差很大,表示高频信号,经低通处理后, 信号给拉扁了,变成一个稍微低一点的信号;
三、数字滤波器的基本单元
输入信号和输入信号的delay(延迟)进行做差,再输出;
如下图,经过差分器后,信号的高频部分被保留了下来,在图像信号上的表现是物体轮廓部分被保留下来;
输入信号经过求和、平均,高频部分被压制了,如下图中的高频纹理及噪点,经过求和平均,相当于低通滤波的过程,高频部分都丢失了;
1、介绍
有限冲击响应滤波器,如下图,他的输入信号只对一定范围内的输出信号有影响,不能连续影响输出信号,所以叫有限冲击响应滤波器;
Taps number表示放大单元的数量,Coefficients表示放大单元的放大系数,所以可以通过改变这两个值,来调整FIR滤波器的频率特性;
2、FIR 应用:
a、均值滤波:
μ =1/n ( Σ Xi ); i=1 , n(n个信号进行求和再平均处理);
下图中(就是要设计的模版)要滤波的(i,j),他的像素值是由自己和周围的像素值来决定的,经过均值滤波后右下图中边缘部分都被磨平了,平台区域的噪声也相应减少了;
b、均值滤波 Matlab example 1
% Read Image for Noise Addition
img=imread( 'lena.bmp');
% Add Noise
Noi_img = imnoise(img, 'salt & pepper', 0.02);
% Mask Definition
f=1/9*[1,1,1;1,1,1;1,1,1];
% Apply filter2 function
de_noi=filter2(f,Noi_img);
figure;
subplot(1,3,1);imshow(img);title(' Original image')
subplot(1,3,2);imshow(Noi_img);title(' Noisy image')
subplot(1,3,3);imshow(uint8(de_noi));title(' Denoised image')
Code Output:噪声去掉了,但图像中的相应的细节也有损失;
c、加权均值滤波 Matlab example 2 (他是对均值滤波的一个补充,在影响图像大像素上增加权重,以此来确保图像多一些细节);
d、高斯滤波 Matlab example 3
高斯滤波是图像处理中非常常用的一个模块,不止在去噪模块,在其他模块也会使用,如下图,他是通过调整sigma的值来控制图像的权重,sigma值小时,中心权重高,如下的高斯公式图像的表现中间比较高,四周平缓,通过sz改变mask(也就是 nxn 的统计面试);
如下是实现下图中进行高斯滤波的matlab code;
直接用matlab高斯滤波的函数;
I = imread( 'coins.png' );
% Filter the image with a Gaussian filter with standard deviation of 2.
Iblur = imgaussfilt(I,1.76);
% Display the original and filtered image in a montage.
montage({I,Iblur});
title( 'Original Image (Left) Vs. Gaussian Filtered Image (Right)' );
引用模版,用卷积的方式来做的,可直接作用于硬件;
线性滤波器定义:滤波器的输入和输出是一个线性关系(满足数学特性,叠加性 f(a)+b=f(a)+f(b)、齐次性f(ax)=af(x));
如下是通过差分器实现低通滤波,当delay 1次就是一阶IIR滤波器,当delay 2次就是二阶IIR滤波器,二阶滤波器可以通过不同的阶数和系数(a1、a0),设计出不同的频率响应,在不同的频段对信号进行处理;
IIR滤波器和FIR滤波器的选择:IIR滤波器可以通过比较少的阶数,实现低通滤波的效果,从而占用了比较少的资源, 但大部分ISP处理中用的是FIR滤波器 ??,IIR滤波器主要用在AF,时域降噪当中;