matlab在信号图像处理中应用第10章.doc
文本预览下载声明
第10章 Matlab图像滤波及滤波器设计
滤波及滤波器设计在前述信号处理的章节中已有介绍,图像作为二维信号同样需要滤波处理,例如,滤波技术在图像增强和图像复原中有广泛的应用,可以通过滤波图像来增强图像的某个属性或去除一些属性。对于图像处理,最常用的滤波器是FIR滤波器。因此,本章将重点介绍FIR滤波器。
了解卷积与相关
了解FIR数字滤波器的设计步骤及常用的7种类型的窗函数FIR滤波器
熟练掌握计算二维频率响应和创建期望频率响应矩阵的方法
掌握利用频率变换法、频率采样法、窗函数法设计FIR滤波器的方法
频率变换法
频率采样法
窗函数法
10.1 线性滤波
滤波器通常是指对输入信号进行滤波的硬件或软件。在线性系统理论中,系统表示一般常用的数学模型,包括:传递函数模型(系统外部模型)、状态方程模型(系统内部模型)和零极点增益模型等。
一个线性时不变(LTI)数字滤波器可以用以下的常系数线性差分方程来表示:
(10-1)
式中,和分别表示输入和输出信号序列,和是滤波器系数。
连续LTI系统的状态方程可以写成
(10-2)
(10-3)
零极点模型实际上是传递函数模型的另一种表现形式,其原理是分别对原系统传递函数的分子和分母进行分解因式处理,以获得系统的零极点表示形式,对单输入单输出系统来说,可以简单地将其零极点模型写成
(10-4)
式中,和分别称为系统的零点和极点,它们既可以是实数,也可以是复数,是系统的增益,也称为传递函数。
10.1.1 卷积与相关
在Matlab2007a中提供了一些函数进行卷积或相关运算,下面对这些函数进行介绍。
1. conv函数
令,卷积运算的数学模型公式如下:
(10-5)
conv函数调用格式如下:
w=conv(u,v)
w=conv(u,v)表示分别对矢量求卷积,结果矢量的长度为Length ()+Length ()-1。如果分别是多项式系数,则卷积的结果等价于多项式的乘法。
2. conv2函数
conv2函数是二维卷积运算函数(convmtx2函数和conv2函数类似)。如果和是两个离散变量和的函数,则关于和的二维卷积运算数学公式如下:
(10-6)
conv2函数调用格式如下:
c=conv2(A,B)
c=conv2(hcol,hrow,A)
c=conv2(…, ‘shape’)
c=conv2(A,B)计算数组A和B的二维卷积。如果一个数组描述了一个二维FIR滤波器,则另一个数组被二维滤波。当A的大小为[ma,na],B的大小为[mb,nb]时,C的大小为[ma+mb-1, na+nb-1]。参数‘shape’见表10-1。
表10-1 参数‘shape’的定义值
参数值 含义 ‘full’ 默认值,返回全部二维卷积值 ‘same’ 返回与A大小相同卷积值的中间部分 ‘valid’ 当all(size(A)=size(B)),C的大小为[ma-mb+1, na-nb+1]);否则,C返回[ ]。在维卷积运算中,C的大小为max(size(A)-size(B)+1,0) s=[1 2 1;0 0 0;-1 -2 -1];
A=zeros(10);
A(3:7,3:7)=ones(5);
H=conv2(A,s);
mesh(H)
结果如图10-1所示。
图10-1卷积示意图
3. convn函数
在Matlab2007a中,除了提供二维卷积之外,还提供了n维卷积函数convn。函数调用格式为:
c=convn(A,B) %计算数组A和B的n维卷积运算,返回值C的大小为size(A)+size(B)-1
c=convn(A,B,‘shape’)%参数‘shape’的说明见表10-1
4. corrcoef函数
在Matlab2007a中,互相关系数函数corrcoef的调用格式为:
R=corrcoef(X) %返回互相关系数矩阵,其中矩阵X的每行为一个样本,每列为一
个向量。
R=corrcoef (x,y) %若x和y都是列向量,则它等价于R=corrcoef ([x y])。
[R,P]=corrcoef(…)
[R,P,RLO,RUP]=corrcoef(…)
[…]=corrcoef(…, ‘param1’,val1, ‘param2’,val2,…)
10.1.2 MATLAB滤波函数
1. imfilter滤波函数
在Matlab2007a图像处理工具箱
显示全部