数字滤波器--线性滤波(Linear Filter)

 

目录

一、什么是数字滤波器

二、数字滤波器的几个重要的基础概念

三、数字滤波器的基本单元

differentiator  差分器

Integrator 积分器

FIR滤波器 

IIR滤波器(无限冲击响应滤波器)


 

 

 

一、什么是数字滤波器

  • Analog filter :滤波器从模拟时代产生的一个器件,如下是一个阻容滤波器(由一个电阻、电容构成,对输入的连续信号进行频域上的修正),比如输入一个正弦信号(他有一些直流分量在上面),通过阻容滤波器将正弦信号压制下去,变成直流分量输出;
 
 
  • Digital filter:连续的模拟信号输入,经过A/D Converter(模数转换器,经过采样、量化、编码),输出数字信号,然后经过Digital filer处理输出,信号的频率特性发生改变,如下是输出高通滤波,因为只允许高频成分通过;
 
 
 
  • Optical filter (光学滤波器),把光波的频域进行修正,如下图,当光线射入时,他只允许其中的绿色光线通过;
 
 

二、数字滤波器的几个重要的基础概念

  • 时域、频域、采样定理
如下图,时域信号可以分解成为多个不同频率正弦信号的合成;在变换到频域上可以看到不同成分的幅度,在时域和频域之间进行反变换;
采样定理: 要想正确恢复一个信号,就必须高于这个信号2倍以上的采样频率才可以
        
 
  • 对图像信号而言,什么叫高频,中频,低频信号;
当前采用值与之前采样值,之后采样值的偏差大小△,表征了信号的频率,所有以它是一个相对概念,如下右图,蓝色线斜率高,偏差越大,表示高频;红色线变化最缓,偏差最小,表示低频;
 
如下表示一个图像信号经过低通滤波处理的过程,初始状态时,中心和四周信号强度(四周是0)偏差很大,表示高频信号,经低通处理后, 信号给拉扁了,变成一个稍微低一点的信号;
                    
 
 

三、数字滤波器的基本单元

  • differentiator  差分器

输入信号和输入信号的delay(延迟)进行做差,再输出;
           
 
如下图,经过差分器后,信号的高频部分被保留了下来,在图像信号上的表现是物体轮廓部分被保留下来;
                
 
 
  • Integrator 积分器

输入信号经过求和、平均,高频部分被压制了,如下图中的高频纹理及噪点,经过求和平均,相当于低通滤波的过程,高频部分都丢失了;
            
 
 
  • FIR滤波器 

        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)' );
 
 
引用模版,用卷积的方式来做的,可直接作用于硬件;
 
  • IIR滤波器(无限冲击响应滤波器)

            线性滤波器定义:滤波器的输入和输出是一个线性关系(满足数学特性,叠加性 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,时域降噪当中;
              
 
            
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

猜你喜欢

转载自blog.csdn.net/qq_35247586/article/details/110218852