我的小程序:


复数
复数C的定义如下:
其中R和I是实数,j是虚数,即。
C的共轭复数C*:
极坐标下表示复数:
其中,
是该向量和实轴(x轴)的夹角。
根据欧拉公式:
有:
‘
另外,复函数F(u)可表述为:
其中,R(u)和I(u)分别表示实分量函数和虚分量函数。
一维
冲激
连续变量t的单位冲激表示为:
并且满足如下等式:
一个冲激具有如下的取样特性:
其中f(t)在t=0处是连续的。
在任意点的冲激表示为
,它的取样特性为:
。
对于离散变量x,单位离散冲激如下:
并满足:
类似的,有取样特性:
或者:
无限多个分离的周期冲激单元之和是一个冲激串
:
下图是一个冲激串:
傅里叶变换
傅里叶变换是空间域到频率域的变换。
连续函数f(t)的傅里叶变换为:
给定可通过傅里叶反变换得到f(t),即:
上面两式称为傅里叶变换对。
求上图“盒状”函数f(t)的傅里叶变换:
最后一步根据 。另外最后一步是一个sinc函数:
sinc(0) = 1,对于m的其他所有整数,sinc(m) = 0。
傅里叶谱(频谱)为:
和
的曲线如下图:
从图中可以看出和
的零值位置与“盒状”函数f(t)的宽度W成反比。
前面提到的周期为的冲激串
的傅里叶变换为:
它仍是一个冲激串,周期变为1/。这种周期的反比关系与“盒状”函数及其变换之间的关系是类似的,这点很重要。
卷积
两个函数的卷积用表示(定义):
卷积定理(与傅里叶变换的关系):
其中,分别是f(t),h(t)的傅里叶变换,
表示左边的式子通过傅里叶变换得到右边的式子,右边的式子通过傅里叶反变换得到左边的式子。如:
取样
取样的方法是用一个周期为的冲激函串作为取样函数去乘f(t)得到
:
每个取样值可通过积分得到:
取样的傅里叶变换
取样后的函数的傅里叶变换
是:
其中是冲激串
的傅里叶变换,即:
由卷积的定义可继续得到:
最后一步根据冲激取样特性。上式表明,取样后的函数的傅里叶变换
是
的一个拷贝的无限、周期序列,拷贝间的间隔由1/
决定。
下图中,图a是函数f(t)的傅里叶变换的简图,图b~d是不同的1/
对应的
,分别是过取样,临界取样和欠取样:
如果能从包含的拷贝的周期序列中分离出
的一个拷贝,那么就可以从取样后的版本复原f(t)。上图中的欠取样情况图d,由于取样率1/
偏低,不能保持
的完整性,就不能从中完全回复f(t)。我们考虑临界取样的情况图c,将其放大:
从图中可以看出,要保持的完整性,拷贝间的距离要足够,即要求
,或:
这就是取样定理:如果以超过函数最高频率的两倍的取样率来获取样本,连续的带限函数可以完全从它的样本集恢复。
带限函数:以原点为中心的有限区间(宽带)[]之外的频率值,其傅里叶变换为零的函数f(t)。如下图:
以下图过取样的情况为例,来看如何从复原f(t):
图b的函数由下式定义:
根据:
可通过下式得到:
再通过傅里叶反变换复原f(t):
称上面的函数为低通滤波器,因为它通过频率范围低端的频率,消除所有较高的频率。
对于欠取样的情况,容易看出无法通过低通滤波器得到一个完整的,而产生频率混淆。
混淆总是存在,尽管原始函数可能是带限的,但在实践中,我们必须限制函数持续的时间,得到非带限函数。例如,想把带限函数f(t)限制在区间[0,T]内,可以让f(t)乘如下函数实现:
得到的这个函数有如下的基本形状:
通过前面介绍,“盒状”函数的傅里叶变换具有无限扩展的频率分量,如下图:
可以看出,该函数不是带限函数。事实上,没有有限持续时间的函数是带限的。所以,在实践中,混淆是不可避免的,但可以通过平滑输入函数减少高频分量方法来降低混淆的影响,称为抗混淆。
离散傅里叶变换(DFT)
为了得到离散傅里叶变换(DFT),我们对取样后的函数进行傅里叶变换:
是周期为1/
的无限周期连续函数,为了表征一个周期,我们要对它的一个周期取样。假设要在周期
=0到
=1/
之间得到
的M个等间距样本,可以在如下频率处得到:
把代入
,并把结果记为
,则:
上式就是离散傅里叶变换,对应的离散傅里叶反变换为:
在二维情况下,用x,y表示图像坐标变量和u,v表示频率变量更为直观,我们将上面的离散傅里叶变换对改写成如下形式:
上面的离散傅里叶正变换和反变换都是以M为周期的,即:
其中k是整数。
卷积的离散等价表示为:
其中,x=0,1,2,...,M-1。上式也是周期的,它给出了周期卷积的一个周期,通常称为循环卷积。
二维
二维冲激及取样
两个连续变量t和z的冲激:
并且:
与一维情况类似,有如下取样特性:
二维离散冲激:
取样特性:
二维冲激串:
其中,和
是连续函数f(t,z)沿t轴和z轴的样本间的间隔,如下图:
和一维的情况类似,用乘f(t,z)可得到取样后的函数。
二维中的带限函数:由区间和区间
建立的矩形之外的傅里叶变换为0的函数f(t,z)。
取样定理:如果满足
则连续函数f(t,z)可由一组样本无误的恢复。
过取样和欠取样如下图所示:
二维傅里叶变换
f(t,z)是连续函数,其二维傅里叶变换对如下:
求下图二维函数的傅里叶变换:
和前面讲到的一维“盒状”函数类似:
它的傅里叶谱为:
与一维情况类似,零的位置与T和Z的值成反比,如下图:
二维离散傅里叶变换
类似一维的推导,可以得到下面的二维离散傅里叶变换:
其中,f(x,y)是大小为M*N的图像。
对应的傅里叶反变换为:
二维离散傅里叶变换性质
1、平移和旋转
上面的傅里叶变换对表明,用指数项乘以f(x,y)将使DFT的原点移到点;反之,用负指数乘以F(u,v)将使f(x,y)的原点移到点
.
使用极坐标:
有下面的傅里叶变换对:
上式表明,若f(x,y)旋转角度,则F(u,v)旋转相同的角度。反之,若F(u,v)旋转一个角度,f(x,y)也旋转相同角度。
2、周期性
二维傅里叶变换及其反变换在u方向和v方向是无限周期的,即:
其中,是整数。
平移和周期性应用的例子:
考虑下图的一维谱
在区间[0,M-1]中,变换数据由两个在点M/2处背靠背半个周期组成,为了在该区间中有一个变换的完整周期,可以通过平移得到:
将F(0)移到位置。如果令
= M/2,则指数项变为
,因为x是整数,故它等于
,则:
平移后如下图:
在二维情况下,原理是一样的,如下图所示:
把F(0,0)点移到(M/2,N/2)处,即令下式
中的,得到:
3、对称性
任意实函数或虚函数w(x,y)都表示成一个奇数部分和一个偶数部分的和:
其中,偶数部分和奇数部分定义如下:
这里,我们谈论对称(反对称)时,我们指的是关于序列中点的对称(反对称),即一维阵列中心点右侧为正,左侧为负(二维情况类似)。于是,奇和偶的定义变为:
我们知道,两个偶函数或两个奇函数的积是偶函数,一个偶函数和一个奇函数的的积是奇函数,另外,离散函数是奇函数的唯一方法是其所有样本的和为0。于是,有如下结论:
偶函数奇函数例子:
考虑一维序列
f = {f(0) f(1) f(2) f(3)} = {2 1 1 1}
其中M = 4,要检验偶性,需满足f(x) = f(4-x),即:
f(0) = f(4),f(1)=f(3),f(2)=f(2),f(3)=f(1)
这里f(4)在被考察范围之外,所以f(0)对于偶函数的测试没关系。
奇序列中,根据奇函数的定义,第一项永远是0。考虑一维序列
g = {g(0) g(1) g(2) g(3)} = {0 -1 0 1}
序列中各项满足g(x) = -g(4-x),所以是奇序列。
二维情况如下:
上图是一个奇序列。
实函数f(x,y)的傅里叶变换是共轭对称的,即:
证明如下:
第三步是因为f(x,y)是实函数。同理可以证明虚函数f(x,y)的傅里叶变换是共轭反对称的:
下表列出离散傅里叶变换(DFT)的相关性质:
其中,R(u,v),I(u,v)分别代表F(u,v)的实部与虚部。一个复函数是偶函数意味着其实部和虚部都是偶函数,同样,一个复函数是奇函数意味着其实部和虚部都是奇函数。
二维傅里叶谱和相角
二维DFT的极坐标形式:
其中,|F(u,v)|称为傅里叶谱(或频谱):
称为相角:
功率谱为:
|F(u,v)|,,P(u,v)都是大小为M*N的阵列。
根据前面提到的,实函数的傅里叶变化是共轭对称的,可以得到
谱是关于原点偶对称的:
|F(u,v)| = |F(-u,-v)|
相角关于原点奇对称:
另外,容易得到如下结论:
其中,表示f的平均。上式表明零频率项与f(x,y)的平均值成正比。从而有:
比例常数MN通常很大,|F(0,0)|通常是谱的最大分量,有时称为变换的直流分量。
二维卷积定理
二维循环卷积:
上式给出了一个二维周期序列的一个周期。
二维卷积定理:
左右两边构成傅里叶变换对。
前面说过,离散傅里叶变换的表达式是有周期的。现在假如我们要求,即是求两个周期函数的卷积,必须考虑他们的周期性。
两个函数的卷积,可以看成是一个函数关于原点翻转并完全滑过零一个函数,在滑动过程中的每一个位移处我么执行计算。如下图所示的f和w进行卷积:
假如我们要对各有400个点的函数f和h进行卷积,可以写成:
包含以下过程:
- 关于原点求h的镜像(即使h旋转180°);
- 以数量x平移h函数;
- 对每个平移的x值,计算上式右边全部乘积之和。
注:位移x的范围要求h完全滑过f 所有值,这里x的范围是0到799。
上述过程可有下图左边的一列表示:
当f和h是周期函数时,他们的卷积过程就变成了上图中右边列的形式。可以看出,由于周期的存在,使他们互相干扰而导致所谓 缠绕错误,即图j是不正确的。
解决缠绕问题的办法就是把0添加到两个函数中,使他们具有相同的长度,用P来表示,P满足:
其中,A,B表示两个函数分别具有A个样本和B个样本。
在上面的例子中,每个函数有400个点,则使用的最小值P = 799,我们要在每个函数的结尾添加399个0,称为0填充。
类似的,在二维情况下也通过0填充来解决缠绕问题,令f(x,y)和h(x,y)分别是大小为A*B和C*D像素的阵列,则需满足:
其中,
一般说来,DFT算法对偶数尺寸的阵列执行较快,因此最好选择P和Q为满足上面方程的最小偶整数。通过上面的0填充可以解决二维卷积的缠绕问题。


参考资料:冈萨雷斯《数字图像处理》