此内容出自书《Numerical Simulation Of Optical Wave Propagation With Example In Matlab》
# 关于 空间平移后的高斯函数执行DFT的Matlab实例。
% example_ft_gaussian.m
close all;clear all;clc;
% function values to be used in DFT
L = 10; % saptial extent of the grid
N = 64; % number of samples
delta = L/N; % sample spacing
x = (-N/2 : N/2-1)*delta;
x0 = 5*delta;
f = (-N/2 : N/2-1) / (N*delta);
a = 1;
% sampled function & its DFT
g_samp = exp(-pi*a*(x-x0).^2); % function samples
g_dft = ft(g_samp,delta); % DFT
% analytic function % its continuous FT
M = 1024;
x_cont = linspace(x(1),x(end),M);
f_cont = linspace(f(1),f(end),M);
g_cont = exp(-pi*a*(x_cont-x0).^2);
g_ft_cont = exp(-1i*2*pi*x0*f_cont).*exp(-pi*f_cont.^2/a)/a;
function G = ft(g, delta)
G = fftshift(fft(fftshift(g)))*delta;
图像显示这一部分的程序自己码了一下:
figure,plot(x,g_samp,'x',x_cont