跳到主要内容
Sandbox Physics

光学 056 · 衍射、Fourier 光学与计算成像

波前传播 Lab

离孔由近到远,衍射图样怎样变化? 是渐变的,中间没有突然切换。孔径上每一点都发出子波,屏上的场是这些子波的复数和。离得近时,图样还像孔的形状,只是边缘带着波纹;屏幕越移越远,Fresnel 数平滑减小,图样慢慢变成远场的 Fraunhofer 衍射图。

在同一个方孔后面的复场里连续移动探测器。看加权的 Huygens 贡献怎样叠出近场结构,有限窗口里收到多少功率,图样又怎样逐渐趋向 Fraunhofer 极限。

交互模型波前传播 Lab
Fresnel 数/真实距离 NF,zN_F,z0.500.50
探测器探针/原始强度 xp,Ip/I0x_p,I_p/I_050%50\%
窗口功率/远场轮廓差异 ηW,ϵFF\eta_W,\epsilon_{\mathrm{FF}}0.00π0.00\pi
模型适用区间模型适用\text{模型适用}

物理教程

检验波前传播 Lab的物理过程

背景孔上每个被照亮的面元贡献的是复振幅,不是一份正的亮度。探测器记录的是 Iz=∣Uz∣2I_z=|U_z|^2。所以即使每个贡献点都被照亮,相消干涉仍能造出暗区。本实验只用一个方孔,让注意力放在传播本身,而不是比较各种孔形。

为什么值得理解离孔由近到远,衍射图样怎样变化?

先抓重点

核心问题
离孔由近到远,衍射图样怎样变化?
一句话直觉
以孔的半边长为长度尺度,传播尺度为 NF=(w/2)2λzN_F=\frac{(w/2)^2}{\lambda z}。这个数连续变化。数值小,说明远场近似适用;但它不是开关,图样仍由 Fresnel 计算给出。

核心数学模型

每个孔面元都贡献一个复振幅

Uz=1iλz∬Ωeiπ[(x−ξ)2+(y−η)2]/(λz) dξ dηIz/I0=∣Uz∣2\begin{aligned}U_z&=\frac{1}{i\lambda z}\iint_\Omega\\&\quad e^{i\pi[(x-\xi)^2+(y-\eta)^2]/(\lambda z)}\,\mathrm d\xi\,\mathrm d\eta\\I_z/I_0&=|U_z|^2\end{aligned}

孔位于轴向零点,距离沿入射平面波方向为正,横向坐标从孔中心量起。入射振幅取一,波长取真空值,以此归一化。只去掉沿轴的公共载波相位。积分中的坐标都以米为单位。场景里的彩色曲线代表积分中的各项贡献,不是弯曲的几何光线。

方孔:两个一维因子

Fz(x)=∫−w/2w/2eiπ(x−ξ)2/(λz) dξUz(x,y)=Fz(x)Fz(y)iλz\begin{aligned}F_z(x)&=\int_{-w/2}^{w/2}e^{i\pi(x-\xi)^2/(\lambda z)}\,\mathrm d\xi\\U_z(x,y)&=\frac{F_z(x)F_z(y)}{i\lambda z}\end{aligned}

在本 Fresnel 模型里,场严格分解为横向因子乘竖向因子。每个因子在真实开口上取 96 个 Gauss–Legendre 节点,权重为不相等的正数。相量多边形只显示横向因子除以孔边长;要得到探测强度,还要乘上竖向因子和传播前因子。多边形只画出 24 项,不会改变探测数据。

远场忽略孔内的二次相位

IFF/I0=(w2λz)2sinc⁡2 ⁣(πwxλz)sinc⁡2 ⁣(πwyλz)sinc⁡(t)=sin⁡(t)/t\begin{aligned}I_{\mathrm{FF}}/I_0&=\left(\frac{w^2}{\lambda z}\right)^2\\&\quad\operatorname{sinc}^2\!\left(\frac{\pi wx}{\lambda z}\right)\\&\quad\operatorname{sinc}^2\!\left(\frac{\pi wy}{\lambda z}\right)\\\operatorname{sinc}(t)&=\sin(t)/t\end{aligned}

金色参考就是这个解析极限,用相同单位、相同观察窗口单独算出。它沿中央轴线的第一个零点,位于波长乘距离再除以孔全边长处。近场图样不一定有这个零点,也不必长得像它。显示的差异是两条中央截线的均方根差,除以两者中较大的峰值;它不是实验误差,也不代表全场精度。

傍轴适用不等于远场

NF=(w/2)2λz∣δϕ4∣≤πrmax⁡44λz3rmax⁡=2(L+w/2)\begin{aligned}N_F&=\frac{(w/2)^2}{\lambda z}\\|\delta\phi_4|&\le\frac{\pi r_{\max}^4}{4\lambda z^3}\\r_{\max}&=\sqrt2(L+w/2)\end{aligned}

相位界读数给出 Fresnel 模型所略去的四阶程差项的上限,按孔到窗口角点的最大距离计算。在近场,Fraunhofer 可能错得很厉害,Fresnel 却仍然适用。孔的尺寸始终有数百个波长,控制范围是有意限定的。模型不求解倏逝波、边缘处的矢量场、遮板厚度,也不计后向辐射。

落到探测窗口外的功率

ηW=∫−LL∫−LL∣Uz∣2 dx dyw2Pall/I0=w2B=min⁡ ⁣(1,ln⁡(1+GI/I0)ln⁡5)\begin{aligned}\eta_W&=\frac{\int_{-L}^{L}\int_{-L}^{L}|U_z|^2\,\mathrm dx\,\mathrm dy}{w^2}\\P_{\mathrm{all}}/I_0&=w^2\\B&=\min\!\left(1,\frac{\ln(1+GI/I_0)}{\ln5}\right)\end{aligned}

入射振幅为一时,穿过方孔的功率等于孔面积,这些功率分布在整个观察平面上。有限大小的方形探测器只接住其中一部分,尾部落在窗口外。窗口内的功率由点采样做梯形积分估算。半窗口宽度自动取 0.7 个孔全边长和三个预测远场零点间距中较大的那个。曝光和对数亮度只影响图像,读数保留原始值。截线图用标注了原始数值刻度的对数轴,不是按峰值归一化的强度。

场景坐标与物理距离的对应

Xscene(z)=−240+600ln⁡(z/0.04)ln⁡100Zscene(x)=140x/LYscene(y)=155+140y/L\begin{aligned}X_{\mathrm{scene}}(z)&=-240+600\frac{\ln(z/0.04)}{\ln100}\\Z_{\mathrm{scene}}(x)&=140x/L\\Y_{\mathrm{scene}}(y)&=155+140y/L\end{aligned}

场景沿轴和横向用不同尺度,两者都有标注。遮板固定在场景坐标负 320 处,与第一个模拟距离之间留有空隙。孔和探测器共用一个横向尺度,所以同一视图里两者的大小可以直接比较;细节相机只是单独放大它们,不改变模型。沿程图每一行都有自己的横向窗口,横轴不是固定的毫米刻度。播放只是逐步显示贡献,并移动放慢的标记。

常见难点

暗处同样收到贡献

容易误解孔上被照亮的点越多,探测器就一定越亮。

正确理解复振幅可以互相抵消。要先把加权后的场加起来,再取模平方。粗糙的等权求和还会让快速振荡的相位混叠,点画得再多也不能证明结果正确。

动手实验

  1. 01

    场景 1:逐点子波构造

    在子波构造场景中移动探针,观察加权相量多边形。逐步显示部分和,探测数据不会因此改变。

    你会看到: 相量互相抵消时,强度下降。只显示部分和只是展示,不是新的采集。
  2. 02

    场景 2:Fresnel 近场

    选近场。改变孔边长、移动探测器,把 Fresnel 图样和金色参考对比。

    你会看到: 近场波纹连续变化,这时远场近似可能失效。
  3. 03

    场景 3:Fraunhofer 远场

    选远场,把探针放在预测的第一个零点附近,调节波长。再改曝光,确认原始强度没有变。

    你会看到: Fraunhofer 图样作为极限出现。有限窗口内的功率与图像亮度无关。

相关实验与文章

继续探索

孔径、传播与测量

依次改变缝数、相干性、孔径形状或传播距离,比较各自的作用。

  1. 实验衍射实验台从单缝、双缝和多缝的焦平面扫描开始。
  2. 实验Young 双缝实验台给双缝加入振幅不平衡与部分相干。
  3. 实验孔径衍射工作室绘制二维孔径,再比较互补遮挡。
  4. 当前页面波前传播 Lab移动接收面,观察近场到远场的变化。
  5. 实验衍射光栅光谱仪把刻线间距、照明刻线数与光谱分辨率联系起来。
反馈这个页面有错误、看不明白,或者缺了什么?告诉我们
反馈类型

提交时会附带本页地址、Lab ID、网站语言和设备类型。请不要填写个人信息。反馈最多保存 12 个月。隐私政策