天天看点

对傅立叶变换(FT)频谱平移的理解

对于一维函数:未平移前,FT的一个周期是沿原点对称分布的。讨论DFT,假设频率范围为[0,1,……,M-1,M],则DFT的频谱分布在原点0的两侧,左:[M/2,M/2-1,……,0],右侧[0,……,M/2-1,M/2]

同样,将上述道理用于理解二维函数(比如图像数据):FT的中心位于频率矩形的中点——假设u,v为频率自变量,则在u方向的FT和沿v方向的FT是沿原点对称分布的,而原始图像的原点在左上角(故FT图像的原点也在左上角),这就导致一幅图像的FT图像由相邻的四个FT周期的1/4组成,如下图所示:

对傅立叶变换(FT)频谱平移的理解

频谱平移使用fftshift来重排数据,相当于把FT图像的原点移到了频率矩形的原点(左上角),如下图所示:

对傅立叶变换(FT)频谱平移的理解

//关于频率矩形:设u方向的频率范围为[0,M],v方向的频率范围为[0,N],则矩形[(0,0)(M,0)(M,N)(0,N)]即频率矩形。

示例:

图像生成:

>> I=zeros(255,255);

>> I(100:155,100:155)=1;

>> imshow(I)

对傅立叶变换(FT)频谱平移的理解

傅立叶变换并显示幅值谱:

>> F=fft2(I);

>> S=abs(F);figure

>> imshow(S,[])

对傅立叶变换(FT)频谱平移的理解

图上,四个角的亮点是由于FT的周期性导致的结果(分析见上文)。

经过频谱平移后的图像为:

>> Fc=fftshift(F);figure,imshow(abs(Fc),[])

对傅立叶变换(FT)频谱平移的理解

亮度区域不明显,不方便观察——因为频谱的动态范围太大了,与8比特显示(此时中心处的明亮值占支配地位)相比要大得多。

可以知道

>> max(max(abs(F)))

ans =

      799680 %此值很大!

为此,可以使用对数变换来压缩动态范围。

>> S2=log(1+abs(Fc));imshow(S2,[])

对傅立叶变换(FT)频谱平移的理解

>> max(max(abs(S2)))

ans =

   13.5920

可以看到,动态范围已降至13.5920,更方便观察与处理。

摘录一段:“ 对数变换的一项主要应用是压缩动态范围,例如,傅立叶频谱的范围为[0,10^6]或更高,当FT频谱显示于已线性放至8比特的监视器上时,高值部分占优,从而导致频谱中低亮度值的可视细节丢失。通过计算对数,10^6左右的动态范围会降至14 。”——Gonzalez《数学图像处理》

继续阅读