1. 课程导入与测量场景建立

光子二阶关联测量是量子光学实验中最基础、也最常被低估的一类数据分析任务。它的物理意义可以用一句话概括:测量“探测到一个光子之后,再探测到另一个光子的时间间隔分布”。这个分布直接反映了光场的统计性质——热光表现为聚束,相干光表现为泊松分布,而理想单光子源则表现为反聚束。二阶关联函数 g⁽²⁾(τ) 正是把这种统计性质定量化的核心工具。

在典型实验中,我们并不直接“测到 g⁽²⁾(τ)”,而是先得到一串带时间戳的探测事件。以 HBT(Hanbury Brown–Twiss)实验为例:光源发出的光经 50:50 分束器分成两路,分别送入两个单光子探测器(如 SPAD),两路电脉冲进入时间相关单光子计数模块(TCSPC 或时间标记器),记录每个探测事件相对某个时间基准的到达时刻。最终输出的原始数据通常是一份时间戳列表,形如:

# 通道A(探测器1)时间戳,单位 ps
1200345
1288712
1375090
...
# 通道B(探测器2)时间戳,单位 ps
1201567
1290033
1376421
...

从这份原始时间戳到最终的 g⁽²⁾(τ) 曲线,中间要经过一系列明确的处理环节:时间戳对齐与合并、符合事件配对、时间差 τ 的直方图统计、归一化、以及扣除背景与偶然符合。这条链路就是本课程的任务地图。

从原始时间戳到二阶关联函数:数据分析任务地图 实验场景 光源 BS SPAD1 SPAD2 HBT 分束 / 单光子源表征 输出:双通道时间戳 ① 时间戳对齐 时钟基准 / 通道偏移校正 ② 符合配对 计算时间差 τ = t₂ − t₁ ③ 直方图统计 τ 分箱 / 计数累加 ④ 归一化 除以偶然符合基线 ⑤ 背景扣除 暗计数 / 杂散光修正 ⑥ g⁽²⁾(τ) 曲线 反聚束 / 聚束判读 典型判读:g⁽²⁾(0) 决定光源性质 延迟 τ g⁽²⁾ 反聚束 g⁽²⁾(0)<0.5 相干光 g⁽²⁾(0)=1 热光聚束 g⁽²⁾(0)=2 工具链概览 • Python:numpy / pandas 处理时间戳 • 直方图:numpy.histogram / matplotlib • 拟合:scipy.optimize 拟合 g⁽²⁾(τ) • 仪器:TCSPC / 时间标记器导出文件

上图把整条链路拆成六个环节,其中前三个环节处理“原始数据”,后三个环节处理“物理量”。需要特别强调的是:归一化不是可选项。直方图得到的只是符合计数随 τ 的分布,其绝对高度取决于测量时长、光源亮度和探测效率。只有把每个 τ 分箱的计数除以“偶然符合期望值”,才能得到与实验条件无关的 g⁽²⁾(τ)。偶然符合基线通常由远离零延迟处的平均计数率估计,即把 τ 取在远大于光源相干时间的位置,此时两路探测事件相互独立。

判读逻辑同样需要提前建立。对于脉冲式单光子源,g⁽²⁾(0) 是核心指标:理想单光子源 g⁽²⁾(0)=0,实际器件通常要求 g⁽²⁾(0)<0.5 才能宣称“单光子性”;热光在零延迟处出现聚束峰,g⁽²⁾(0) 接近 2;相干光则平坦在 1 附近。这些数值不是死记硬背的结论,而是归一化后自然浮现的判据。课程后续会逐一展开每个环节的具体实现:如何用 Python 读入时间戳、如何用向量化方式计算时间差、如何选择分箱宽度、如何处理死时间与探测器后脉冲带来的畸变。

本课程约定:时间差定义为 τ = t₂ − t₁,其中 t₁ 来自通道 A、t₂ 来自通道 B;τ 为正表示 B 通道事件晚于 A 通道。所有图示与代码均遵循这一约定,切换参照系时会明确说明。