主要内容

在GPU上使用FFT2模拟衍射模式

这个例子使用并行计算工具箱™在GPU上执行二维快速傅里叶变换(FFT)。二维傅里叶变换在光学中用于计算远场衍射图。当单色光源通过一个小的光圈时,就可以观察到这些衍射模式,比如杨氏双缝实验。

定义坐标系

在我们模拟穿过光圈的光之前,我们必须定义我们的坐标系统。以便在调用时得到正确的数值行为fft2,我们必须仔细安排x而且y这样0值就在正确的位置上了。

N2是每个维度的一半。

N2 = 1024;[gx, gy] = meshgrid(gpuArray。冒号(-1,1/N2, (n1 -1)/N2));

矩形光圈衍射模式的模拟

我们模拟了一束平行的单色光通过一个小的矩形光圈的效果。二维傅里叶变换描述了距离光圈较大距离处的光场。我们从形成孔径作为一个基于坐标系的逻辑掩模,那么光源就是一个简单的双精度光圈版本。远场光信号被发现使用fft2

孔径= (abs (gx) < 4 / N2)。* (abs (gy) < 2 / N2);光源=双(光圈);Farfieldsignal = fft2(光源);

显示矩形光圈的光强

我们用光场大小的平方来计算远场光强。最后,我们使用fftshift帮助可视化。

Farfieldintensity = real(farfieldsignal .* conj(farfieldsignal));Imagesc (fftshift(farfielintensity));轴(“平等”);轴(“关闭”);标题(“矩形孔径远场衍射图”);

模拟杨氏双缝实验

光学领域最著名的实验之一是杨氏双缝实验,它显示了光阑由两个平行狭缝组成时的光干涉。在建设性干扰发生的地方,可以看到一系列亮点。在这种情况下,我们形成了表示两个狭缝的孔径。我们限制了y方向,以确保产生的图案不完全集中在水平轴上。

缝= (abs (gx) < = 10 / N2)。* (abs (gx) > = 8 / N2);孔径=缝隙.* (abs(gy) < 20/N2);光源=双(光圈);Farfieldsignal = fft2(光源);

杨氏双缝光强的显示

我们像以前一样计算和显示强度。

Farfieldintensity = real(farfieldsignal .* conj(farfieldsignal));Imagesc (fftshift(farfielintensity));轴(“平等”);轴(“关闭”);标题(“双缝远场衍射图”);

Baidu
map