更多内容关注公众号:数学的旋律
tb店铺搜:FUN STORE玩物社,专业买手挑选送礼好物
一、数学预备知识
1. 傅里叶级数
设
f
(
x
)
f(x)
f(x) 以
2
π
2\pi
2π 为周期,在
[
−
π
,
π
]
[-\pi, \pi]
[−π,π] 绝对可积,则由公式
a
n
=
1
π
∫
−
π
π
f
(
x
)
cos
n
x
d
x
,
n
=
0
,
1
,
2
,
.
.
.
a_n = {1\over\pi}\int_{-\pi}^{\pi}f(x)\cos nx\ dx,\ \ \ \ n=0,1,2,...
an=π1∫−ππf(x)cosnx dx, n=0,1,2,...
b
n
=
1
π
∫
−
π
π
f
(
x
)
sin
n
x
d
x
,
n
=
1
,
2
,
.
.
.
b_n = {1\over\pi}\int_{-\pi}^{\pi}f(x)\sin nx\ dx,\ \ \ \ n=1,2,...
bn=π1∫−ππf(x)sinnx dx, n=1,2,...决定的
a
n
a_n
an、
b
n
b_n
bn 称为傅里叶系数,称由这些
a
n
a_n
an、
b
n
b_n
bn 决定的三角级数
f
(
x
)
~
a
0
2
+
∑
n
=
1
∞
(
a
n
cos
n
x
+
b
n
sin
n
x
)
f(x) ~ {a_0\over 2} + \sum_{n=1}^\infty(a_n\cos nx + b_n\sin nx)
f(x)~2a0+n=1∑∞(ancosnx+bnsinnx)为
f
(
x
)
f(x)
f(x) 的傅里叶级数。
例1 设
f
(
x
)
f(x)
f(x) 以
2
π
2\pi
2π 为周期,在
[
−
π
,
π
]
[-\pi, \pi]
[−π,π] 上
f
(
x
)
=
x
f(x) = x
f(x)=x,试求
f
(
x
)
f(x)
f(x) 的傅里叶级数。
解:
f
(
x
)
解:f(x)
解:f(x)的图像如下图所示
由
f
(
x
)
f(x)
f(x) 在
[
−
π
,
π
]
[-\pi, \pi]
[−π,π] 是奇函数,知
f
(
x
)
cos
n
x
f(x)\cos nx
f(x)cosnx 在
[
−
π
,
π
]
[-\pi, \pi]
[−π,π] 也是奇函数,因而
a
n
=
0
a_n = 0
an=0。
b
0
=
1
π
∫
−
π
π
x
sin
n
x
d
x
=
2
π
∫
0
π
x
sin
n
x
d
x
b_0 = {1\over\pi}\int_{-\pi}^{\pi}x\sin nx\ dx = {2\over \pi}\int_0^\pi x\sin nx\ dx
b0=π1∫−ππxsinnx dx=π2∫0πxsinnx dx
=
2
n
π
[
−
x
cos
n
x
∣
0
π
+
∫
0
π
cos
n
x
d
x
]
=
(
−
1
)
n
−
1
2
n
= {2\over{n\pi}}[-x\cos nx |_0^\pi + \int_0^\pi \cos nx\ dx] = {{(-1)^{n-1}2}\over n}
=nπ2[−xcosnx∣0π+∫0πcosnx dx]=n(−1)n−12故傅里叶级数为
f
(
x
)
~
2
∑
n
=
1
∞
(
−
1
)
n
−
1
sin
n
x
n
=
2
(
sin
x
−
sin
2
x
2
+
sin
3
x
3
−
sin
4
x
4
+
…
)
f(x) ~ 2\sum_{n=1}^\infty{{(-1)^{n-1}\sin nx}\over n} = 2(\sin x - {{\sin 2x}\over 2} + {{\sin 3x}\over 3} - {{\sin 4x}\over 4} + \dots)
f(x)~2n=1∑∞n(−1)n−1sinnx=2(sinx−2sin2x+3sin3x−4sin4x+…)从下图可看出该函数的傅里叶级数大致图像
二、基本概念
1. 频率域
频率域的图像处理首先把一副图像变换到频率域,在频率域中进行处理,然后通过反变换把处理结果返回到空间域。
2. 复数
复数
C
C
C 的定义如下:
C
=
R
+
j
I
C = R + jI
C=R+jI式中,
R
R
R 和
I
I
I 是实数,
j
j
j 是一个等于
−
1
-1
−1 的平方根的虚数,即
j
=
−
1
j = \sqrt {-1}
j=−1。
R
R
R 表示复数的实部,
I
I
I 表示复数的虚部。
在极坐标下,有
C
=
∣
C
∣
(
cos
θ
+
j
sin
θ
)
C = |C|(\cos\theta + j\sin\theta)
C=∣C∣(cosθ+jsinθ)式中,
∣
C
∣
=
R
2
+
I
2
|C|=\sqrt {R^2+I^2}
∣C∣=R2+I2 是复平面的原点到点
(
R
,
I
)
(R,I)
(R,I) 的向量的长度,
θ
\theta
θ 是该向量与实轴的夹角。
从下图可以看出
tan
θ
=
I
R
\tan\theta = {I\over R}
tanθ=RI,
R
=
cos
θ
∣
C
∣
R=\cos\theta|C|
R=cosθ∣C∣,
I
=
sin
θ
∣
C
∣
I=\sin\theta|C|
I=sinθ∣C∣。
3. 欧拉公式
欧拉公式定义如下:
e
j
θ
=
cos
θ
+
j
sin
θ
e^{j\theta} = \cos\theta + j\sin\theta
ejθ=cosθ+jsinθ式中,
e
=
2.71828...
e=2.71828...
e=2.71828...,可给出极坐标下复数表示:
C
=
∣
C
∣
e
j
θ
C=|C|e^{j\theta}
C=∣C∣ejθ式中,
∣
C
∣
|C|
∣C∣ 和
θ
\theta
θ 的定义如上。
4. 傅里叶级数
具有周期
T
T
T 的连续变量
t
t
t 的周期函数
f
(
t
)
f(t)
f(t) 可描述为乘以恰当系数的正弦和余弦之和,这个和就是傅里叶级数:
f
(
t
)
=
∑
n
=
−
∞
∞
c
n
e
j
2
π
n
T
t
f(t) = \sum_{n=-\infty}^\infty c_ne^{j{2\pi n\over T}t}
f(t)=n=−∞∑∞cnejT2πnt式中,
c
n
=
1
T
∫
−
T
/
2
T
/
2
f
(
t
)
e
−
j
2
π
n
T
t
d
t
,
n
=
0
,
±
1
,
±
2
,
…
c_n={1\over T}\int_{-T/2}^{T/2}f(t)e^{-j{2\pi n\over T}t}dt,\ \ \ \ \ \ n=0,\pm1,\pm2,\dots
cn=T1∫−T/2T/2f(t)e−jT2πntdt, n=0,±1,±2,…是系数。上式可展开为正弦与余弦之和这一事实来自欧拉公式。
5. 取样
连续变量
t
t
t 在
t
=
0
t=0
t=0 处的单位冲激表示为
δ
(
t
)
\delta(t)
δ(t),其定义是:
δ
(
t
)
=
{
∞
,
t=0
0
,
t
≠
0
\delta(t)= \begin{cases} \infty, & \text {t=0} \\ 0, & \text{t$≠$0} \end{cases}
δ(t)={∞,0,t=0t=0冲激串
S
Δ
T
(
t
)
S_{\Delta T}(t)
SΔT(t) 定义为无限多个离散的周期冲激单元
Δ
T
\Delta T
ΔT 之和:
S
Δ
T
(
t
)
=
∑
n
=
−
∞
∞
δ
(
t
−
n
Δ
T
)
S_{\Delta T}(t) = \sum_{n=-\infty}^\infty\delta(t-n\Delta T)
SΔT(t)=n=−∞∑∞δ(t−nΔT)模拟取样的一种方法是,用一个
Δ
T
\Delta T
ΔT 单位间隔的冲激串作为取样函数去乘以
f
(
t
)
f(t)
f(t),即
f
~
(
t
)
=
f
(
t
)
S
Δ
T
(
t
)
=
∑
n
=
−
∞
∞
f
(
t
)
δ
(
t
−
n
Δ
T
)
(
1
)
\tilde f(t) = f(t)S_{\Delta T}(t) = \sum_{n=-\infty}^\infty f(t)\delta(t-n\Delta T)\ \ \ \ \ \ \ \ (1)
f~(t)=f(t)SΔT(t)=n=−∞∑∞f(t)δ(t−nΔT) (1)式中,
f
~
(
t
)
\tilde f(t)
f~(t) 表示取样后的函数。这个和式的每个成分都是由该冲激位置处
f
(
t
)
f(t)
f(t) 的值加权后的冲激,每个取样值由加权后的冲激“强度”给出,我们可通过积分得到它,也就是说,序列中的任意取样值
f
k
f_k
fk 由下式给出:
f
k
=
∫
−
∞
∞
f
(
t
)
δ
(
t
−
k
Δ
T
)
d
t
=
f
(
k
Δ
T
)
(
2
)
f_k = \int_{-\infty}^\infty f(t)\delta(t-k\Delta T)dt = f(k\Delta T)\ \ \ \ \ \ \ \ (2)
fk=∫−∞∞f(t)δ(t−kΔT)dt=f(kΔT) (2)
三、傅里叶变换
1. 一维连续傅里叶变换
f
(
t
)
f(t)
f(t) 的傅里叶变换可写为
F
(
u
)
=
∫
−
∞
∞
f
(
t
)
e
−
j
2
π
u
t
d
t
F(u) = \int_{-\infty}^\infty f(t)e^{-j2\pi ut}dt
F(u)=∫−∞∞f(t)e−j2πutdt相反,给定
F
(
u
)
F(u)
F(u),通过傅里叶反变换可以得到
f
(
t
)
f(t)
f(t),写为
f
(
t
)
=
∫
−
∞
∞
F
(
u
)
e
j
2
π
u
t
d
u
f(t)=\int_{-\infty}^\infty F(u)e^{j2\pi ut}du
f(t)=∫−∞∞F(u)ej2πutdu以上两式共同称为傅里叶变换对。它们指出一个函数可以由其变换来恢复。使用欧拉公式,
F
(
u
)
F(u)
F(u) 可写为
F
(
u
)
=
∫
−
∞
∞
f
(
t
)
[
cos
(
2
π
u
t
)
−
j
sin
(
2
π
u
t
)
]
d
t
F(u) = \int_{-\infty}^\infty f(t)[\cos(2\pi ut) - j\sin(2\pi ut)]dt
F(u)=∫−∞∞f(t)[cos(2πut)−jsin(2πut)]dt 可以看到,如果
f
(
t
)
f(t)
f(t) 是实数,那么其变换通常是复数。注意,傅里叶变换是
f
(
t
)
f(t)
f(t) 乘以正弦项的展开,正弦项的频率由
u
u
u 的值决定。因为积分后剩下的唯一变量是频率,故我们说傅里叶变换域是频率域。
2. 一维离散傅里叶变换
由取样后的函数的连续变换可得到离散傅里叶变换(DFT)。
采样后函数
f
~
(
t
)
\tilde f(t)
f~(t) 的变换
F
~
(
u
)
\tilde F(u)
F~(u) 的表达式如下:
F
~
(
u
)
=
∫
−
∞
∞
f
~
(
t
)
e
−
j
2
π
u
t
d
t
\tilde F(u) = \int_{-\infty}^\infty \tilde f(t)e^{-j2\pi ut}dt
F~(u)=∫−∞∞f~(t)e−j2πutdt用式(1)代替
f
~
(
t
)
\tilde f(t)
f~(t) 得:
F
~
(
u
)
=
∫
−
∞
∞
∑
n
=
−
∞
∞
f
(
t
)
δ
(
t
−
n
Δ
T
)
e
−
j
2
π
u
t
d
t
\tilde F(u) = \int_{-\infty}^\infty \sum_{n=-\infty}^\infty f(t)\delta(t-n\Delta T)e^{-j2\pi ut}dt
F~(u)=∫−∞∞n=−∞∑∞f(t)δ(t−nΔT)e−j2πutdt
=
∑
n
=
−
∞
∞
∫
−
∞
∞
f
(
t
)
δ
(
t
−
n
Δ
T
)
e
−
j
2
π
u
t
d
t
= \sum_{n=-\infty}^\infty \int_{-\infty}^\infty f(t)\delta(t-n\Delta T)e^{-j2\pi ut}dt
=n=−∞∑∞∫−∞∞f(t)δ(t−nΔT)e−j2πutdt
=
∑
n
=
−
∞
∞
f
n
e
−
j
2
π
u
n
Δ
T
(
3
)
= \sum_{n=-\infty}^\infty f_ne^{-j2\pi un\Delta T}\ \ \ \ \ \ \ (3)
=n=−∞∑∞fne−j2πunΔT (3)最后一步由式(2)得出。
虽然
f
n
f_n
fn 是离散函数,但其傅里叶变换
F
~
(
u
)
\tilde F(u)
F~(u) 是周期为
1
/
Δ
T
1/\Delta T
1/ΔT 的无限周期连续函数。因此,我们需要表征
F
~
(
u
)
\tilde F(u)
F~(u) 的一个周期,而对一个周期取样是DFT的基础。
假设我们想要在周期
u
=
0
u=0
u=0 到
u
=
1
/
Δ
T
u=1/\Delta T
u=1/ΔT 之间得到
F
~
(
u
)
\tilde F(u)
F~(u) 的
M
M
M 个等间距样本。这可通过在如下频率处取样得到:
u
=
m
M
Δ
T
,
m
=
0
,
1
,
2
,
.
.
.
,
M
−
1
u = {m\over M\Delta T},\ \ \ \ m=0,1,2,...,M-1
u=MΔTm, m=0,1,2,...,M−1把
u
u
u 的这一结果代入式(3),并令
F
m
F_m
Fm 表示得到的结果,则有:
F
m
=
∑
n
=
0
M
−
1
f
n
e
−
j
2
π
m
n
/
M
,
m
=
0
,
1
,
2
,
.
.
.
,
M
−
1
F_m = \sum_{n=0}^{M-1}f_ne^{-j2\pi mn/M},\ \ \ \ m=0,1,2,...,M-1
Fm=n=0∑M−1fne−j2πmn/M, m=0,1,2,...,M−1这个表达式就是我们寻找的离散傅里叶变换。
通过傅里叶反变换(IDFT)可以得到 :
f
n
=
1
M
∑
m
=
0
M
−
1
F
m
e
j
2
π
m
n
/
M
,
n
=
0
,
1
,
2
,
.
.
.
,
M
−
1
f_n = {1\over M}\sum_{m=0}^{M-1}F_me^{j2\pi mn/M},\ \ \ \ n=0,1,2,...,M-1
fn=M1m=0∑M−1Fmej2πmn/M, n=0,1,2,...,M−1 在前面的阐述中,我们使用
m
m
m 和
n
n
n 来表示离散变量,因为人们在推导中历来都是这一的。然而,特别是在二维情况下,使用
x
x
x 和
y
y
y 表示图像坐标变量并使用
u
u
u 和
v
v
v 表示频率变量更为,在这里,这些变量可以理解为整数。这样,最终得到的离散傅里叶变换对如下(
F
(
u
)
≡
F
m
,
f
(
x
)
≡
f
n
F(u)\equiv F_m,f(x)\equiv f_n
F(u)≡Fm,f(x)≡fn):
F
(
u
)
=
∑
x
=
0
M
−
1
f
(
x
)
e
−
j
2
π
u
x
/
M
,
u
=
0
,
1
,
2
,
.
.
.
,
M
−
1
F(u) = \sum_{x=0}^{M-1}f(x)e^{-j2\pi ux/M},\ \ \ \ u=0,1,2,...,M-1
F(u)=x=0∑M−1f(x)e−j2πux/M, u=0,1,2,...,M−1
f
(
x
)
=
1
M
∑
u
=
0
M
−
1
F
(
u
)
e
j
2
π
u
x
/
M
,
x
=
0
,
1
,
2
,
.
.
.
,
M
−
1
f(x) = {1\over M}\sum_{u=0}^{M-1}F(u)e^{j2\pi ux/M},\ \ \ \ x=0,1,2,...,M-1
f(x)=M1u=0∑M−1F(u)ej2πux/M, x=0,1,2,...,M−1
3. 二维连续傅里叶变换
令
f
(
t
,
z
)
f(t, z)
f(t,z) 是两个连续变量
t
t
t 和
z
z
z 的连续函数。则其二维连续傅里叶变换对可由下式给出:
F
(
u
,
v
)
=
∫
−
∞
∞
∫
−
∞
∞
f
(
t
,
z
)
e
−
j
2
π
(
u
t
+
v
z
)
d
t
d
z
F(u, v) = \int_{-\infty}^\infty \int_{-\infty}^\infty f(t, z)e^{-j2\pi (ut+vz)}dt\ dz
F(u,v)=∫−∞∞∫−∞∞f(t,z)e−j2π(ut+vz)dt dz
f
(
t
,
z
)
=
∫
−
∞
∞
∫
−
∞
∞
F
(
u
,
v
)
e
j
2
π
(
u
t
+
v
z
)
d
u
d
v
f(t, z) = \int_{-\infty}^\infty \int_{-\infty}^\infty F(u, v)e^{j2\pi (ut+vz)}du\ dv
f(t,z)=∫−∞∞∫−∞∞F(u,v)ej2π(ut+vz)du dv式中,
u
u
u 和
v
v
v 是频率变量。当涉及图像时,
t
t
t 和
z
z
z 解释为连续空间变量。
4. 二维离散傅里叶变换
二维离散傅里叶变换:
F
(
u
,
v
)
=
∑
x
=
0
M
−
1
∑
y
=
0
N
−
1
f
(
x
,
y
)
e
−
j
2
π
(
u
x
/
M
+
v
y
/
N
)
,
u
=
0
,
1
,
2
,
.
.
.
,
M
−
1
,
v
=
0
,
1
,
2
,
.
.
.
,
N
−
1
F(u, v) = \sum_{x=0}^{M-1}\sum_{y=0}^{N-1}f(x, y)e^{-j2\pi (ux/M+vy/N)},\ \ u=0,1,2,...,M-1,\ \ v=0,1,2,...,N-1
F(u,v)=x=0∑M−1y=0∑N−1f(x,y)e−j2π(ux/M+vy/N), u=0,1,2,...,M−1, v=0,1,2,...,N−1 使用傅里叶反变换得到
f
(
x
,
y
)
f(x,y)
f(x,y):
f
(
x
,
y
)
=
1
M
N
∑
u
=
0
M
−
1
∑
v
=
0
N
−
1
F
(
u
,
v
)
e
j
2
π
(
u
x
/
M
+
v
y
/
N
)
,
x
=
0
,
1
,
2
,
.
.
.
,
M
−
1
,
y
=
0
,
1
,
2
,
.
.
.
,
N
−
1
f(x, y) = {1\over{MN}}\sum_{u=0}^{M-1}\sum_{v=0}^{N-1}F(u, v)e^{j2\pi (ux/M+vy/N)},\ \ x=0,1,2,...,M-1,\ \ y=0,1,2,...,N-1
f(x,y)=MN1u=0∑M−1v=0∑N−1F(u,v)ej2π(ux/M+vy/N), x=0,1,2,...,M−1, y=0,1,2,...,N−1
四、卷积
1. 定义
具有连续变量
t
t
t 的两个连续函数
f
(
t
)
f(t)
f(t) 和
h
(
t
)
h(t)
h(t) 的卷积定义如下:
f
(
t
)
★
h
(
t
)
=
∫
−
∞
∞
f
(
τ
)
h
(
t
−
τ
)
d
τ
f(t) ★ h(t) = \int_{-\infty}^\infty f(\tau)h(t-\tau) d\tau
f(t)★h(t)=∫−∞∞f(τ)h(t−τ)dτ 二维卷积定义如下:
f
(
x
,
y
)
★
h
(
x
,
y
)
=
∑
m
=
0
M
−
1
∑
n
=
0
N
−
1
f
(
m
,
n
)
h
(
x
−
m
,
y
−
n
)
f(x, y) ★ h(x, y) = \sum_{m=0}^{M-1}\sum_{n=0}^{N-1}f(m, n)h(x-m, y-n)
f(x,y)★h(x,y)=m=0∑M−1n=0∑N−1f(m,n)h(x−m,y−n)
2. 一维卷积定理
空间域中两个函数的卷积的傅里叶变换,等于两个函数的傅里叶变换在频率域中的乘积;如果有两个变换的乘积,那么我们可以通过计算傅里叶反变换得到空间域的卷积。
卷积定义可通过以下公式表示。我们将
t
t
t 所在的域称为空间域,将
u
u
u 所在的域称为频率域。
F
(
u
)
F(u)
F(u) 是
f
(
t
)
f(t)
f(t) 的傅里叶变换;
H
(
u
)
H(u)
H(u) 是
h
(
t
)
h(t)
h(t) 的傅里叶变换,根据卷积定理有(
⟺
\iff
⟺表示傅里叶变换对):
f
(
t
)
★
h
(
t
)
⟺
F
(
u
)
H
(
u
)
f(t) ★ h(t) \iff F(u)H(u)
f(t)★h(t)⟺F(u)H(u)
f
(
t
)
h
(
t
)
⟺
F
(
u
)
★
H
(
u
)
f(t)h(t) \iff F(u) ★ H(u)
f(t)h(t)⟺F(u)★H(u)
3. 二维卷积定理
f
(
x
,
y
)
★
h
(
x
,
y
)
⟺
F
(
u
,
v
)
H
(
u
,
v
)
f(x, y) ★ h(x, y) \iff F(u, v)H(u, v)
f(x,y)★h(x,y)⟺F(u,v)H(u,v)
f
(
x
,
y
)
h
(
x
,
y
)
⟺
F
(
u
,
v
)
★
H
(
u
,
v
)
f(x, y)h(x, y) \iff F(u, v) ★ H(u, v)
f(x,y)h(x,y)⟺F(u,v)★H(u,v)
五、傅里叶谱和相角
因为二维DFT通常是复函数,因此可使用极坐标形式来表示:
F
(
u
,
v
)
=
∣
F
(
u
,
v
)
∣
e
j
ϕ
(
u
,
v
)
F(u, v) = |F(u, v)|e^{j\phi (u, v)}
F(u,v)=∣F(u,v)∣ejϕ(u,v)式中,幅度
∣
F
(
u
,
v
)
∣
=
[
R
2
(
u
,
v
)
+
F
2
(
u
,
v
)
]
1
2
|F(u, v)| = [R^2(u, v)+F^2(u, v)]^{1\over2}
∣F(u,v)∣=[R2(u,v)+F2(u,v)]21称为傅里叶谱(或频谱),而
ϕ
(
u
,
v
)
=
a
r
c
tan
[
I
(
u
,
v
)
R
(
u
,
v
)
]
\phi (u, v) = arc\tan[{I(u, v)\over{R(u, v)}}]
ϕ(u,v)=arctan[R(u,v)I(u,v)]称为相角。
六、频率域的其他特性
变换最慢的频率成分(
u
=
v
=
0
u=v=0
u=v=0)与图像的平均灰度成正比。
当我们远离变换的原点时,低频对应于图像中变换缓慢的灰度成分;当我们原点移开更远一些时,较高的频率开始对应于图像中越来越快的灰度变化。
频率域中的滤波技术是以如下处理为基础的:修改傅里叶变换以达到特殊目的,然后计算IDFT返回到图像域。
以上全部内容参考书籍如下:
冈萨雷斯《数字图像处理(第三版)》