
阿贝成像理论大概是傅里叶光学里被引用最多、却也最容易变成“PPT上的公式”的内容了。课本上两句话就能讲完“两次衍射”但到底“频谱面”长什么样挡住一个级次像会怎么变收集到的衍射级次数量和分辨率到底什么关系这些问题如果只靠手推公式很难建立直觉。我在一次课程演示中用VirtualLab把阿贝成像的完整过程跑了一遍从光栅的频谱展开到空间滤波再到分辨率极限每一步都有图像、有数据、有对照比对着课本画半天函数图直观太多。今天把这套仿真流程完整拆开从理论映射到软件操作凡是能复现的参数我都列出来打算用VirtualLab做物理光学演示的读者可以直接抄作业。1. 被公式劝退的直觉补课阿贝成像到底在说什么1873年阿贝在蔡司研究显微镜分辨率时提出了一个颠覆性的看法显微镜成像不是“物点对像点”的简单映射而是两次衍射的过程。这个观点比成像公式本身更难建立直觉所以我先不用公式推用一张光栅的仿真结果来说清楚整件事的骨架。1.1 两步成像从实物到频谱再从频谱回到像假设物体是一块黑白相间的矩形振幅光栅用一束相干平面波垂直照明。光通过光栅后透射场本身就携带了光栅的周期信息。但这还不是“像”。当这个透射场经过第一个透镜后透镜后焦面上出现的是一排离散的亮点这些亮点就是光栅的空间频谱——不同方向的平面波分量被透镜聚焦成了不同位置上的点。这是第一步衍射。紧接着这些频谱面上的亮点本身又充当了“次级相干光源”继续向前传播经过第二个透镜后它们在像面上重新干涉叠加叠加出来的强度分布又变回了光栅的条纹。这是第二步衍射。阿贝成像理论的核心就是像不是一次性形成的而是“先正变换成频谱再逆变换回像”的两段式过程。这个逻辑特别像调色你把红、黄、蓝三种颜料先在调色盘上按比例放好再用笔在画布上混合出需要的颜色。物体是“原色”频谱面是“调色盘”像面是“最终画布”。如果你在调色盘上偷偷拿掉一种颜料画布上的最终颜色一定会变。空间滤波实验本质上就是在调色盘上做手脚。1.2 为什么频谱被截断像就一定退化知道了两步成像分辨率问题就变得非常直白透镜的孔径是有限的它只能在后焦面上收集到有限范围内的衍射级次。孔径之外的高频分量直接漏掉根本参与不了第二段干涉。漏掉的信息越多像面的重建结果和原物体的偏差就越大。这里有个很典型的例子一块周期为p的光栅如果透镜只允许0级通过那么像面上只剩下均匀的亮背景光栅条纹完全消失如果允许0级和±1级通过像面上会出现正弦起伏的条纹边缘特别模糊只有把更多高级次都放进来方波光栅的锐利边缘才能被重建出来。也就是说像的质量取决于频谱面被“开闸”放进来多少成分。这个结论在后面的VirtualLab实验里会看得一清二楚。2. 为什么选VirtualLab做这个演示场追迹带来的直观性用VirtualLab来演示阿贝成像不是因为它是最简单的光学软件而是因为它算东西的方式和这个理论天然契合。2.1 光线追迹与场追迹的根本差异传统设计软件比如以光线追迹为核心的几何光学工具处理的是光线路径透镜、反射镜、光阑都可以用光线去“打”。但衍射、干涉这类波动光学效应在纯几何光线模型里是算不出来的至少不直观。阿贝成像的第二步“干涉重建”恰恰是波动光学行为你用光线追迹去演示最多只能看到光路走走走看不到频谱面的离散级次更看不到滤波后像面的强度反转。VirtualLab用的底层方法是场追迹Field Tracing它直接对电磁场做传播计算。光栅的透射场、透镜后的聚焦场、后焦面的频谱分布、像面的干涉图样全都是真实可计算的复数场你在任何位置放一个探测器拿到手的就是这个位置上的振幅、相位、强度信息。这意味着“频谱”不再是一个抽象数学概念而是屏幕上可以缩放、截图、导出的实际图像。2.2 和MATLAB手写傅里叶变换对比有人会说我用MATLAB写个FFT也能算出频谱和滤波结果为什么非要学一个新软件这个说法没有错MATLAB确实是更自由的分析工具但代价是你得自己处理一堆绕不开的问题采样窗口选多大、采样点数够不够、传播核怎么近似、如果模拟的是透镜系统还得手动搭坐标变换。这一套下来光调通一个6f系统就够折腾一周。VirtualLab把物理传播过程封装好了你负责设置元件参数和位置它负责把场从光源一路传到探测器。做教学演示的时候这种“所见即所得”能帮学生把注意力放在物理图像上而不是编程细节上。等VirtualLab里的概念都建立起直觉了再回头用MATLAB做定量分析就知道每一步在算什么了。2.3 这套演示的整体设计思路我的演示方案是搭建一个经典的4f系统光栅放在第一个透镜的前焦面第一个透镜的后焦面就是频谱面第二个透镜的前焦面和第一个透镜的后焦面重合第二个透镜的后焦面就是像面。光源用632.8nm氦氖激光波长的平面波光栅周期设为10微米占空比50%透镜焦距100毫米。这样一来频谱面上各级次之间的间距能算出精确的毫米量级数值滤波器的尺寸直接可以按毫米去设置整个实验就在一个干净、可量化的框架里展开。3. 4f光路的具体搭建参数是复现的关键3.1 光源、光栅和透镜的设置细节在VirtualLab中搭建4f系统我的具体参数如下光源平面波Plane Wave波长632.8 nm光束直径设为2 mm。之所以用2 mm是为了覆盖至少200个光栅周期周期10 μm保证衍射图样有足够多的周期参与叠加避免边缘效应影响频谱纯度。光栅矩形振幅光栅周期p 10 μm占空比50%。占空比直接决定各级次强度这个点后面会展开说这里先记住50%这个值很重要。第一个透镜理想透镜Ideal Lens焦距f 100 mm放在光栅之后正好一个焦距的位置。频谱面探测器放在第一个透镜后焦面负责记录衍射级次的强度分布。第二个透镜同样是理想透镜焦距100 mm与第一个透镜间距200 mm这样频谱面正好处于两透镜的公共焦面。像面探测器放在第二个透镜后焦面记录重建像。用理想透镜而不是真实透镜模型是故意的。理想透镜不带像差结果干净便于把阿贝成像理论本身讲明白。等把理论现象完全复现之后再换成实际透镜对比像差的影响也不迟。需要注意VirtualLab不同版本的元件库入口和名称稍有差异但“光源—光栅—透镜—探测器”这个组件链在所有版本里都一样拖拽到光路中双击设置参数即可。3.2 频谱面坐标计算先算出来再动手这是整个演示里最不该省的一步。频谱面上第m级衍射与0级的间距是x_m m · λ · f / p代入λ 632.8 nm 6.328×10⁻⁴ mmf 100 mmp 0.01 mm得到x_m m × 6.328 mm级次 m位置 x_mmm说明00中心亮斑直流分量±1±6.328基频成分最关键的级次±2±12.656注意50%占空比光栅中强度为0±3±18.984三次谐波边缘重建的重要来源算完这个表频谱面上哪里会亮、哪里该放滤波器心里已经有底了。仿真不是“跑跑看”而是“先预测再验证”这一步的精神贯穿整个实验。3.3 一个非常容易踩的坑偶数级次消失了如果你直接按上面的参数跑一遍会发现频谱面上只有0级、±1级、±3级、±5级这些亮点±2级、±4级的位置上是暗的。这不是软件bug而是占空比50%的方波光栅的傅里叶展开中所有偶数次谐波系数恰好为零。这个现象在理论课上也讲但学生基本没什么感觉。在VirtualLab里亲眼看到偶数级次的位置上一片黑印象会深得多。同时也提醒你后面做空间滤波时如果设计一个“只让±2级通过”的滤波器结果是什么都放不出来因为根本没有±2级。4. 频谱面的“显形”从强度图理解衍射级次4.1 仿真结果长什么样把频谱面探测器打开你会看到沿光栅周期方向排开的一排离散亮点间距严格等于前面算出的6.328 mm。中心0级最强向外依次是±1级、±3级、±5级强度逐渐递减并且强度分布符合sinc函数的包络。整幅图的物理含义非常清楚一个周期性物体被相干光照明后它的频谱不是连续的而是离散的“梳齿”每一根梳齿对应一个传播方向。在VirtualLab的探测器分析窗口里你还可以直接提取截面强度曲线把0级、±1级、±3级的峰值高度列出来和方波光栅傅里叶系数的理论值0.5、0.318、0.106做归一化对比。这里有一个实测中的小经验强度值受网格采样影响会有几个百分点的偏差但相对大小关系一定对得上。如果对不上优先检查光源尺寸是不是只覆盖了几个周期那样频谱会被边缘衍射污染。4.2 为什么高级次是方波边缘的“功臣”只看频谱面很多人的第一反应是“几个点而已能有什么用”。但第二个透镜后的像面立刻会告诉你答案。当频谱面上所有可见级次都参与重建时像面的强度分布几乎就是原来的方波光栅当你只允许0级和±1级通过时像面变成了平滑的正弦条纹边缘完全圆钝。差别来自哪里就来自±3级、±5级这些高频成分它们负责把方波锐利的跳变边缘“顶”起来。我用一个更直观的方式理解方波的边缘越陡需要的频率成分越多。就像你用音频合成方波时必须叠加很多高次谐波否则出来的就是一个含混的纯正弦。VirtualLab像面上那些条纹形状的渐变过程就是这句话的可视化版本。4.3 探测器参数设置上的两个教训这个实验我跑过好几轮最常翻车的不是光学参数而是探测器的设置。第一频谱面窗口尺寸要够大。如果你把探测器设为20 mm×20 mm那么±1级还能看到±3级就跑出窗外了滤波实验就没法做。建议直接设成40 mm×40 mm以上覆盖到±3级。第二采样点数不能太少。频谱面上级次的位置是精确的解析值但如果网格太粗探测器会把亮斑“摊”到相邻几个像素上强度峰值和位置都会模糊。我建议至少512×512采样点既能看清级次结构又不会让计算量失控。5. 空间滤波仿真挡住哪一级像就变什么样这一节的灵感来自1906年的阿贝-波特实验但在VirtualLab里做起来比当年用刀片在透镜后焦面比划要轻松得多而且每一步都能截图说服力极强。我把滤波器放在频谱面上用不同尺寸和形状的窗口控制“放行”哪些级次然后逐一观察像面变化。5.1 滤波器在VirtualLab里的实现方式VirtualLab里可以在频谱面板前插入一个带透明度属性的元件当作空间滤波器使用。实际操作中我用的是可编程或几何式的光阑元件设置成一个矩形窗口窗口中心对准0级宽度按毫米设置即可。由于前面已经算出相邻级次间距是6.328 mm滤波窗口的宽度可以直接换算成“放行哪些级次”。5.2 只让0级通过像变成了均匀亮场设矩形窗口宽度为5 mm半宽2.5 mm那么窗口只包含0级±1级及以上的级次全部被拦掉。这时候看像面探测器光栅条纹完全消失了只剩均匀的亮场。这个结果看起来很简单但它的物理含义极其深刻一块明明有周期结构的物体当它的频谱直流分量单独通过透镜后像面呈现的是一个没有任何空间信息的均匀背景。说明周期信息完全由非零级次携带没有它们光学系统退化成一个“只传递平均亮度”的低通滤镜。5.3 挡住0级只放±1级条纹反转与倍频现象把滤波器改成不透明的是中心区域半宽设成小于6.328 mm同时让±1级所在的位置±6.328 mm附近保持通光。也就是说设计一个“块挡0级、双侧开窗”的滤波器。这一步在VirtualLab里就是用两个矩形窗口或者一个带中心挡块的元件实现的。猜猜像面会发生什么我第一次跑的时候也愣了一下——像面上出现了条纹但和原光栅的明暗位置正好互换原来透光的地方变暗原来遮光的地方变亮而且间距变成了原来的一半。这是因为去掉0级后像面的强度分布近似正比于sin²(2πx/p)正弦函数平方的周期是p/2。条纹反转加倍频这个经典结论在仿真里直观到没法忽视。如果只放行±1级但允许0级也通过那得到的就是一个普通的正弦光栅像周期保持不变边缘钝化没有反转。对比这两个实验能彻底分清“直流分量”和“基频分量”各自在成像中的作用。5.4 低通滤波0级加±1级边缘变圆把矩形滤波器宽度设为9 mm这样0级和±1级都通过±3级以上被挡住。观察像面光栅条纹还在周期和原光栅一致但边缘不再陡峭变成了平滑的正弦起伏对比度也比原光栅低。这说明一个结论**仅用三个频率成分就能勉强重建出光栅的主要周期结构但重建不了任何锐利的边缘细节。**边缘属于高频信息需要±3级、±5级这些高阶次参与叠加。这个结果直接对应到显微成像里“数值孔径不够细节丢失”的场景。5.5 逐步打开高频看着边缘一点点锐利起来最后一组对照实验把滤波器宽度从9 mm逐步增大到15 mm、21 mm让±3级、±5级依次进入系统。每一次加宽窗口都重新跑一次仿真你会发现像面条纹的边缘从平滑慢慢变得陡直方波光栅的形貌越来越清晰同时在边缘处隐约出现轻微的振铃Gibbs现象。这是傅里叶级数截断后固有的过冲不是什么仿真出错反而是一个绝佳的教学点有限带宽系统重建锐利边缘时必然伴随振铃。我建议在VirtualLab里把这组滤波宽度做成参数扫描一次性输出所有像面对比效果比逐个跑要连贯很多。6. 分辨率极限的量化验证NA和周期的拉锯战空间滤波实验展示了“频谱截断导致像退化”那退化的底线在哪里这就是阿贝分辨率公式要回答的问题。6.1 从频谱收集角度推导分辨率极限假设光栅周期为p一级衍射角由光栅方程给出sinθ₁ λ / p一个物镜要分辨光栅条纹至少要让0级和±1级同时进入物镜孔径。物镜的数值孔径NA n·sinα空气中n1α是物镜半孔径角所以能够分辨光栅的条件是λ / p NA也就是 p λ / NA如果只看光栅上最小的特征尺寸——半周期p/2那么可分辨的最小半周期就是d_min λ / (2NA)这正是阿贝分辨率公式。5.02 μm的光栅周期对应2.51 μm的半周期特征尺寸。这个推导从“频谱能不能进来”出发比死记公式顺得多。6.2 在VirtualLab里把参数变化做出来在VirtualLab里我没有换物镜而是直接在频谱面板前加一个可变方形光阑用它控制有效收集角等效于改变系统的NA。这个做法的好处是其他参数完全不变只让“孔径”成为唯一变量实验结果非常干净。具体扫描流程是这样的保持光栅周期p 10 μm透镜焦距100 mm不变。在频谱面板前加方形光阑初始半宽设为30 mm相当于全开能看到清晰的10 μm条纹。逐步减小光阑半宽15 mm、8 mm、5 mm、3 mm。每减小一次跑一次仿真并记录像面强度截面曲线。当方形光阑半宽分别对应能接收哪些级次时可以提前算出来。半宽5 mm时±1级6.328 mm已经被挡住一半像面条纹的对比度明显下降半宽3 mm时±1级完全进不来像面退化为均匀亮场。这个“从清晰到模糊到消失”的过程就是阿贝分辨率极限的实景重演。6.3 不同周期光栅的对照测试为了进一步验证分辨率公式我在同一套系统里换了四块不同周期的光栅20 μm、10 μm、6 μm、4 μm全部保持50%占空比。按照之前的计算λ/NA ≈ 5.02 μm那么周期大于5 μm的应该还看得到条纹周期小于5 μm的应该完全看不到。在VirtualLab的探测器里我直接看像面强度截面曲线而不是只凭肉眼判断。20 μm和10 μm的条纹对比度很高6 μm的条纹勉强还能分辨但对比度剧烈下降4 μm已经看不出任何周期性起伏截面基本是一条水平线。这个实验结果和理论预测严丝合缝。6.4 用对比度曲线“钉死”极限界点把不同周期光栅的像面强度截面曲线放在同一个图表里对比能直观看到条纹对比度随周期变化的趋势。定义可见度V (Imax − Imin) / (Imax Imin)在6 μm时V已经很小而在4 μm时V直接归零。这个单调变化的过程说明分辨率极限并不是一个突然“断崖”而是一个渐变过渡但它的临界区域和理论值高度吻合。这里还有一个小发现值得分享在做4 μm周期光栅时如果你把采样窗口设置得太小或者光束只覆盖了少量周期频谱会展宽边缘效应会“漏”一些高频信息进系统导致像面出现微弱的假条纹看起来好像突破了分辨率极限。这是个典型的仿真伪影。要避免它务必保证光源尺寸覆盖至少50个光栅周期并且探测器采样足够密。坦率说VirtualLab这套4f系统加上空间滤波器我前前后后跑了不下二十个参数组合每一次微调滤波器宽度或者孔径大小得到的物理图像都比看公式更清晰。如果正在教或学傅里叶光学我很建议按这套流程自己在软件里过一遍。上手的第一关就是先把频谱面级次位置算对和仿真结果对上以后再开始玩滤波否则很容易出现“滤波器放歪了”但还以为是物理现象的问题。