引言
经典光源和量子光源用途广泛,从量子光学和量子计算到激光干涉测量等经典领域均有涉及。光源通常根据其统计发射特性进行分类:相干光源、热光源、混沌光源或量子光源。相干光源包括具有稳定相位和发射光子数量泊松波动的激光器。热光源,例如灯泡灯丝或恒星,通过大量不相关的发射体以脉冲形式产生光。量子光源,例如压缩光或单光子发射器,表现出“反聚束”现象,即在刚刚探测到一个光子后立即探测到另一个光子的概率最低。这是一种固有的量子现象,任何经典光源都无法产生。
对于量子应用而言,表征光的统计发射特性通常至关重要,以验证光源是否真正具有量子特性。类似地,激光器的精度应受限于控制光子数量的泊松统计。确定光发射统计特性的一种方法是通过\(g^{(2)}(\tau)\)关联函数,它是经典光学和量子光学中广泛使用的度量。
在本应用笔记中,我们介绍了两种使用 Moku 测量 \(g^{(2)}(\tau)\) 的方法。截至目前 魔库OS 4.1时频分析器内置了 \(g^{(2)}(\tau)\) 计算器,它使用卷积方法实时运行。我们还可以使用 Moku 时频分析器捕获事件数据并添加时间戳,然后在后处理中通过成对方法计算 \(g^{(2)}(\tau)\)。我们概述了这两种方法,并使用 Moku 模拟和记录带时间戳的光子事件来验证它们。然后,我们详细介绍了生成时间延迟直方图并使用它来计算二阶相关函数的过程。最后,我们将此结果与时频分析器内置的 \(g^{(2)}(\tau)\) 函数进行比较。
什么是二阶相关函数?
二阶相关函数 \(g^{(2)}(\tau)\) 衡量的是时间间隔 τ 内发生的事件数占时间跨度 \(T\) 内检测到的平均事件数的比例。\(\tau=0\) 处的值尤为重要,因为它可以推断光源同时发射的光子数量。例如:
如果 \(g^{(2)}(0)>1\),则光源倾向于成组地发射光子。这称为聚束行为,通常表明光源是热光源。例如,\(g^{(2)}(\tau=0)=2\) 表示,在接近零的时间延迟下发生的事件数量是时间长度 \(T\) 内任意时间延迟 \(\tau\) 之间事件平均数量的两倍。
如果\(g^{(2)}(0)<1\),则光源倾向于以规则的间隔发射光子,一次发射多个光子的概率很小。这被称为反聚束行为,是单光子光源的理想特性。
如果\(g^{(2)}(0)=1\),则发射的光子之间没有相关性。这通常适用于相干光源,例如激光器。
图 1 显示了这三种情况的模拟结果。

为了演示如何使用和计算\(g^{(2)}(\tau)\),我们引入汉伯里-布朗-特维斯(HBT)效应。在HBT实验中(见图2),待测光源向一个50/50分束器发射一束光子,该分束器将各个光子分别导向两条光路之一。两个单光子探测器(任意标记为“A”和“B”)监测沿这两条光路传播的光子的到达情况。两条光路之间的任何光程差都会导致两个探测器接收到的光子到达时间存在时间偏移。如果一个探测器记录到一个光子事件,它会产生一个电脉冲,并将其传递给时间间隔分析器(TIA)。TIA的功能是精确地记录A和B处的光子事件,以便后续进行后处理。正如我们将在下一节中推导的那样,事件A和B之间的时间相关性将决定二阶相关函数的值。

量化二阶相关函数和重合率
二阶相关函数\(g^{(2)}(\tau)\)由光子探测计数的时均乘积给出:
\(g^{(2)}(\tau) = \frac{\langle n_A(t) n_B(t+\tau) \rangle}{ \langle n_A(t) n_B(t) \rangle} \)
其中 \(n_A(t)\) 和 \(n_B(t)\) 分别是探测器 A 和 B 在时间 \(t\) 和 \(t + τ\) 探测到的光子事件率。\(\langle . \rangle\) 内的量是时间平均值,即,
\(\langle n_A(t) n_B(t+\tau) \rangle = \lim_{T\to\infty} \frac{1}{T}\int_0^T n_A(t) n_B(t+\tau) dt \).
在建立了\(g^{(2)}(\tau)\)的定量定义之后,现在我们来讨论如何确定\(\langle n_A(t) n_B(t+\tau) \rangle\)。这是时间平均符合率,或者说是在时间\(t\)处发现一个光子,并在时间\(t+\tau\)处发现另一个光子的概率密度,无论第一个事件来自何处。这意味着在A处发生的初始事件之后,可能会在级联过程中在B处发生第一个、第二个或第三个事件。计算符合率时必须考虑所有这些事件。然后,将这些τ值进行分箱和归一化,以得出\(\langle n_A(t) n_B(t+\tau) \rangle\)的估计值。
测量时间延迟直方图
HBT测量的关键部分是时间间隔分析器,它收集光子事件并生成时间间隔直方图。Moku 时间间隔与频率分析仪 如图 3 所示,该设备可配置用于执行 HBT 测量。在此设置中,单光子探测器 (SPD) A 和 B 分别连接到 Moku 的输入 A 和 B。时频分析仪可配置为检测 SPD 的输出脉冲,其中输入 A 作为“起始”信号,输入 B 作为“终止”信号。有关如何配置 Moku 进行 HBT 测量的更多详细信息,请参阅我们的文档。 配置指南 关于这个话题。

在测量序列中,时频分析仪记录连续事件 A 和 B 之间的延迟时间,并实时构建探测到的光子对之间延迟的数密度分布。需要注意的是,时频分析仪生成的实时直方图仅测量第一步事件,因此需要进行一些后处理才能计算 \(g^{(2)}(\tau)\)。幸运的是,可以通过一种称为自卷积的过程(将在下一节中讨论)将时间间隔数据的分布转换为 \(g^{(2)}(\tau)\) 的近似值。这构成了 Moku 时频分析仪内置 \(g^{(2)}(\tau)\) 计算器的基础。
分析区间数据
假设时间频率分析仪捕获到时间间隔的直方图。我们将此分布称为 \(k(\tau)\),它记录了每个光子与另一束光子中第一个后续光子之间的时间延迟。用伪代码表示,我们可以将其想象为:
for A_time in A:
find the first B_time after A_time
tau = B_time - A_time如前所述,\(k(\tau)\) 仅是第一级延迟的概率密度函数。虽然 \(k(\tau)\) 表面上类似于 \(\langle n_A(t) n_B(t+\tau) \rangle\),但它只包含一级贡献,而排除了由更长级联引起的光子。例如,到达时间 \(t + \tau_1 + \tau_2\) 或 \(t + \tau_1 + \tau_2 + \tau_3\) 的光子不予考虑。
因此,通常不直接使用 \(k(\tau)\) 来计算 \(g^{(2)}(\tau)\)。而是必须手动统计事件 A 和 B 之间每一次显式重合,直到达到某个最大时间限制。伪代码如下:
for A_time in A:
find all B_time that occur after A_time, within some t_max
for each B_time
tau = B_time - A_time然后将这些 τ 值分箱以创建直方图,并进行适当的归一化,使得 \(g^{(2)}(\tau)=1\) 表示在该延迟下不存在相关性。虽然这种方法直接且直观,但其扩展性较差,因为必须将每个事件 A 与每个事件 B 进行比较。这会导致 \(O(N_A \times N_B)\) 次运算,如果事件发生率很高,运算量会迅速失控。因此,硬件很难实时实现此功能。
因此,Moku 时频分析仪实现了另一种实时计算 \(g^{(2)}(\tau)\) 的方法,这种方法更适合 FPGA 的独特特性。该方法涉及对 \(k(\tau)\) 进行高阶自卷积,用 \(k^{(n)}(\tau)\) 表示。每个 \(k^{(n)}(\tau)\) 描述了在给定光子为 \(k^{(n)}(\tau)\) 的情况下,光子在时间 τ 出现的概率密度。 n级联中的第 n 个光子。换句话说,它对应于从初始事件到 n 个后续光子之间的延迟分布。在初始触发后 τ 时刻观测到光子的总概率密度 G(τ),无论光子来自哪一代,都与无穷级数成正比 [1]:
\(G(\tau) \propto \sum_{n=1} ^\infty k^{(n)}(\tau)\)。
该求和应解释为对互斥路径的逻辑或运算,因为它考虑了光子在时间 τ 出现的原因,可能是第一代、第二代、第三代等等。每一项都代表一种独立的可能性,它们的总和给出了延迟 τ 时的总到达密度。因此,
\(g^{(2)}(\tau) \propto G(\tau)\)。
在下一节中,我们将用两种方法测量 \(g^{(2)}(\tau)\):一种是记录时间戳并计算完整的成对值,另一种是使用 Moku 上的内置计算器。
使用 Moku 时频分析仪对 \(g^{(2)}(\tau)\) 进行实验验证
为了模拟泊松事件分布,我们使用全电气装置。 Moku:Pro利用 多仪器并行模式我们将 Moku FPGA 划分为四个仪器插槽,每个插槽模拟一部分测量过程。详情及连接图请参见图 4。

首先,我们配置 波形发生器这将产生两路不相关的噪声流。在配置界面中,我们启用输出 A 和输出 B。我们为两者选择“噪声”功能,并将范围设置为 1 V。波形发生器配置请参见图 5。

其次,我们使用另一个波形发生器来模拟一对光电探测器的功能。我们选择重复频率为 10 MHz、脉冲宽度为 20 ns 的脉冲输出。我们启用 N 周期突发模式,阈值为 400 mV。每个通道由第一个波形发生器上的一个噪声源触发。这样,当输入电压达到某个阈值时,第二个波形发生器就会被触发,输出一个类似于单光子探测器的方波脉冲。在本例中,阈值为 400 mV,但可以改变该值来改变“光子”事件的频率。第二个波形发生器的配置如图 6 所示。

第三,我们配置 时间间隔与频率分析仪 为了检测输入 A 和 B 上发生的“光子”事件,我们在“事件”选项卡中将事件阈值设置为上升沿 0 V,然后测量从事件 A 开始到事件 B 结束的时间间隔。由于重复频率很高,我们可以使用窗口模式进行测量,测量间隔为 100 ms,这样可以捕获到足够多的事件。最后,我们将示波器连接到第四个插槽以观察输出。设置好所有仪器并启用波形发生器的输出后,我们在示波器上看到了如图 7 所示的输出。通道 A 和 B 之间应该随机分布着“事件”脉冲,有时脉冲之间的时间间隔很短。

返回时间频率分析器,我们同样可以看到这些事件出现在直方图中。如前所述,该直方图仅反映最近事件之间的时间间隔,并未考虑二阶或三阶级联。点击名为“间隔直方图”的按钮,即可查看 \(g^{(2)}(\tau)\) 的内置计算结果,这将切换显示模式。图 8 并排显示了这些结果。由于相关性是直方图自卷积的结果,因此其外观截然不同。这些值接近 1,表明事件 A 和 B 之间没有相关性——这是伪随机分布的预期结果。
要使用成对方法生成 \(g^{(2)}(\tau)\),我们可以禁用直方图并点击右下角的数据记录器图标,将原始时间戳数据记录到主机上。设置开始触发时间和采集时间,然后点击红色按钮开始记录。记录完成后,点击云图标,然后选择最新的数据文件。确保格式设置为“NumPy”格式,然后将其发送到您选择的目标位置。在下一节中,我们将使用 Python 脚本来计算 \(g^{(2)}(\tau)\)。


使用 Python 和时间戳数据计算 \(g^{(2)} (\tau)\)
为了验证这些方法的一致性,我们将使用时间频率分析器生成的时间戳数据来估计 \(g^{(2)}(\tau)\)。此 Python notebook 可从我们的[此处]( ... Github.
在完成标准包导入后,我们的第一步是将数据导入两个数组 A_times 和 B_times。然后,我们计算 A 事件之后发生的下一个 B 事件,从而获得一阶区间信息——与 Moku 时间频率分析器绘制的图表相同。有了时间戳和直方图信息,我们可以通过上一节中描述的方法计算 \(g^{(2)}(\tau)\) 。第一种方法如图 9 所示,其中我们搜索 B_times 中每个事件之后发生的事件。然后对这些值进行适当的分箱和归一化处理。

对于第二种方法,即对一阶事件直方图进行自卷积,我们可以得到一个与之前定义的时间平均符合率成正比的量。我们通过设置时间和频率分析仪并使用以下方法获得直方图来获得该量: 获取数据() 该函数返回时间段列表以及每个时间段计算出的相关值。代码如图 10 所示。

现在,我们将两种方法进行比较,方法是将完整的成对计算结果与 Moku 设备上生成的图表并列绘制。比较结果如图 11 所示。两种方法吻合良好,在整个时间跨度内得到的 \(g^{(2)}(\tau)\) 值均接近 1,这对于两个不相关的源而言是预期结果。

由于计算方法不同,卷积法和成对法在\(g^{(2)}(\tau)\)上可能存在细微差异,尤其是在\(\tau \approx 0\)附近。卷积法使用Moku获得的分箱直方图数据,而成对法则显式地评估所有事件对组合。
这两种方法在数学上都是计算二阶相关性的有效途径。对于大多数应用而言,这两种方法都能得出等效的结果。用户需要注意的是,在某些特殊情况或特定的检测器配置下,两种方法的结果可能存在细微差异。
结语
二阶相关函数是评估光源时间动态的有力工具,对于从安全通信到光子计算等量子光学应用至关重要。
我们使用 Moku 时频分析仪,通过两种方法计算了二阶相关函数 \(g^{(2)}(\tau)\)。第一种方法是使用 Moku 时频分析仪内置的计算器,通过卷积方法生成该函数。第二种方法是使用 Python 捕获高分辨率时间标记光子事件,并采用完全成对方法计算 \(g^{(2)}(\tau)\)。我们将这两种方法的结果绘制在一起,结果表明它们之间具有良好的一致性。
无论是研究相干激光器还是单光子发射器,熟悉计算 \(g^{(2)}(\tau)\) 的两种方法将使用户能够测量与理想行为的偏差并量化光源性能。
案例
[1] Chen-How Huang、Yung-Hsiang Wen 和 Yi-Wei Liu,“利用随机相位调制测量二阶相关函数和相干时间”,Opt. Express 24,4278-4288 (2016)。