本应用笔记是本系列第 1 部分的后续, 使用 Boxcar 平均器改善 SNR 测量本应用笔记探讨了双 Boxcar 平均器的配置和操作原理,重点介绍了其使用 Moku 云编译 的默认值。
此 boxcar 平均器 是一种广泛使用的仪器,在提高测量低占空比信号的信噪比 (SNR) 方面起着至关重要的作用。通过在特定事件触发的窄门内集成信号,它可以有效地隔离脉冲之间的噪声贡献。对多个门控事件进行平均可进一步提高测量的 SNR。本应用说明详细介绍了 Boxcar 平均器的实现 Moku:Pro 使用 Moku 云编译.
Boxcar 工具可用 开始。如需下载 Moku:Pro 使用指南,请点击 开始.
Boxcar平均器的工作原理
Boxcar 平均器和 锁相放大器 是检测重复信号时提高信噪比性能的重要手段。Boxcar 平均器对输入信号施加时域 Boxcar 窗,有效抑制施加的 Boxcar 窗之外的时间噪声成分;而锁相放大器采用窄带滤波器提取中心频率附近小范围内的信号,并抑制通带之外的噪声。因此,Boxcar 平均器特别适合处理低占空比信号,因为这种情况下的大部分时域信号通常都是噪声。
图 1 说明了 Boxcar 平均器的工作原理。用户定义的触发信号在触发后经过一定延迟后激活 Boxcar 门控窗口。门控窗口允许在窗口宽度上累加输入信号。然后,仪器对以下积分进行平均: n 从 Boxcar 积分器获得的结果,并使用增益级调整输出以实现任何必要的衰减或放大。
图 1:矩形波平均器的工作原理。输入信号在矩形波窗口内积分,该窗口由触发信号激活。在矩形波窗口和触发边缘之间引入触发延迟以补偿系统延迟。积分结果被平均,然后通过增益级产生矩形波平均器输出。
Boxcar 平均器的基本结构包括两个关键部件:Boxcar积分器(门)和平均器。Boxcar 积分器过滤输入信号,消除无目标信号的静默窗口产生的不良噪声。随后,平均器处理Boxcar积分器的输出,进行额外的信号平均,然后产生最终输出。
现在,让我们深入研究使用 Boxcar 平均器处理的实际信号。图 2 显示了触发信号与脉冲信号的图。值得注意的是,触发信号的上升沿和相应的脉冲信号之间存在可观察到的延迟。由于信号通路内的电气元件引入的固有延迟,可以预料到会出现这种延迟。
为了使 Boxcar 积分窗口与脉冲信号对齐,可以手动在积分过程中引入相对于触发事件的延迟。此时间调整由 触发延迟 Boxcar平均器中的参数。在图 2 中,触发延迟约为 176 纳秒,而门宽跨越 320 纳秒,有效地涵盖了整个脉冲信号。
图 2:触发信号(橙色轨迹)幅度为 150 mV。延迟 176 纳秒后,激活并测量宽度为 320 纳秒的 Boxcar 窗口。
配置触发延迟和门宽后,重点转移到通过平均 Boxcar 积分结果来进一步降低噪声水平。在此过程中,S1 的结果 通过 S5 取平均值来计算最终输出。
图 3:计算五个 Boxcar 积分周期(标记为 S1 至 S5)的平均值以增强 SNR。
实现 Boxcar 平均器
本节旨在提供关于实施 Boxcar 平均器的全面指南,可从 Liquid Instruments 获取 Github 如图 4 中的分步流程图所示。一般流程可描述如下:
(1) 调整触发级别以实现适当的触发
将触发电平设置在噪声基底到触发信号峰值的范围内。
(2) 将 Boxcar 门控窗口与脉冲信号同步并配置门控宽度
选择合适的Boxcar门宽,找到合适的触发延迟。在光学实验中,由于光路延迟和光电探测器延迟,触发信号经常先于脉冲信号。在这种情况下,触发延迟的补偿将至关重要。
(3) 选择平均器的长度
选择合适的平均周期数,以在足够的 SNR 和速度之间取得平衡。
(4) 调整增益级
对步骤 3 的结果应用衰减或放大,以防止输出饱和或最大限度地减少潜在的量化误差,最大限度地利用 Moku 的输出范围。
图 4:实现Boxcar平均器的操作流程图。
在以下章节中,我们将分别通过与 Python 控制面板和 Moku Cloud Compile (MCC) 控制寄存器交互来介绍在 Moku:Pro 上配置 boxcar 平均器的步骤。
使用 Python 控制Boxcar平均器
下面是通过 Python 控制面板实现Boxcar平均步骤的说明。
(1) 调整触发电平
本实验中,触发信号幅度为 150 mV,选择 75 mV 的信号电平可确保 Boxcar 积分的稳定触发。请注意,只有在合适的系统触发下,Boxcar 窗口才会出现;否则,稳定的脉冲信号和触发信号均不可见。
图 5:不同触发电平设置下的系统响应。(a)触发电平 0.2 V 高于触发信号幅度 0.15 V。因此,矩形窗无法触发,导致矩形窗和脉冲信号均缺失。(b)将触发电平设置为 0.075 V(相当于触发信号幅度的一半),可以成功激活矩形窗和脉冲信号。
(2) 将触发的 Boxcar 门控窗口与脉冲信号对齐,并配置门控宽度
这可以通过迭代调整和观察过程或利用 Auto 按钮。自动延迟功能会自动识别脉冲信号的峰值位置,并计算从脉冲峰值到 Boxcar 窗口中点的时间差,从而相应地调整触发延迟。
图 6:脉冲触发延迟调整为 236.8 纳秒,以使boxcar窗口与脉冲信号对齐。
g宽度 也是优化 SNR 的重要参数。有趣的是,门宽的最佳设置不一定需要捕获整个脉冲信号;相反,捕获大部分信号通常就足够了。该策略通过排除脉冲信号中信号功率低于噪声功率的部分来优化 SNR。本质上,它允许删除信号功率与噪声功率相比可忽略不计的部分。
图 7:为了优化 SNR,调整了 Boxcar 宽度以仅捕获大部分信号。然后相应地将触发延迟调整为 249.6 ns,以重新调整脉冲和 Boxcar 窗口。
(3)选择平均周期并调整增益
将模式从“对齐”更改为“平均输出”会在数据读出框中显示平均输出信号。
请注意, boxcar 平均器的输出是 n Boxcar 积分结果而不是平均值。这是因为在 FPGA 上实现除法器非常耗时,并且需要大量资源。输出积分结果而不是实际平均值会更有效率。平均 Boxcar 积分可以使用以下公式计算:

图 8:将模式从“对齐”更改为“平均输出”以读取输出值。然后配置输出增益以避免量化误差或输出饱和。
MCC 控制寄存器
Moku:Pro 提供了一个方便的功能,可以直接控制用于实现 Boxcar 平均器的寄存器。表 1 详细总结了分配给输入、控制和输出端口的数据类型。Moku:Pro 中控制寄存器的实际配置与本表中列出的规格一致。用户可以通过调整控制寄存器 0 到 5 来实现 Boxcar 平均器功能的完整配置,从而提供与 Python 控制面板相同级别的控制。
表 1:Boxcar 平均器输入、控制和输出端口的配置。
Moku:Pro 的设置如图 9 所示。在此配置中,Moku:Pro 以多仪器模式运行,可在插槽 1 中实现 Boxcar 平均器,并在插槽 2 中实现输出监控。插槽 1 中的 MCC 模块利用 In 1 作为信号输入,In 2 作为触发输入。MCC 模块产生的输出 Out A 和 Out B 随后连接到插槽 2 中的示波器,以可视化 Boxcar 平均器的输出信号。
图 9:Moku:Pro 的多仪器模式配置。In 1 为信号输入,连接到 In A;In 2 为触发信号。Boxcar 平均器的两个输出,Out A 和 Out B,连接到示波器显示结果。
MCC 块中的控制寄存器配置了图 10 所示的值。触发级别设置为 2,244,对应触发阈值幅度为 75 mV(2244 LSB,其中 LSB 代表最低有效位,除以 29925 LSBs/V,即 Moku:Pro 的数字分辨率)。
在对齐过程之前,可以将触发延迟设置为 0。对于 320 ns 的门宽,其控制寄存器配置为 100(通过将 320 ns 除以 Moku:Pro 的时钟周期 3.2 ns 获得)。此外,平均长度 设置为 100,表示输出是从 100 个单独的 boxcar 积分得出的平均值。可以根据最终输出的质量微调此值。
增益控制设置为 65,536,实际上将最低有效 16 位(小数位)配置为全零,将整数增益(最高有效 16 位)配置为 655,360。此设置为 Boxcar 平均器输出建立单位增益。如果出现明显的量化误差,可以增加此值以放大输出。例如,将此控制寄存器设置为 10 将为信号提供 32,768 倍增益。相反,如果观察到饱和,则可以将值调整为 0.5 以对信号应用 XNUMX 倍衰减。
图 10:触发电平设置为 2,244 (75 mV),门控宽度设置为 100,初始宽度为 320 ns。开关控制设置为 2,以便同时显示 Boxcar 窗口和输入信号。触发延迟设置为 0,以便清晰观察系统中的原生延迟。蓝色轨迹表示 Boxcar 窗口,红色轨迹表示脉冲信号。峰值与 Boxcar 窗口中点之间的时间差测量值为 237 ns。
图 10 表明,在应用触发延迟补偿之前,蓝色轨迹与红色轨迹相比有 237 ns 的超前间隔。因此,通过将触发延迟设置为 74 个时钟周期来进行调整。如图 11 所示,此调整成功对齐了蓝色和红色轨迹,确认所有积分输入信号都是有效的脉冲信号。
图 11:触发延迟调整为 74,为触发信号引入 236.8 纳秒的延迟,成功对齐蓝色(箱车窗口)和红色(脉冲信号)轨迹。
为了提高信噪比,将门控宽度调整为 272 ns,以丢弃脉冲信号中信号功率相对于噪声功率较低的不必要部分。然后相应地重新校准触发延迟,以使修改后的 Boxcar 窗口与脉冲信号重新对齐。
图 12:门宽度和触发延迟经过微调,消除脉冲信号的无关部分,从而提高最终结果的 SNR。
配置完参数后,将开关控制值设置为0,即可激活通过MCC的Out A端口传输Boxcar平均器结果。
图 13:配置开关控制以激活 Boxcar 平均器输出,并将增益控制调整为 327,以将值缩小 0.00499 倍,从而防止 (a) 中所示的输出饱和。可以使用公式 (1) 恢复实际输出值。
讨论
本节概述了当前 Boxcar 平均器的局限性。此外,我们还提出了一种潜在的增强功能,以解决更复杂的应用。
最大门宽
门宽为 16 位,相当于最多 65536 个样本;因此,Moku:Pro 上可实现的最大门长为 209.715 µs,Moku:Lab 上为 524.288 µs,Moku:Go 上为 2.097 ms。此计算可以扩展到触发延迟,也是 16 位,并且可实现的最大触发延迟与门长相同。可以通过应用锁相环或有限脉冲响应 (FIR) 滤波器来引入额外的触发延迟。
双 boxcar平均器
在某些实验场景中,激发或刺激脉冲配置为以测量信号脉冲频率的一半运行,如在泵浦探测光谱等应用中所见,其激光调制频率设置为激光重复率的一半。在这种情况下,携带有关物体激发状态信息的实际信号仅出现在每个第二个脉冲中,而第一个脉冲包含背景电平。为了隔离和提取所需信号,双箱车平均方法必不可少,该方法涉及取第一和第二个脉冲之间的差值。重要的是,这种减法过程具有双重目的,不仅可以提取相关信号,还可以帮助消除所获取信号中的直流基线。
MCC 提供的适应性使双 Boxcar 平均器的实现变得简单。即将发布的应用说明将提供有关这方面的详细见解。

图14: 每个触发器激活两个boxcar窗口(高:脉冲boxcar窗口;低:基线boxcar窗口),以同时积分两个探测脉冲(带泵和不带泵)。输出是两个积分结果之间的差值。
结语
本应用说明深入介绍了 Boxcar 平均器的原理。它演示了使用以下方法实现 Boxcar 平均器的方法和功能: Moku 云编译 (MCC) Moku:Pro。要探索 Boxcar 平均器的 Simulink 示例,请单击 开始. boxcar平均器的配置可以通过以下方式实现: Python 控制面板或直接控制寄存器。此外,本应用笔记还介绍了未来迭代的潜在改进。
有疑问?
在我们的知识库中获取常见问题解答
如果您对设备特性或仪器功能有疑问,请查看我们的 知识库 来查询您正在寻找的答案。 您还可以快速查看热门问题并按产品或主题来优化搜索。
加入我们的用户论坛来与我们保持联系
想要新的功能吗? 有技术支持提示要分享? 从客户案例到新功能公告等等, 用户论坛 是您的一站式门户,作为产品更新以及与 Liquid Instruments 和我们的全球用户社区建立联系。