我正在测试Matlab中FFT和IFFT函数的有效性.
我可以将这些函数的输出与一个众所周知的数学事实进行比较:偶数,实数函数的傅里叶变换(如以0为中心的高斯),是另一个偶数,实数函数(FFT [真实,0居中高斯] =真实,0居中的高斯).这个事实应该适用于FFT和IFFT.
首先我制作网格:
nx = 256; % grid total pixel count
X = 500; % grid size (um)
dx = X/nx; % grid spacing (um)
x = linspace(-nx/2,nx/2-1,nx)*dx; % x grid (um)
df = 1/(nx*dx); % spectral grid spacing (1/um)
f = linspace(-nx/2,nx/2-1,nx)*df; % f grid (1/um)
Run Code Online (Sandbox Code Playgroud)
我制作了高斯:
A = 1; % magnitude (arbitrary units)
x_fwhm = 7; % Full width at half maximum diameter (um)
x0 = x_fwhm/sqrt(2*log(2)); % 1/e^2 radius (um)
y = A*exp(-2*x.^2./(x0)^2); % Gaussian …Run Code Online (Sandbox Code Playgroud)