图像处理领域中,频域增强一般都使用零相位响应(Zero-Phase Response)滤波器。
信号处理中的零相位响应
零相位响应是信号处理中的一个概念,主要应用于数字滤波器设计和分析中。在理想情况下,零相位响应意味着系统对输入信号的处理不会引入相位延迟或超前,即输出信号与输入信号之间没有相位差。
在实际实现中,零相位响应通常通过以下两种方法之一来实现:
-
对称滤波器:设计具有对称脉冲响应的滤波器。这类滤波器的一个例子是对称FIR(Finite Impulse Response,有限脉冲响应)滤波器。对称FIR滤波器可以在不改变信号相位的情况下对信号进行滤波,因为它在时域上是对称的,所以其相位响应为零(或常数)。
-
前后向滤波:先将信号正向通过一个线性相位滤波器,然后将输出反转,再次通过同一个滤波器,最后再将结果反转回原方向。这种方法可以使相位失真相互抵消,从而达到零相位的效果。MATLAB中的
filtfilt
函数就是基于这一原理实现的。
在信号处理中,虽然零相位响应可以消除相位失真,但在实际应用中可能会引入其他类型的失真,例如由于非因果性(即滤波器需要未来的输入值才能产生当前的输出值)导致的问题。
对空域滤波器的要求
实数且偶对称的函数的傅里叶变换 F ( ω ) F(\omega) F(ω)是实数且偶对称。
证明
- 如果 f ( t ) f(t) f(t)是实数且偶对称(即 f ( t ) = f ( − t ) f(t) = f(-t) f(t)=f(−t)),那么其傅里叶变换 F ( ω ) F(\omega) F(ω)将是实数且偶对称。
- 数学表达式为:
F ( ω ) = ∫ − ∞ ∞ f ( t ) e − j ω t d t F(\omega) = \int_{-\infty}^{\infty} f(t) e^{-j\omega t} \, dt F(ω)=∫−∞∞f(t)e−jωtdt - 由于
f
(
t
)
f(t)
f(t)是偶函数,
e
−
j
ω
t
=
cos
(
ω
t
)
−
j
sin
(
ω
t
)
e^{-j\omega t} = \cos(\omega t) - j \sin(\omega t)
e−jωt=cos(ωt)−jsin(ωt),因此:
F ( ω ) = ∫ − ∞ ∞ f ( t ) cos ( ω t ) d t − j ∫ − ∞ ∞ f ( t ) sin ( ω t ) d t F(\omega) = \int_{-\infty}^{\infty} f(t) \cos(\omega t) \, dt - j \int_{-\infty}^{\infty} f(t) \sin(\omega t) \, dt F(ω)=∫−∞∞f(t)cos(ωt)dt−j∫−∞∞f(t)sin(ωt)dt - 因为
f
(
t
)
f(t)
f(t)是偶函数,
sin
(
ω
t
)
\sin(\omega t)
sin(ωt)是奇函数,所以:
∫ − ∞ ∞ f ( t ) sin ( ω t ) d t = 0 \int_{-\infty}^{\infty} f(t) \sin(\omega t) \, dt = 0 ∫−∞∞f(t)sin(ωt)dt=0 - 因此:
F ( ω ) = ∫ − ∞ ∞ f ( t ) cos ( ω t ) d t F(\omega) = \int_{-\infty}^{\infty} f(t) \cos(\omega t) \, dt F(ω)=∫−∞∞f(t)cos(ωt)dt - 这是一个实数。
图像增强中,这也就是为什么我们看到空域滤波器一般都是偶对称的,这也就是为什么空域滤波通常用的都是互相关运算,而不是卷积运算。
中间一列是零相位响应。
一阶差分滤波器不是零相位响应滤波器
而一阶差分不是偶对称的,所以一般不用于图像增强,人家常用于边缘检测。奇对称函数的傅里叶变换是纯虚数(中间一列)。
奇对称函数 f ( t ) f(t) f(t)的傅里叶变换 F ( ω ) F(\omega) F(ω)是纯虚数。
证明
设 f ( t ) f(t) f(t)是一个奇对称函数,即满足 f ( t ) = − f ( − t ) f(t) = -f(-t) f(t)=−f(−t)。
傅里叶变换的定义为:
F
(
ω
)
=
∫
−
∞
∞
f
(
t
)
e
−
j
ω
t
d
t
F(\omega) = \int_{-\infty}^{\infty} f(t) e^{-j\omega t} \, dt
F(ω)=∫−∞∞f(t)e−jωtdt
将复指数
e
−
j
ω
t
e^{-j\omega t}
e−jωt分解为实部和虚部:
e
−
j
ω
t
=
cos
(
ω
t
)
−
j
sin
(
ω
t
)
e^{-j\omega t} = \cos(\omega t) - j \sin(\omega t)
e−jωt=cos(ωt)−jsin(ωt)
因此,傅里叶变换可以写成:
F
(
ω
)
=
∫
−
∞
∞
f
(
t
)
(
cos
(
ω
t
)
−
j
sin
(
ω
t
)
)
d
t
F(\omega) = \int_{-\infty}^{\infty} f(t) (\cos(\omega t) - j \sin(\omega t)) \, dt
F(ω)=∫−∞∞f(t)(cos(ωt)−jsin(ωt))dt
将上述积分分为实部和虚部两部分:
F
(
ω
)
=
∫
−
∞
∞
f
(
t
)
cos
(
ω
t
)
d
t
−
j
∫
−
∞
∞
f
(
t
)
sin
(
ω
t
)
d
t
F(\omega) = \int_{-\infty}^{\infty} f(t) \cos(\omega t) \, dt - j \int_{-\infty}^{\infty} f(t) \sin(\omega t) \, dt
F(ω)=∫−∞∞f(t)cos(ωt)dt−j∫−∞∞f(t)sin(ωt)dt
由于 f ( t ) f(t) f(t)是奇对称函数,即 f ( t ) = − f ( − t ) f(t) = -f(-t) f(t)=−f(−t),我们可以利用这一性质来分析两个积分项。
考虑实部积分:
∫
−
∞
∞
f
(
t
)
cos
(
ω
t
)
d
t
\int_{-\infty}^{\infty} f(t) \cos(\omega t) \, dt
∫−∞∞f(t)cos(ωt)dt
由于
f
(
t
)
f(t)
f(t)是奇函数,而
cos
(
ω
t
)
\cos(\omega t)
cos(ωt)是偶函数,它们的乘积
f
(
t
)
cos
(
ω
t
)
f(t) \cos(\omega t)
f(t)cos(ωt)是奇函数。奇函数在对称区间上的积分为零:
∫
−
∞
∞
f
(
t
)
cos
(
ω
t
)
d
t
=
0
\int_{-\infty}^{\infty} f(t) \cos(\omega t) \, dt = 0
∫−∞∞f(t)cos(ωt)dt=0
考虑虚部积分:
∫
−
∞
∞
f
(
t
)
sin
(
ω
t
)
d
t
\int_{-\infty}^{\infty} f(t) \sin(\omega t) \, dt
∫−∞∞f(t)sin(ωt)dt
由于
f
(
t
)
f(t)
f(t)是奇函数,而
sin
(
ω
t
)
\sin(\omega t)
sin(ωt)也是奇函数,它们的乘积
f
(
t
)
sin
(
ω
t
)
f(t) \sin(\omega t)
f(t)sin(ωt)是偶函数。偶函数在对称区间上的积分是非零的,记为
A
A
A:
∫
−
∞
∞
f
(
t
)
sin
(
ω
t
)
d
t
=
A
\int_{-\infty}^{\infty} f(t) \sin(\omega t) \, dt = A
∫−∞∞f(t)sin(ωt)dt=A
将上述结果代入傅里叶变换的表达式中:
F
(
ω
)
=
0
−
j
A
=
−
j
A
F(\omega) = 0 - jA = -jA
F(ω)=0−jA=−jA
这里 A A A是一个实数,因此 F ( ω ) F(\omega) F(ω)是一个纯虚数。