简介
\qquad 傅里叶变换的缩放性质是其最基本的性质之一。假设图像 g ( x , y ) g(x,y) g(x,y)是一个关于 x x x和 y y y的二维信号,那么它们在空域作缩放变换之后,频域坐标也会发生缩放,用公式可以表示为
G ( f x , f y ) = ℑ [ g ( x , y ) ] ℑ [ g ( x a , y b ) ] = ∣ a b ∣ G ( a f x , b f y ) (1) G(f_x,f_y)=\Im{[g(x,y)]} \\ \Im{[g( \frac {x} {a},\frac {y} {b})]}= |ab|G(af_x,bf_y) \tag{1} G(fx,fy)=ℑ[g(x,y)]ℑ[g(ax,by)]=∣ab∣G(afx,bfy)(1)
其中,A和B都是常量, ℑ \Im ℑ是傅里叶变换算符。上面这个公式本质上可以拆分为两部分,第一部分是能量守恒,图像放大在 x x x方向上放大了 ∣ a ∣ |a| ∣a∣倍,在 y y y方向上放大了 ∣ b ∣ |b| ∣b∣倍,那么其总的能量放大了 ∣ a b ∣ |ab| ∣ab∣倍,所以频域乘上了 ∣ a b ∣ |ab| ∣ab∣。第二部分是坐标缩放,频域与空域坐标存在一个倒数的关系,所以空域除相当于频域乘。
代码
%%%%%%%%%%%%验证傅里叶变换的线性性质%%%%%%%%%%%%%%
%%%%%%%%%%%%验证傅里叶变换的缩放%%%%%%%%%%%%%%
clc;
clear;
close all;
%% 产生直径20um的小孔
L = 100;% 物体边长100um
M = 1000;% 采样点数1000;
dx = L/M;% 采样间隔
dy = dx;
x = -L/2:dx:L/2-dx;% 一维坐标
y= x;
fx = -1/(2*dx):1/L:1/(2*dx)-1/L;
fy = fx;
[X,Y] = meshgrid(x,y);%二维坐标
D = 20;
circle = (X.^2+Y.^2)<=(D/2)^2;
circle_FFT = fftshift(fft2(circle))/(M*M);
%% 缩放(放大两倍)
a = 2;
b = 2;
x2 = x/a;
y2 = y/b;
[X2,Y2] = meshgrid(x2,y2);
circle2 = (X2.^2+Y2.^2)<=(D/2)^2;
circle2_FFT = fftshift(fft2(circle2))/(M*M);
%% 验证
figure('Name','小孔');
subplot(121)
imagesc(x,y,circle)
colormap('gray');
axis square;
axis xy
xlabel('x (\mum)');ylabel('y (\mum)');title('缩放前');
subplot(122)
imagesc(x,y,circle2)
colormap('gray');
axis square;
axis xy
xlabel('x (\mum)');ylabel('y (\mum)');title('缩放后');
figure('Name','小孔频谱');
subplot(121)
surf(fx,fy,abs(circle_FFT));
camlight right;
lighting phong;
shading interp
ylabel('fy (cyc/\mum)');xlabel('fx (cyc/\mum)');title('缩放前');
subplot(122)
surf(fx,fy,abs(circle2_FFT));
camlight right;
lighting phong;
shading interp
ylabel('fy (cyc/\mum)');xlabel('fx (cyc/\mum)');title('缩放后');
结果
1.缩放前后小孔
\qquad
在代码中,设置
a
=
b
=
2
a=b=2
a=b=2,相当于将小孔放大了两倍,实际的结果与理论一致。
2.缩放前后频谱
\qquad 在代码中,设置 a = b = 2 a=b=2 a=b=2,在频谱的中心,能量由0.03142变为0.1256,扩大了4倍,与理论值一致,同时,衍射能量在缩放后更加集中,即频域图像实际是变小变高了。