卷积与傅立叶变换
一、卷积1、一维的卷积连续:在泛函分析中,卷积是通过两个函数f(x)f(x)f(x)和g(x)g(x)g(x)生成第三个函数的一种算子,它代表的意义是:两个函数中的一个(我取g(x)g(x)g(x),可以任意取)函数,把g(x)g(x)g(x)经过翻转平移,然后与f(x)f(x)f(x)的相乘,得到的一个新的函数,对这个函数积分,也就是对这个新的函数求它所围成的曲边梯形的面积。...
一、卷积
1、一维的卷积
连续:
在泛函分析中,卷积是通过两个函数 f(x) f ( x ) <script type="math/tex" id="MathJax-Element-1">f(x)</script>和 g(x) g ( x ) <script type="math/tex" id="MathJax-Element-2">g(x)</script>生成第三个函数的一种算子,它代表的意义是:两个函数中的一个(我取 g(x) g ( x ) <script type="math/tex" id="MathJax-Element-3">g(x)</script>,可以任意取)函数,把 g(x) g ( x ) <script type="math/tex" id="MathJax-Element-4">g(x)</script>经过翻转平移,然后与 f(x) f ( x ) <script type="math/tex" id="MathJax-Element-5">f(x)</script>的相乘,得到的一个新的函数,对这个函数积分,也就是对这个新的函数求它所围成的曲边梯形的面积。
def:
设 f(t),g(t) f ( t ) , g ( t ) <script type="math/tex" id="MathJax-Element-6">f(t),g(t)</script>是 Rn R n <script type="math/tex" id="MathJax-Element-7">\mathbb{R^n}</script>两个可积函数, f(t) f ( t ) <script type="math/tex" id="MathJax-Element-8">f(t)</script>与 g(t) g ( t ) <script type="math/tex" id="MathJax-Element-9">g(t)</script>的卷积记为 f(t)∗g(t) f ( t ) ∗ g ( t ) <script type="math/tex" id="MathJax-Element-10">f(t)*g(t)</script>,它是其中一个函数翻转并平移后与另一个函数乘积的积分,是一个自变量是平移量的函数。也就是:
注: Rn R n <script type="math/tex" id="MathJax-Element-12">\mathbb{R^n}</script>是n维实数集,即 (x1,x2,...,xn)∈Rn ( x 1 , x 2 , . . . , x n ) ∈ R n <script type="math/tex" id="MathJax-Element-13">(x1,x2, ... ,xn) \in \mathbb{R^n}</script>,每个元素是n维向量,向量中的每个分量是实数。暂时可以理解为实数。
如果函数不是定义在 Rn R n <script type="math/tex" id="MathJax-Element-14">\mathbb{R^n}</script>上,可以把函数定义域外的值都规定成了,这样就变成了定义在 Rn R n <script type="math/tex" id="MathJax-Element-15">\mathbb{R^n}</script>的函数了。实数域同理
(图片来自wiki)
1. 现在有两个关于自变量 t t <script type="math/tex" id="MathJax-Element-16">t</script>的函数
<script type="math/tex" id="MathJax-Element-17">f(t),g(t)</script>,图像为上图的第一行。
2. 把 g(t) g ( t ) <script type="math/tex" id="MathJax-Element-18">g(t)</script>的自变量换成 τ τ <script type="math/tex" id="MathJax-Element-19">\tau</script>,让其翻转称为 g(−τ) g ( − τ ) <script type="math/tex" id="MathJax-Element-20">g(-\tau)</script>,再向左移动 t t <script type="math/tex" id="MathJax-Element-21">t</script>个单位,得到
<script type="math/tex" id="MathJax-Element-22">g(t-\tau)</script>,图像如图片的第二行。
3. 让 g(t−τ) g ( t − τ ) <script type="math/tex" id="MathJax-Element-23">g(t-\tau)</script>从 −∞ − ∞ <script type="math/tex" id="MathJax-Element-24">-\infty</script>移动到 +∞ + ∞ <script type="math/tex" id="MathJax-Element-25">+\infty</script>,移动的过程中把两个函数的相乘并积分。
4. 第三行的图像是把 g(t−τ) g ( t − τ ) <script type="math/tex" id="MathJax-Element-26">g(t-\tau)</script>和 f(τ) f ( τ ) <script type="math/tex" id="MathJax-Element-27">f(\tau)</script>放在一个坐标系中,其实 t t <script type="math/tex" id="MathJax-Element-28">t</script>不是常数,它是一个时间变量,当时间变量(简称为时移)取不同值时(以下把取不同值的过程简称“滑动”),当t取
<script type="math/tex" id="MathJax-Element-29">-\infty</script>是,可以看成 g(t−τ) g ( t − τ ) <script type="math/tex" id="MathJax-Element-30">g(t-\tau)</script>在 −∞ − ∞ <script type="math/tex" id="MathJax-Element-31">-\infty</script>大处的图像,由于两个函数中一个函数在与另一个函数有交集的地方的值为0,所以两个函数相乘,积还是0,对0的积分还是0。
5. 函数 g(t−τ) g ( t − τ ) <script type="math/tex" id="MathJax-Element-32">g(t-\tau)</script>继续滑动,当两个函数的乘积不是0是,此时 (t−τ) ( t − τ ) <script type="math/tex" id="MathJax-Element-33">(t-\tau)</script>为0,t为0,即第三行图像中红色函数的右边界与蓝色函数的左边界相遇。还是对两个函数的乘积对 τ τ <script type="math/tex" id="MathJax-Element-34">\tau</script>取积分,这是得到的值是第三个函数也就是卷积在t=0是的结果,注意此时得到的是一个值,因为t是定值, τ τ <script type="math/tex" id="MathJax-Element-35">\tau</script>被积分掉。然后接着滑动,还是两个函数相乘取积分。直到时移变量t在 +∞ + ∞ <script type="math/tex" id="MathJax-Element-36">+\infty</script>处(滑动到在 +∞ + ∞ <script type="math/tex" id="MathJax-Element-37">+\infty</script>)。
6. 让t从 −∞ − ∞ <script type="math/tex" id="MathJax-Element-38">-\infty</script>滑动到 +∞ + ∞ <script type="math/tex" id="MathJax-Element-39">+\infty</script>。两个函数有交会时(即两个函数的乘积不为0),计算交会范围中两个函数的乘积的积分值。换句话说,我们在计算一个滑动的加权平均值、 g(−τ) g ( − τ ) <script type="math/tex" id="MathJax-Element-40">g(-\tau)</script>是加权函数,来对 f(τ) f ( τ ) <script type="math/tex" id="MathJax-Element-41">f(\tau)</script>取加权平均值。
卷积的性质:
交换律:
f∗(g∗h)=(f∗g)∗h f ∗ ( g ∗ h ) = ( f ∗ g ) ∗ h <script type="math/tex" id="MathJax-Element-42">f*(g*h)=(f*g)*h</script>
结合律:
f∗(g∗h)=f∗(g∗h) f ∗ ( g ∗ h ) = f ∗ ( g ∗ h ) <script type="math/tex" id="MathJax-Element-43">f*(g*h)=f*(g*h)</script>
分配律:
f∗(g+h)=(f∗g)+(f∗h) f ∗ ( g + h ) = ( f ∗ g ) + ( f ∗ h ) <script type="math/tex" id="MathJax-Element-44">f*(g+h)=(f*g)+(f*h)</script>
数乘结合律
a(f∗g)=(af)∗g=f∗(ag) a ( f ∗ g ) = ( a f ) ∗ g = f ∗ ( a g ) <script type="math/tex" id="MathJax-Element-45">a(f*g)=(af)*g=f*(ag)</script>
其中 a a <script type="math/tex" id="MathJax-Element-46">a</script>为任意实数
微分定理
<script type="math/tex" id="MathJax-Element-47">\mathcal {D}(f*g)=\mathcal {D}f*g=f*\mathcal {D}g</script>
其中 Df D f <script type="math/tex" id="MathJax-Element-48">Df</script>表示 f f <script type="math/tex" id="MathJax-Element-49">f</script>的微分,如果在离散域中则是指差分算子,包括前向差分与后向差分两种:
- 前向差分
<script type="math/tex" id="MathJax-Element-50">{\mathcal {D}}^{+}f(n)=f(n+1)-f(n)</script>
- 后向差分 D−f(n)=f(n)−f(n−1) D − f ( n ) = f ( n ) − f ( n − 1 ) <script type="math/tex" id="MathJax-Element-51">{\mathcal {D}}^{-}f(n)=f(n)-f(n-1)</script>
-
离散:
对于定义在整数 Z Z <script type="math/tex" id="MathJax-Element-250">\mathbb{Z}</script>上的函数 f,g f , g <script type="math/tex" id="MathJax-Element-251">f,g</script>,卷积定义为
f(n)∗g(n)=∑m=−∞+∞f(m)g(n−m)=∑m=−∞+∞f(n−m)g(m) f ( n ) ∗ g ( n ) = ∑ m = − ∞ + ∞ f ( m ) g ( n − m ) = ∑ m = − ∞ + ∞ f ( n − m ) g ( m )<script type="math/tex; mode=display" id="MathJax-Element-252">f(n)*g(n)= \sum_{m=-\infty}^{+\infty}f(m)g(n-m)=\sum_{m=-\infty}^{+\infty}f(n-m)g(m)</script>
同理,把非整数的值规定成0,定义域就在整数上了。-
当 g(n) g ( n ) <script type="math/tex" id="MathJax-Element-253">g(n)</script>的定义域为有限长度 M M <script type="math/tex" id="MathJax-Element-254">M</script>上是,就会变成有限和。
<script type="math/tex; mode=display" id="MathJax-Element-255">f(n)*g(n)=\sum_{m=-M}^{M}f(n-m)g(m)</script> -
当 f(n) f ( n ) <script type="math/tex" id="MathJax-Element-256">f(n)</script>的定义域为有限长度 m∈{−M,−M+1,…,M−1,M} m ∈ { − M , − M + 1 , … , M − 1 , M } <script type="math/tex" id="MathJax-Element-257">m\in\{-M,-M+1,\dots ,M-1,M\}</script>上是,就会变成有限和。
f(n)∗g(n)=∑m=−MMf(m)g(n−m) f ( n ) ∗ g ( n ) = ∑ m = − M M f ( m ) g ( n − m )<script type="math/tex; mode=display" id="MathJax-Element-258">f(n)*g(n)=\sum_{m=-M}^{M}f(m)g(n-m)</script>
把加权函数的定义域做加法(积分域)。
还是把其中一个翻转平移,
填充是为了解决 g(−m) g ( − m ) <script type="math/tex" id="MathJax-Element-259">g(-m)</script>没有覆盖到的地方,当然填充的方法不唯一,可以具体填充什么以情况而定,填充的大小是g(m)的长度减1
注意结果中原来的1不存在,这里是为了辨识位置加上的,可以当作是直接复制了填充后的 f(m) f ( m ) <script type="math/tex" id="MathJax-Element-260">f(m)</script>的空间。
与相关的区别:相关是不把g(m)翻转,直接平移,对应位置相乘,再相加。结果放在平移次数的 n n <script type="math/tex" id="MathJax-Element-261">n</script>上面,此时 <script type="math/tex" id="MathJax-Element-262">n</script>的位置正对应着卷积核的中间位置。这就是卷积核为什么习惯是奇数,奇数的话容易找到中间位置。2、二维卷积
连续的二维卷积可以由一维卷积扩展得到,同样是首先是把两个函数中的一个经过翻转,然后平移,积分
f(t1,t2)∗g(t1,t2)=∫∫f(τ1,τ2)g(t1−τ1,t2−τ2)dτ1dτ2 f ( t 1 , t 2 ) ∗ g ( t 1 , t 2 ) = ∫ ∫ f ( τ 1 , τ 2 ) g ( t 1 − τ 1 , t 2 − τ 2 ) d τ 1 d τ 2<script type="math/tex; mode=display" id="MathJax-Element-65">f(t_1,t_2)*g(t_1,t_2)=\int \int f(\tau_1,\tau_2)g(t_1-\tau_1,t_2-\tau_2)d\tau_1 d\tau_2</script>
同理可以定义多元函数上的卷积
f(t1,t2,…,tn)∗g(t1,t2,…,tn)=∫∫…∫f(τ1,τ2,…,τn)g(t1−τ1,t2−τ2,…,tn−τn)dτ1dτ2…dτn f ( t 1 , t 2 , … , t n ) ∗ g ( t 1 , t 2 , … , t n ) = ∫ ∫ … ∫ f ( τ 1 , τ 2 , … , τ n ) g ( t 1 − τ 1 , t 2 − τ 2 , … , t n − τ n ) d τ 1 d τ 2 … d τ n<script type="math/tex; mode=display" id="MathJax-Element-66">f(t_1,t_2,\ldots,t_n)*g(t_1,t_2,\ldots,t_n)=\int\int \ldots \int f(\tau_1,\tau_2,\ldots,\tau_n)g(t_1-\tau_1,t_2-\tau_2,\ldots,t_n-\tau_n)d\tau_1 d\tau_2\ldots d\tau_n</script>
离散的二维卷积
f(m,n)∗g(m,n)=∑s=−∞+∞∑t=−∞+∞f(s,t)g(m−s,n−t) f ( m , n ) ∗ g ( m , n ) = ∑ s = − ∞ + ∞ ∑ t = − ∞ + ∞ f ( s , t ) g ( m − s , n − t )<script type="math/tex; mode=display" id="MathJax-Element-67">f(m,n)*g(m,n)=\sum_{s=-\infty}^{+\infty}\sum_{t=-\infty}^{+\infty}f(s,t)g(m-s,n-t)</script>
图像处理中常用的是二维的离散卷积,
g(m,n) g ( m , n ) <script type="math/tex" id="MathJax-Element-68">g(m,n)</script>的定义域是 m∈(−a,a),n∈(−b,b) m ∈ ( − a , a ) , n ∈ ( − b , b ) <script type="math/tex" id="MathJax-Element-69">m\in(-a,a),n\in(-b,b)</script>的整数f(m,n)∗g(m,n)=∑s=−aa∑t=−bbf(s,t)g(m−s,n−t) f ( m , n ) ∗ g ( m , n ) = ∑ s = − a a ∑ t = − b b f ( s , t ) g ( m − s , n − t )<script type="math/tex; mode=display" id="MathJax-Element-70">f(m,n)*g(m,n)=\sum_{s=-a}^{a}\sum_{t=-b}^{b}f(s,t)g(m-s,n-t)</script>
同样可以把 g(−s,−t) g ( − s , − t ) <script type="math/tex" id="MathJax-Element-71">g(-s,-t)</script>看成是加权函数,来对 f(s,t) f ( s , t ) <script type="math/tex" id="MathJax-Element-72">f(s,t)</script>取加权平均值。
二、循环卷积
两个函数卷积是由他们的周期延伸所来定义的。
周期延伸:意思是把原本的函数平移 某个周期的 T T <script type="math/tex" id="MathJax-Element-73">T</script>的整数倍后全部加起来,所产生的新函数。 <script type="math/tex" id="MathJax-Element-74">x(t)</script>的周期延伸可以写成xT(t)=∑k=−∞+∞x(t−kT)=∑k=−∞+∞x(t+kT) x T ( t ) = ∑ k = − ∞ + ∞ x ( t − k T ) = ∑ k = − ∞ + ∞ x ( t + k T )<script type="math/tex; mode=display" id="MathJax-Element-75">x_T(t)=\sum_{k=-\infty}^{+\infty}x(t-kT)=\sum_{k=-\infty}^{+\infty}x(t+kT)</script>
两个函数 f(t) f ( t ) <script type="math/tex" id="MathJax-Element-76">f(t)</script>与 g(t) g ( t ) <script type="math/tex" id="MathJax-Element-77">g(t)</script>循环卷积:
gT g T <script type="math/tex" id="MathJax-Element-78">g_T</script>是周期函数,周期为 T T <script type="math/tex" id="MathJax-Element-79">T</script>,他们的卷积存在:<script type="math/tex; mode=display" id="MathJax-Element-80">f(t)*g_T(t)=\int_{t_0}^{t_0+T}\left[ {\sum_{k=-\infty}^{+\infty}}f(\tau+kT)\right]g_T(t-\tau)d\tau</script>
得到的新函数也是周期为T的并且与
f(t)∗gT(t)=∫+∞−∞f(τ)gT(t−τ)dτ=∫+∞−∞f(t−τ)gT(τ)dτ f ( t ) ∗ g T ( t ) = ∫ − ∞ + ∞ f ( τ ) g T ( t − τ ) d τ = ∫ − ∞ + ∞ f ( t − τ ) g T ( τ ) d τ<script type="math/tex; mode=display" id="MathJax-Element-81">f(t)*g_T(t)= \int_{-\infty}^{+\infty}f(\tau)g_T(t-\tau)d\tau= \int_{-\infty}^{+\infty}f(t-\tau)g_T(\tau)d\tau</script>
相等。
当然,也有离散循环卷积定理:
当 gN g N <script type="math/tex" id="MathJax-Element-82">g_N</script>是周期函数,周期为 N N <script type="math/tex" id="MathJax-Element-83">N</script>。f与 <script type="math/tex" id="MathJax-Element-84">g_N</script>卷积存在且与下式相等:f(n)∗gN(n)=∑m=0N−1(∑k=−∞+∞f(m+kN))gN(n−m) f ( n ) ∗ g N ( n ) = ∑ m = 0 N − 1 ( ∑ k = − ∞ + ∞ f ( m + k N ) ) g N ( n − m )<script type="math/tex; mode=display" id="MathJax-Element-85">f(n)*g_N(n)=\sum_{m=0}^{N-1}\left( {\sum_{k=-\infty}^{+\infty}}f(m+kN)\right)g_N(n-m)</script>
k是函数f(n)的周期延伸。
当 gN g N <script type="math/tex" id="MathJax-Element-86">g_N</script>经过周期延伸成为 g g <script type="math/tex" id="MathJax-Element-87">g</script>,那么 <script type="math/tex" id="MathJax-Element-88">f</script>与 gN g N <script type="math/tex" id="MathJax-Element-89">g_N</script>卷积等于 f f <script type="math/tex" id="MathJax-Element-90">f</script>与 <script type="math/tex" id="MathJax-Element-91">g</script>的卷积。
当 f f <script type="math/tex" id="MathJax-Element-92">f</script>与 <script type="math/tex" id="MathJax-Element-93">g</script>的定义域在 [0,N−1] [ 0 , N − 1 ] <script type="math/tex" id="MathJax-Element-94">[0,N-1]</script>上,上述形式可以写成
f(n)∗gN(n)=∑m=0N−1f(m)gN(n−m)=∑m=0nf(m)gN(n−m)+∑m=n+1N−1f(m)gN(N+n−m) f ( n ) ∗ g N ( n ) = ∑ m = 0 N − 1 f ( m ) g N ( n − m ) = ∑ m = 0 n f ( m ) g N ( n − m ) + ∑ m = n + 1 N − 1 f ( m ) g N ( N + n − m )<script type="math/tex; mode=display" id="MathJax-Element-95">f(n)*g_N(n)=\sum_{m=0}^{N-1}f(m)g_N(n-m)=\sum_{m=0}^{n}f(m)g_N(n-m)+\sum_{m=n+1}^{N-1}f(m)g_N(N+n-m)</script>
在FFT算法中循环卷积占重要位置。
卷积的计算方法有三种,分别为
1. 直接计算
2. 快速傅立叶变换
3. 分段卷积
先放到这有个大致的认识,傅立叶变换后再分析。因为2和3都用到了快速傅立叶变换
卷积定理:
为什么要说卷积定理呢,卷积定理把频域和空间域连接了起来。这样我们在空间域上难以分析的问题或许转换到频率域就容易分析。
ps:我们把x所在的域称为空间域。
卷积定理:
空间域的两个函数的卷积的傅立叶变换等于这两的函数的傅立叶变换的乘积。F[f(x)∗h(x)]=H(u)F(u) F [ f ( x ) ∗ h ( x ) ] = H ( u ) F ( u )<script type="math/tex; mode=display" id="MathJax-Element-96">\mathscr{F}\left[f(x)*h(x)\right]=H(u)F(u)</script>
频率域两个函数的卷积等于这两个函数的傅立叶逆变换得到的空间域的两个函数的乘积。
F−1[H(u)∗F(u)]=f(x)h(x) F − 1 [ H ( u ) ∗ F ( u ) ] = f ( x ) h ( x )<script type="math/tex; mode=display" id="MathJax-Element-97">\mathscr{F}^{-1}\left[H(u)*F(u)\right]=f(x)h(x)</script>
证明方法是对卷积函数进行傅立叶变换,或逆变换。三、傅立叶变换
傅立叶变换(Fourier Transform)是一种线性的积分变换,作用是把信号在时域(或空域)和频域之间变换。它由法国的约瑟夫·傅立叶系统的提出。所以,为了以它的名字命名以示纪念。傅立叶变换源自傅立叶级数,在傅立叶级数中复杂的周期函数可以用一系列简单的正弦、余弦波之和表示。傅立叶变换是对傅立叶级数的扩展,他表示的函数的周期趋近与无穷。
欧拉公式:
欧拉公式是把三角函数与复数指数函数相关联。
对于任意实数 x x <script type="math/tex" id="MathJax-Element-98">x</script>,都存在<script type="math/tex; mode=display" id="MathJax-Element-99">e^{ix}=cosx+i sinx</script>其中, e e <script type="math/tex" id="MathJax-Element-100">e</script>是自然对数的底数, <script type="math/tex" id="MathJax-Element-101">i</script>是虚数单位, cos,sin c o s , s i n <script type="math/tex" id="MathJax-Element-102">cos,sin</script>则是余弦、正弦对应的三角函数,参数 x x <script type="math/tex" id="MathJax-Element-103">x</script>则是以弧度为单位。该公式在 <script type="math/tex" id="MathJax-Element-104">x</script>为复数是仍然成立。
欧拉恒等式: eiπ+1=0 e i π + 1 = 0 <script type="math/tex" id="MathJax-Element-105">e^{i\pi}+1=0</script>
1、傅立叶级数
具有周期 T T <script type="math/tex" id="MathJax-Element-106">T</script>的连续变量 <script type="math/tex" id="MathJax-Element-107">t</script>的周期函数 f(t) f ( t ) <script type="math/tex" id="MathJax-Element-108">f(t)</script>可以被描述为乘以适当系统的正弦和余弦和,这个和就是傅立叶级数,可以用下式表示:
f(t)=∑n=−∞+∞cnei2πnTt f ( t ) = ∑ n = − ∞ + ∞ c n e i 2 π n T t<script type="math/tex; mode=display" id="MathJax-Element-109">f(t)=\sum_{n=-\infty}^{+\infty}c_ne^{i\frac{2\pi n}{T}t}</script>
其中cn=1T∫T2−T2f(t)e−i2πnTtdt,n=0,±1,±2,… c n = 1 T ∫ − T 2 T 2 f ( t ) e − i 2 π n T t d t , n = 0 , ± 1 , ± 2 , …<script type="math/tex; mode=display" id="MathJax-Element-110">c_n=\frac{1}{T}\int_{\frac{-T}{2}}^{\frac T 2}f(t)e^{-i\frac{2\pi n}{T}t}dt,n=0,\pm 1,\pm2,\ldots</script>
是系数。
2、一维连续傅立叶变换
def:
傅立叶变换将可积函数 f:R→C f : R → C <script type="math/tex" id="MathJax-Element-111">f:\mathbb R \to \mathbb C</script>表示成复指数函数的积分或级数形式。f^(ξ)=∫+∞−∞f(x)e−2πixξdx,ξ为任意实数 f ^ ( ξ ) = ∫ − ∞ + ∞ f ( x ) e − 2 π i x ξ d x , ξ 为 任 意 实 数<script type="math/tex; mode=display" id="MathJax-Element-112">\hat f(\xi)=\int_{-\infty}^{+\infty}f(x)e^{-2\pi ix\xi}dx,\xi为任意实数</script>
当自变量 x x <script type="math/tex" id="MathJax-Element-113">x</script>表示时间(以秒为单位),变换变量 <script type="math/tex" id="MathJax-Element-114">\xi</script>表示频率(以赫兹为单位),由于自变量x被积分过了,所以上式可以看成是关于 ξ ξ <script type="math/tex" id="MathJax-Element-115">\xi</script>的指数函数,而 ξ ξ <script type="math/tex" id="MathJax-Element-116">\xi</script>表示频率,所以这时就是关于频率的函数了。
在适当条件下, f^ f ^ <script type="math/tex" id="MathJax-Element-117">\hat f</script>可由 傅立叶逆变换由下式确定 f f <script type="math/tex" id="MathJax-Element-118">f</script>:
<script type="math/tex; mode=display" id="MathJax-Element-119">f(x)=\int_{-\infty}^{+\infty}\hat f(\xi)e^{2\pi i\xi x}d\xi,x为任意实数</script>
同理,由于 ξ ξ <script type="math/tex" id="MathJax-Element-120">\xi</script>被积分积过,所以该式就成了只剩自变量x的函数。
傅立叶变换经常成对出现。
为了方便记忆,我们把 f^(ξ) f ^ ( ξ ) <script type="math/tex" id="MathJax-Element-121">\hat f(\xi)</script>记作 F(u) F ( u ) <script type="math/tex" id="MathJax-Element-122">F(u)</script>所以上面傅立叶变换对可以写成下面的形式
F(u)=F[f(x)]=∫+∞−∞f(x)e−2πixudx,u为任意实数 F ( u ) = F [ f ( x ) ] = ∫ − ∞ + ∞ f ( x ) e − 2 π i x u d x , u 为 任 意 实 数<script type="math/tex; mode=display" id="MathJax-Element-123">F(u)=\mathscr{F}\left[f(x)\right ]=\int_{-\infty}^{+\infty}f(x)e^{-2\pi ixu}dx,u为任意实数</script>
f(x)=F−1[F(u)]=∫+∞−∞F(u)e2πiuxdu,x为任意实数 f ( x ) = F − 1 [ F ( u ) ] = ∫ − ∞ + ∞ F ( u ) e 2 π i u x d u , x 为 任 意 实 数<script type="math/tex; mode=display" id="MathJax-Element-124">f(x)=\mathscr{F}^{-1}\left[F(u)\right ]=\int_{-\infty}^{+\infty}F(u)e^{2\pi iu x}du,x为任意实数</script>
用欧拉公式表示正变换:
F(u)=∫+∞−∞f(x)[cos(2πxu)−isin(2πxu)]dx F ( u ) = ∫ − ∞ + ∞ f ( x ) [ c o s ( 2 π x u ) − i s i n ( 2 π x u ) ] d x<script type="math/tex; mode=display" id="MathJax-Element-125">F(u)=\int_{-\infty}^{+\infty}f(x)\left[cos(2\pi xu)-i sin(2\pi xu)\right]dx</script>
这样的话,或许更好理解一个周期可以有正弦和余弦和表示。由上式可以看出,如果 f(x) f ( x ) <script type="math/tex" id="MathJax-Element-126">f(x)</script>是实数,那么其变换通常是复数。注意, 傅立叶变换域是频率域,因为 x x <script type="math/tex" id="MathJax-Element-127">x</script>被积分掉,左边变量只剩下 <script type="math/tex" id="MathJax-Element-128">u</script>。频率域的单位是独立于输入变量的每单位周期的。例如如果 x x <script type="math/tex" id="MathJax-Element-129">x</script>表示单位为秒的时间,则 <script type="math/tex" id="MathJax-Element-130">u</script>的单位为周/秒(赫兹)。如果 x x <script type="math/tex" id="MathJax-Element-131">x</script>表示的是以米为单位的距离,则 <script type="math/tex" id="MathJax-Element-132">u</script>的单位是为周/米。
3、离散傅立叶变换
3、1冲激串的傅立叶变换
在正式进入离散傅立叶变换的推导以前,我们还需要做一个准备工作,那就是冲激和冲激串的傅立叶变换:
先说一个点的冲激,我们假设在 t=0 t = 0 <script type="math/tex" id="MathJax-Element-133">t=0</script>处有一个冲激可以用公式表示为δ(t)={1,t=00,t≠0 δ ( t ) = { 1 , t = 0 0 , t ≠ 0<script type="math/tex; mode=display" id="MathJax-Element-134">\delta(t)=\left \{ \begin{aligned} 1 ,t=0 \\ 0 , t\neq 0 \end{aligned} \right.</script>
它的傅立叶变换是F(u)=∫∞−∞δ(t)e−i2πutdt=∫∞−∞e−i2πu0δ(t)e−i2πutdt=e−i2πu0=1 F ( u ) = ∫ − ∞ ∞ δ ( t ) e − i 2 π u t d t = ∫ − ∞ ∞ e − i 2 π u 0 δ ( t ) e − i 2 π u t d t = e − i 2 π u 0 = 1<script type="math/tex; mode=display" id="MathJax-Element-135"> F(u)=\int_{-\infty}^{\infty}\delta(t)e^{-i2\pi ut}dt=\int_{-\infty}^{\infty}e^{-i2\pi u0}\delta(t)e^{-i2\pi ut}dt=e^{-i2\pi u0}=1 </script>
在说不是在原点的一个点的冲激,我们假设在 t=t0 t = t 0 <script type="math/tex" id="MathJax-Element-136">t=t_0</script>处有一个冲激可以用公式表示为δ(t−t0)={1,t−t0=00,t−t0≠0 δ ( t − t 0 ) = { 1 , t − t 0 = 0 0 , t − t 0 ≠ 0<script type="math/tex; mode=display" id="MathJax-Element-137">\delta(t-t_0)=\left \{ \begin{aligned} 1 ,t-t_0=0 \\ 0 , t-t_0\neq 0 \end{aligned} \right.</script>
它的傅立叶变换是F(u)=∫∞−∞δ(t−t0)e−i2πutdt=∫∞−∞e−i2πutδ(t−t0)e−i2πutdt=e−i2πut0=cos(2πut0)−isin(2πut0) F ( u ) = ∫ − ∞ ∞ δ ( t − t 0 ) e − i 2 π u t d t = ∫ − ∞ ∞ e − i 2 π u t δ ( t − t 0 ) e − i 2 π u t d t = e − i 2 π u t 0 = c o s ( 2 π u t 0 ) − i s i n ( 2 π u t 0 )<script type="math/tex; mode=display" id="MathJax-Element-138"> F(u)=\int_{-\infty}^{\infty}\delta(t-t_0)e^{-i2\pi ut}dt=\int_{-\infty}^{\infty}e^{-i2\pi ut}\delta(t-t_0)e^{-i2\pi ut}dt=e^{-i2\pi ut_0}=cos(2\pi ut_0)-i sin(2\pi ut_0) </script>
其中用到 冲激的取样特性 ∫∞−∞f(t)δ(t−t0)dt=f(t0) ∫ − ∞ ∞ f ( t ) δ ( t − t 0 ) d t = f ( t 0 ) <script type="math/tex" id="MathJax-Element-139">\int_{-\infty}^{\infty}f(t)\delta(t-t_0)dt=f(t_0)</script>
由于该冲激只在 t=t0 t = t 0 <script type="math/tex" id="MathJax-Element-140">t=t_0</script>有值,且为1,所以对其积分就是 e−i2πut0 e − i 2 π u t 0 <script type="math/tex" id="MathJax-Element-141">e^{-i2\pi ut_0}</script>,后一步是用欧拉公式得到。 e−i2πut0=cos(2πut0)−isin(2πut0) e − i 2 π u t 0 = c o s ( 2 π u t 0 ) − i s i n ( 2 π u t 0 ) <script type="math/tex" id="MathJax-Element-142">e^{-i2\pi ut_0}=cos(2\pi ut_0)-i sin(2\pi ut_0)</script>是以复平面原点为中心的单位圆的等效表示。
冲激串的傅立叶变换:
冲激串的傅立叶变换并不能用像我们得到单个的冲激变换那么简单。原因是因为冲激串函数不满足傅立叶变换的条件(狄利赫利条件-绝对可积)。周期信号不满足绝对可积条件式,按理是不存在傅立叶变换的。但若允许傅立叶变换式中含有冲激函数,则也具有傅立叶变换。得到冲激串函数的傅立叶变换可以直接从周期信号的傅立叶级数得到它的傅立叶变换。它是一个很重要的表示方法。冲激串函数是周期的,它的傅立叶变换也是由一串在频域上的冲激函数组成的。
首先,冲激串的傅立叶级数为sΔT(t)=∑n=−∞∞cnei2πnΔTt s Δ T ( t ) = ∑ n = − ∞ ∞ c n e i 2 π n Δ T t<script type="math/tex; mode=display" id="MathJax-Element-143">s_{\Delta T}(t)=\sum_{n=-\infty}^{\infty}c_ne^{i\frac{2\pi n}{\Delta T}t}</script>
其中cn=1ΔT∫ΔT2−ΔT2sΔT(t)e−i2πnΔTtdt c n = 1 Δ T ∫ − Δ T 2 Δ T 2 s Δ T ( t ) e − i 2 π n Δ T t d t<script type="math/tex; mode=display" id="MathJax-Element-144"> c_n=\frac{1}{\Delta T}\int_{\frac{-\Delta T}{2}}^{\frac{\Delta T}{2}}s_{\Delta T}(t)e^{-i\frac{2\pi n}{\Delta T}t}dt </script>
因为区间 [−ΔT2,ΔT2] [ − Δ T 2 , Δ T 2 ] <script type="math/tex" id="MathJax-Element-145">\left[\frac{-\Delta T}{2},\frac{\Delta T}{2} \right]</script>的积分仅包含位于原点的冲激 sΔT(t) s Δ T ( t ) <script type="math/tex" id="MathJax-Element-146">s_{\Delta T}(t)</script>所以cn=1ΔT∫ΔT2−ΔT2sΔT(t)e−i2πnΔTtdt=1ΔTe0=1ΔT c n = 1 Δ T ∫ − Δ T 2 Δ T 2 s Δ T ( t ) e − i 2 π n Δ T t d t = 1 Δ T e 0 = 1 Δ T<script type="math/tex; mode=display" id="MathJax-Element-147"> c_n=\frac{1}{\Delta T}\int_{\frac{-\Delta T}{2}}^{\frac{\Delta T}{2}}s_{\Delta T}(t)e^{-i\frac{2\pi n}{\Delta T}t}dt=\frac{1}{\Delta T}e^0=\frac{1}{\Delta T} </script>
所以傅立叶级数可展开为sΔT(t)=1ΔT∑n=−∞∞ei2πnΔTt s Δ T ( t ) = 1 Δ T ∑ n = − ∞ ∞ e i 2 π n Δ T t<script type="math/tex; mode=display" id="MathJax-Element-148"> s_{\Delta T}(t)=\frac{1}{\Delta T}\sum_{n=-\infty}^{\infty}e^{i\frac{2\pi n}{\Delta T}t} </script>
因为求和的过程是线性过程,得到和的傅立叶变换与各个分量的傅立叶变换之和是相同的,所以对上式的每个分量求傅立叶变换
F{ei2πnΔTt}=δ(u−nΔT) F { e i 2 π n Δ T t } = δ ( u − n Δ T )<script type="math/tex; mode=display" id="MathJax-Element-149">\mathscr{F} \left\{ e^{i\frac{2\pi n}{\Delta T}t} \right\}=\delta \left( u-\frac{n}{\Delta T} \right) </script>
然后把每个分量的傅立叶变换相加得到周期冲激串 sΔT(t) s Δ T ( t ) <script type="math/tex" id="MathJax-Element-150">s_{\Delta T}(t)</script>的傅立叶变换 S(u) S ( u ) <script type="math/tex" id="MathJax-Element-151">S(u)</script>是
S(u)=F{sΔT(t)}=F{1ΔT∑n=−∞∞ei2πnΔTt}=1ΔTF{∑n=−∞∞ei2πnΔTt}=1ΔT∑n=−∞∞δ(u−nΔT) S ( u ) = F { s Δ T ( t ) } = F { 1 Δ T ∑ n = − ∞ ∞ e i 2 π n Δ T t } = 1 Δ T F { ∑ n = − ∞ ∞ e i 2 π n Δ T t } = 1 Δ T ∑ n = − ∞ ∞ δ ( u − n Δ T )<script type="math/tex; mode=display" id="MathJax-Element-152">S(u)=\mathscr{F}\left\{s_{\Delta T}(t)\right\}=\mathscr{F}\left\{ \frac{1}{\Delta T}\sum_{n=-\infty}^{\infty}e^{i\frac{2\pi n}{\Delta T}t} \right\}=\frac{1}{\Delta T}\mathscr{F}\left\{ \sum_{n=-\infty}^{\infty}e^{i\frac{2\pi n}{\Delta T}t} \right\}=\frac{1}{\Delta T}\sum_{n=-\infty}^{\infty}\delta\left(u-\frac{n}{\Delta T}\right) </script>
所以,冲激串的傅立叶变换为S(u)=1ΔT∑n=−∞∞δ(u−nΔT) S ( u ) = 1 Δ T ∑ n = − ∞ ∞ δ ( u − n Δ T )<script type="math/tex; mode=display" id="MathJax-Element-153"> S(u)=\frac{1}{\Delta T}\sum_{n=-\infty}^{\infty}\delta\left(u-\frac{n}{\Delta T}\right) </script>
这里还可以证明周期为 ΔT Δ T <script type="math/tex" id="MathJax-Element-154">\Delta T</script>的冲激串的傅立叶变换还是冲激串,并且周期为 1ΔT 1 Δ T <script type="math/tex" id="MathJax-Element-155">\frac{1}{\Delta T}</script>
3.2、取样
为了避免周期混淆,需要
1ΔT>2umax 1 Δ T > 2 u m a x<script type="math/tex; mode=display" id="MathJax-Element-156">\frac{1}{\Delta T}>2u_{max}</script>
它的含义是如果超过函数最高频率的两倍的取样频率来获得样本,连续的带限函数可以完全的从他的样本集来恢复。这就是 取样定理。
离散傅立叶变换之前需要对连续函数取样,取样是用一个 ΔT Δ T <script type="math/tex" id="MathJax-Element-157">\Delta T</script>单位间隔的冲激串作为取样函数去乘以 f(t) f ( t ) <script type="math/tex" id="MathJax-Element-158">f(t)</script>。利用周期延展性来扩展冲激函数,得到的离散的函数是:
fδ(t)=f(t)sΔT(t)=∑n=−∞+∞f(t)δ(t−nΔT) f δ ( t ) = f ( t ) s Δ T ( t ) = ∑ n = − ∞ + ∞ f ( t ) δ ( t − n Δ T )<script type="math/tex; mode=display" id="MathJax-Element-159">f_{\delta}(t)=f(t)s_{\Delta T}(t)=\sum_{n=-\infty}^{+\infty}f(t)\delta(t-n\Delta T)</script>
其中 fδ(t) f δ ( t ) <script type="math/tex" id="MathJax-Element-160">f_{\delta}(t)</script>表示取样后的函数。这一和式的每一个分量都是由在该冲激位置处 f(t) f ( t ) <script type="math/tex" id="MathJax-Element-161">f(t)</script>的值加权后的冲激。 每个取样值都是由加权后的冲激“强度”给出。我们可以通过积分得到它。也就是, 序列中的任意取样值
fn=∫∞−∞f(t)δ(t−nΔT)dt=f(nΔT) f n = ∫ − ∞ ∞ f ( t ) δ ( t − n Δ T ) d t = f ( n Δ T )<script type="math/tex; mode=display" id="MathJax-Element-162">f_n=\int_{-\infty}^{\infty}f(t)\delta(t-n\Delta T)dt=f(n\Delta T)</script>
3.3、推导
首先对 fδ(t) f δ ( t ) <script type="math/tex" id="MathJax-Element-163">f_{\delta}(t)</script>做傅立叶变换。即
Fδ(u)=∫−∞∞∑n=−∞+∞f(t)δ(t−nΔT)e−i2πutdt=∑n=−∞+∞∫−∞∞f(t)δ(t−nΔT)e−i2πutdt=∑n=−∞+∞f(nΔT)e−i2πunΔT F δ ( u ) = ∫ − ∞ ∞ ∑ n = − ∞ + ∞ f ( t ) δ ( t − n Δ T ) e − i 2 π u t d t = ∑ n = − ∞ + ∞ ∫ − ∞ ∞ f ( t ) δ ( t − n Δ T ) e − i 2 π u t d t = ∑ n = − ∞ + ∞ f ( n Δ T ) e − i 2 π u n Δ T<script type="math/tex; mode=display" id="MathJax-Element-164"> F_{\delta}(u)=\int_{-\infty}{\infty}\sum_{n=-\infty}^{+\infty}f(t)\delta(t-n\Delta T)e^{-i2\pi ut}dt =\sum_{n=-\infty}^{+\infty}\int_{-\infty}{\infty}f(t)\delta(t-n\Delta T)e^{-i2\pi ut}dt =\sum_{n=-\infty}^{+\infty}f(n\Delta T)e^{-i2\pi un\Delta T} </script>
因为求和的过程是线性过程,得到和的傅立叶变换与各个分量的傅立叶变换之和是相同的。这时 f(nΔT) f ( n Δ T ) <script type="math/tex" id="MathJax-Element-165">f(n\Delta T)</script>是离散函数,但是其傅立叶变换 Fδ(u) F δ ( u ) <script type="math/tex" id="MathJax-Element-166">F_{\delta}(u)</script>是周期为 1ΔT 1 Δ T <script type="math/tex" id="MathJax-Element-167">\frac{1}{\Delta T}</script>的无限周期连续函数。因此我们要表征 Fδ(u) F δ ( u ) <script type="math/tex" id="MathJax-Element-168">F_{\delta}(u)</script>的一个周期,而对一个周期取样是DFT的基础。
假设我们想要周期在 0∼1ΔT 0 ∼ 1 Δ T <script type="math/tex" id="MathJax-Element-169">0 \sim {\frac 1{\Delta T}}</script>之间取得 M M <script type="math/tex" id="MathJax-Element-170">M</script>个等间距的样本。可以通过在如下频率处取到<script type="math/tex; mode=display" id="MathJax-Element-171">u=\frac{m}{M \Delta T},m=0,1,2,\ldots,M-1</script>设这个样本为 f(x) f ( x ) <script type="math/tex" id="MathJax-Element-172">f(x)</script>。我们把 u u <script type="math/tex" id="MathJax-Element-173">u</script>代入上式,对 <script type="math/tex" id="MathJax-Element-174">f(x)</script>做傅立叶变换得到的结果是
F(u)=∑x=0M−1f(x)e−i2πuxM,u=0,1,2,…,M−1 F ( u ) = ∑ x = 0 M − 1 f ( x ) e − i 2 π u x M , u = 0 , 1 , 2 , … , M − 1<script type="math/tex; mode=display" id="MathJax-Element-175">F(u)=\sum_{x=0}^{M-1}f(x)e^{\frac{-i2\pi ux}{M}},u=0,1,2,\ldots,M-1</script>
他的反变换是:
f(x)=1M∑u=0M−1F(u)ei2πuxM,x=0,1,2,…,M−1 f ( x ) = 1 M ∑ u = 0 M − 1 F ( u ) e i 2 π u x M , x = 0 , 1 , 2 , … , M − 1<script type="math/tex; mode=display" id="MathJax-Element-176">f(x)=\frac{1}{M} \sum_{u=0}^{M-1}F(u)e^{\frac{i2\pi ux}{M}},x=0,1,2,\ldots,M-1</script>
注意这两个公式不明确的依赖于取样间隔 ΔT Δ T <script type="math/tex" id="MathJax-Element-177">\Delta T</script>,也不依赖于到u=mMΔT,m=0,1,2,…,M−1 u = m M Δ T , m = 0 , 1 , 2 , … , M − 1<script type="math/tex; mode=display" id="MathJax-Element-178">u=\frac{m}{M \Delta T},m=0,1,2,\ldots,M-1</script>频率间隔。因此 离散傅立叶变换适用于任何均匀取样的有限离散集。
3.4、取样和频率间隔间的关系
如果 f(x) f ( x ) <script type="math/tex" id="MathJax-Element-179">f(x)</script>由函数 f(t) f ( t ) <script type="math/tex" id="MathJax-Element-180">f(t)</script>以 ΔT Δ T <script type="math/tex" id="MathJax-Element-181">\Delta T</script>为单位间隔采样后的 M M <script type="math/tex" id="MathJax-Element-182">M</script>个样本组成,则这个样本的记录的持续时间是 <script type="math/tex" id="MathJax-Element-183">T=M\Delta T</script>,离散域的频率间隔 Δu Δ u <script type="math/tex" id="MathJax-Element-184">\Delta u</script>是 Δu=1MΔT=1T Δ u = 1 M Δ T = 1 T <script type="math/tex" id="MathJax-Element-185">\Delta u=\frac{1}{M\Delta T}=\frac 1 T</script>
有DFT的M个分量跨越的整个频率范围是 Ω=MΔu=1ΔT= Ω = M Δ u = 1 Δ T = <script type="math/tex" id="MathJax-Element-186">\Omega=M\Delta u=\frac{1}{\Delta T}=</script>
4、二维连续傅立叶变换
直接上公式把,这个没什么好说的。
正变换F(u,v)=∫∞−∞∫∞−∞f(t,z)e−2iπ(ut+vz)dtdz F ( u , v ) = ∫ − ∞ ∞ ∫ − ∞ ∞ f ( t , z ) e − 2 i π ( u t + v z ) d t d z<script type="math/tex; mode=display" id="MathJax-Element-187"> F(u,v)=\int_{-\infty}^{\infty}\int_{-\infty}^{\infty}f(t,z)e^{-2i\pi(ut+vz)}dt dz </script>
反变换f(t,z)=∫∞−∞∫∞−∞F(u,v)e−2iπ(ut+vz)dudv f ( t , z ) = ∫ − ∞ ∞ ∫ − ∞ ∞ F ( u , v ) e − 2 i π ( u t + v z ) d u d v<script type="math/tex; mode=display" id="MathJax-Element-188"> f(t,z)=\int_{-\infty}^{\infty}\int_{-\infty}^{\infty}F(u,v)e^{-2i\pi(ut+vz)}du dv </script>5、二维离散傅立叶变换及其性质
5.1、二维冲激及其取样特性
连续变量t,z的冲激
δ(t,z)={∞,0,t=z=0else δ ( t , z ) = { ∞ , t = z = 0 0 , e l s e<script type="math/tex; mode=display" id="MathJax-Element-189">\delta(t,z)=\begin{cases} \infty, & t=z=0 \\ 0, & else \end{cases}</script>
和∫∞−∞∫∞−∞δ(t,z)dtdz=1 ∫ − ∞ ∞ ∫ − ∞ ∞ δ ( t , z ) d t d z = 1<script type="math/tex; mode=display" id="MathJax-Element-190">\int_{-\infty}^{\infty}\int_{-\infty}^{\infty}\delta(t,z)dt dz=1</script>
取样特性
∫∞−∞∫∞−∞f(t,z)δ(t,z)dtdz=f(0,0) ∫ − ∞ ∞ ∫ − ∞ ∞ f ( t , z ) δ ( t , z ) d t d z = f ( 0 , 0 )<script type="math/tex; mode=display" id="MathJax-Element-191">\int_{-\infty}^{\infty}\int_{-\infty}^{\infty}f(t,z)\delta(t,z)dt dz=f(0,0)</script>
更一般
∫∞−∞∫∞−∞f(t,z)δ(t−t0,z−z0)dtdz=f(t0,z0) ∫ − ∞ ∞ ∫ − ∞ ∞ f ( t , z ) δ ( t − t 0 , z − z 0 ) d t d z = f ( t 0 , z 0 )<script type="math/tex; mode=display" id="MathJax-Element-192">\int_{-\infty}^{\infty}\int_{-\infty}^{\infty}f(t,z)\delta(t-t_0,z-z_0)dt dz=f(t_0,z_0)</script>
离散变量x,y,二维离散冲激
δ(x,y)={1,0,x=y=0else δ ( x , y ) = { 1 , x = y = 0 0 , e l s e<script type="math/tex; mode=display" id="MathJax-Element-193">\delta(x,y)=\begin{cases} 1, & x=y=0 \\ 0, & else \end{cases}</script>
取样特性:∑x=−∞∞∑y=−∞∞f(x,y)δ(x,y)dxdy=f(0,0) ∑ x = − ∞ ∞ ∑ y = − ∞ ∞ f ( x , y ) δ ( x , y ) d x d y = f ( 0 , 0 )<script type="math/tex; mode=display" id="MathJax-Element-194">\sum_{x=-\infty}^{\infty}\sum_{y=-\infty}^{\infty}f(x,y)\delta(x,y)dx dy=f(0,0)</script>
更一般:∑x=−∞∞∑y=−∞∞f(x,y)δ(x−x0,y−y0)dxdy=f(x0,y0) ∑ x = − ∞ ∞ ∑ y = − ∞ ∞ f ( x , y ) δ ( x − x 0 , y − y 0 ) d x d y = f ( x 0 , y 0 )<script type="math/tex; mode=display" id="MathJax-Element-195">\sum_{x=-\infty}^{\infty}\sum_{y=-\infty}^{\infty}f(x,y)\delta(x-x_0,y-y_0)dx dy=f(x_0,y_0)</script>5.2、二维离散傅立叶变换及其反变换
它的推导方式如同一维中的推导方式。我们这里直接给出。因为更想把时间集中在其性质上。
正变换:F(u,v)=∑x=0M−1∑y=0N−1f(x,y)e−2iπ(uxM+uyN) F ( u , v ) = ∑ x = 0 M − 1 ∑ y = 0 N − 1 f ( x , y ) e − 2 i π ( u x M + u y N )<script type="math/tex; mode=display" id="MathJax-Element-196"> F(u,v)=\sum_{x=0}^{M-1}\sum_{y=0}^{N-1}f(x,y)e^{-2i\pi(\frac{ux}{M}+\frac{uy}{N})} </script>
反变换:f(x,y)=1MN∑u=0M−1∑v=0N−1F(u,v)e2iπ(uxM+uyN) f ( x , y ) = 1 M N ∑ u = 0 M − 1 ∑ v = 0 N − 1 F ( u , v ) e 2 i π ( u x M + u y N )<script type="math/tex; mode=display" id="MathJax-Element-197"> f(x,y)=\frac{1}{MN}\sum_{u=0}^{M-1}\sum_{v=0}^{N-1}F(u,v)e^{2i\pi(\frac{ux}{M}+\frac{uy}{N})} </script>5.3、二维离散傅立叶变换的一些性质
5.3.1、空间和频率间隔的关系
假定对连续函数 f(t,z) f ( t , z ) <script type="math/tex" id="MathJax-Element-198">f(t,z)</script>取样生成了一幅数字图像 f(x,y) f ( x , y ) <script type="math/tex" id="MathJax-Element-199">f(x,y)</script>,它由分别在t和z方向所取得MxN个样点组成。令 ΔT Δ T <script type="math/tex" id="MathJax-Element-200">\Delta T</script>和 ΔZ Δ Z <script type="math/tex" id="MathJax-Element-201">\Delta Z</script>表示样本间的间隔。那么相应离散频域变量间的间隔是 δu=1MΔT δ u = 1 M Δ T <script type="math/tex" id="MathJax-Element-202">\delta u=\frac{1}{M \Delta T}</script>和 δv=1NΔZ δ v = 1 N Δ Z <script type="math/tex" id="MathJax-Element-203">\delta v=\frac{1}{N \Delta Z}</script>给出。
频域样本间的间隔与空间样本间的间隔和样本数成反比5.3.2、平移和旋转
平移:
f(x,y)ei2π(u0xM+v0yN)⟺F(u−u0,v−v0) f ( x , y ) e i 2 π ( u 0 x M + v 0 y N ) ⟺ F ( u − u 0 , v − v 0 )<script type="math/tex; mode=display" id="MathJax-Element-204"> f(x,y)e^{i2\pi(\frac{u_0x}{M}+\frac{v_0y}{N})}\Longleftrightarrow F(u-u_0,v-v_0) </script>
和
f(x−x0,y−y0)⟺F(u,v)e−i2π(u0xM+v0yN) f ( x − x 0 , y − y 0 ) ⟺ F ( u , v ) e − i 2 π ( u 0 x M + v 0 y N )<script type="math/tex; mode=display" id="MathJax-Element-205"> f(x-x_0,y-y_0)\Longleftrightarrow F(u,v)e^{-i2\pi(\frac{u_0x}{M}+\frac{v_0y}{N})} </script>
旋转:
使用极坐标表示:
x=rcosθ,y=rsinθ,u=ωcosϕ,v=ωsinϕ x = r c o s θ , y = r s i n θ , u = ω c o s ϕ , v = ω s i n ϕ<script type="math/tex; mode=display" id="MathJax-Element-206"> x=r cos\theta,y=r sin\theta, u=\omega cos\phi,v=\omega sin\phi </script>
它指出,若 f(x,y) f ( x , y ) <script type="math/tex" id="MathJax-Element-207">f(x,y)</script>旋转 θ0 θ 0 <script type="math/tex" id="MathJax-Element-208">\theta_0</script>角度,则 F(u,v) F ( u , v ) <script type="math/tex" id="MathJax-Element-209">F(u,v)</script>也旋转 θ0 θ 0 <script type="math/tex" id="MathJax-Element-210">\theta_0</script>角度。反之若 F(u,v) F ( u , v ) <script type="math/tex" id="MathJax-Element-211">F(u,v)</script>旋转 θ0 θ 0 <script type="math/tex" id="MathJax-Element-212">\theta_0</script>角度,则 f(x,y) f ( x , y ) <script type="math/tex" id="MathJax-Element-213">f(x,y)</script>也旋转 θ0 θ 0 <script type="math/tex" id="MathJax-Element-214">\theta_0</script>角度。5.3.3、周期性
F(u,v)=F(u+k1M,v)=F(u,v+k2N,)=F(u+k1M,v+k2N) F ( u , v ) = F ( u + k 1 M , v ) = F ( u , v + k 2 N , ) = F ( u + k 1 M , v + k 2 N )<script type="math/tex; mode=display" id="MathJax-Element-215"> F(u,v)=F(u+k_1M,v)=F(u,v+k_2N,)=F(u+k_1M,v+k_2N) </script>
和
f(x,y)=f(x+k1M,y)=f(x,y+k2N,)=f(x+k1M,y+k2N) f ( x , y ) = f ( x + k 1 M , y ) = f ( x , y + k 2 N , ) = f ( x + k 1 M , y + k 2 N )<script type="math/tex; mode=display" id="MathJax-Element-216"> f(x,y)=f(x+k_1M,y)=f(x,y+k_2N,)=f(x+k_1M,y+k_2N) </script>
其中 k1,k2 k 1 , k 2 <script type="math/tex" id="MathJax-Element-217">k_1,k_2</script>是整数。
如果移动数据,以便 F(0,0) F ( 0 , 0 ) <script type="math/tex" id="MathJax-Element-218">F(0,0)</script>处在点(M/2,N/2)处,可简化其可视化程度。
利用下式移动数据,
f(x,y)(−1)x+y⟺F(u−M2,v−N2) f ( x , y ) ( − 1 ) x + y ⟺ F ( u − M 2 , v − N 2 )<script type="math/tex; mode=display" id="MathJax-Element-219"> f(x,y)(-1)^{x+y}\Longleftrightarrow F(u-\frac M 2,v-\frac N 2) </script>
以便如希望的那样,使 F(0,0) F ( 0 , 0 ) <script type="math/tex" id="MathJax-Element-220">F(0,0)</script>处在点 (M2,N2) ( M 2 , N 2 ) <script type="math/tex" id="MathJax-Element-221">(\frac M 2,\frac N 2)</script>处,也就是在由区间 [0,M−1] [ 0 , M − 1 ] <script type="math/tex" id="MathJax-Element-222">[0,M-1]</script>和 [0,N−1] [ 0 , N − 1 ] <script type="math/tex" id="MathJax-Element-223">[0,N-1]</script>定义的频率矩形的中心处。5.3.4、傅立叶谱和相角
因为通常二维DFT一般是复函数,因此可以使用极坐标形式来表示:
F(u,v)=|F(u,v)|eiθ(u,v) F ( u , v ) = | F ( u , v ) | e i θ ( u , v )<script type="math/tex; mode=display" id="MathJax-Element-224"> F(u,v)=|F(u,v)|e^{i\theta(u,v)} </script>
用 R R <script type="math/tex" id="MathJax-Element-225">R</script>和 <script type="math/tex" id="MathJax-Element-226">I</script>表示实部与虚部,其中幅度为
|F(u,v)|=[R2(u,v)+I2(u,v)]12 | F ( u , v ) | = [ R 2 ( u , v ) + I 2 ( u , v ) ] 1 2<script type="math/tex; mode=display" id="MathJax-Element-227"> |F(u,v)|=\left[R^2(u,v)+I^2(u,v)\right]^{\frac 1 2} </script>
称为傅立叶谱或频谱,而
θ(u,v)=arctan[I(u,v)R(u,v)] θ ( u , v ) = a r c t a n [ I ( u , v ) R ( u , v ) ]<script type="math/tex; mode=display" id="MathJax-Element-228"> \theta(u,v)=arctan\left[\frac{I(u,v)}{R(u,v)}\right] </script>称为相角。
功率谱:
P(u,v)=|F(u,v)|2=R2(u,v)+I2(u,v) P ( u , v ) = | F ( u , v ) | 2 = R 2 ( u , v ) + I 2 ( u , v )<script type="math/tex; mode=display" id="MathJax-Element-229"> P(u,v)=|F(u,v)|^2=R^2(u,v)+I^2(u,v) </script>
实函数的傅立叶变换是共轭对称的,这表明谱是关于原点偶对称: |F(u,v)|=|F(−u,−v)| | F ( u , v ) | = | F ( − u , − v ) | <script type="math/tex" id="MathJax-Element-230">|F(u,v)|=|F(-u,-v)|</script>;相角关于原点奇对称 θ(u,v)=−θ(−u,−v) θ ( u , v ) = − θ ( − u , − v ) <script type="math/tex" id="MathJax-Element-231">\theta(u,v)=-\theta(-u,-v)</script>。
当然,傅立叶变换的性质不止这些,其他的待到日后在说。
四、图像频域特性的物理意义
图像频域的那么频域分析对图像处理有什么用呢。它的物理意义是什么?
冈萨雷斯的书里解释的非常形象:一个恰当的比喻是将傅立叶变换比作一个玻璃棱镜。棱镜是可以将光分解成不同颜色的仪器,每个成分的颜色有波长或者说频率来决定。而傅立叶变换就可以看作是数学上的棱镜,将函数基于频率分解为不同的成分。当我们考虑光时,我们讨论它的光谱或频率谱。同样,傅立叶变换可以使我们通过频率成分来分析一个函数。
图像频率的物理意义:图像频率是表征图像中灰度变换剧烈程度的指标,是灰度在平面空间上的梯度。如:大面积的海面在图像中是一片灰度变换缓慢的区域,对应的频率值很低;而对于地表属性变换剧烈的边缘区域在图像中是一片灰度变化强烈的区域,对应的频率值很高。
傅立叶变换在实际中有非常明显的物理意义,设 f f <script type="math/tex" id="MathJax-Element-298">f</script>是一个能量有限的模拟信号,则其傅立叶变换就表示 <script type="math/tex" id="MathJax-Element-299">f</script>的谱。从纯粹的数学意义上看,傅立叶变换是将一个函数转换为一系列的周期函数来处理。从物理效果上看,傅立叶变换是将图像从空间域转换到频率域,逆变换是将图像从频域转换到空间域。换句话说,傅立叶变换的物理意义是将图像的灰度分布函数转换为频域的频率分布函数,逆变换是把图像的频率域的频率分布函数转换为灰度分布函数。
图像是二维的,而空间是三维的,因此空间中物体在另一个维度上的关系是由梯度来表示,这样我们当然可以通过观察图像得知物体在三维空间上中对应的关系。
考虑一座在 (x,y) ( x , y ) <script type="math/tex" id="MathJax-Element-300">(x, y)</script>点高度是 H(x,y) H ( x , y ) <script type="math/tex" id="MathJax-Element-301">H(x,y)</script>的山。 H H <script type="math/tex" id="MathJax-Element-302">H</script>这一点的梯度是在该点坡度(或者说斜度)最陡的方向。梯度的大小告诉我们坡度到底有多陡。
为什么这么说呢,因为对图像做傅立叶变换,然后求出它的频率谱,用频率谱作图,得到频谱图。这个频谱图实际上就是图像梯度的分布图,当然频谱图上的各点与图像上的各点,不存在一一对应的关系,即使在不频移的情况下也没有。傅立叶频率图上我们看到的明暗不一的亮点,实际上就是图像上某一点与邻域点差异的强弱,即梯度的大小。(图像中低频部分是指梯度小的部分,高频部分是指梯度大的点)一般来将,梯度大则该点的亮度强,否则该点亮度弱。这样通过观察到计算得到的功率图,我们首先可以看出,图像的能量分布。由得到功率图和频谱图的方式可以分析出,这两种图反映的信息几乎相同。如果频谱图中暗的点数更多,那么实际图像是比较柔和的(因为各点与邻域的差异不大,梯度相对较小),反之,如果频谱图中亮点较多,那么实际图像一定是尖锐的,边界分明且边界两边像素差异较大。对频谱移频到图像大小的中间位置后,可以看出图像的频率是以分布是以该位置为圆心,对称分布的。将频谱移频到中间位置除了可以清晰的看出图像频率分布以外,还有一个好处,它可以分离出具有周期性规律的干扰信号。比如正弦干扰,一副带有正弦干扰,移频到原点的频谱图上可以看出除了中心以外还存在以某一点为中心,对称分布的亮点集合,这个集合就是干扰噪音产生的,这时可以很直观的通过在该位置放置带阻滤波器消除干扰。
后记:
不知不觉写了这么久,在写的过程中首先是参考wiki上的卷积,遇到问题都是在网上查的所以没有详细的引用列表。但是主要还是冈萨雷斯的数字图像处理。当然想看更详细的可以看冈萨雷斯的书,我这边是加上了自己的理解,有理解错误之处望请指出。当然欢迎交流。邮箱:kadima.kipp@gmail.com转自 https://blog.csdn.net/qq_27531383/article/details/72534608
-
更多推荐

所有评论(0)