2. 量子控制实验数据采集与预处理

量子控制实验的数据链路通常从一台或多台仪器开始:任意波形发生器输出控制脉冲,IQ 解调器或采集卡把探测信号数字化,时域平均器或计数器把单次触发结果累加。预处理并不是“把数据变好看”,而是在进入拟合之前,尽可能保留物理信号、抑制与模型无关的干扰,并让后续拟合的残差结构可信。本节围绕采集接口、异常值、缺失值、平滑与去噪四个环节展开,重点说明每一步的适用边界。

一、从硬件接口读取数据:先明确“一次记录”的语义

读取数据前必须先确定三个量:采样率、触发方式和数据块结构。以常见的两种接口为例:其一是示波器/数字化仪通过 VISA 或厂商 SDK 读取时域波形,返回的是“时间—电压”数组;其二是锁相放大器或量子控制平台通过 SCPI 或专用 API 读取解调结果,返回的是每个扫描点的 (I, Q) 复数或幅度、相位。两者预处理策略不同:前者关注采样点级噪声与基线漂移,后者关注扫描点级的离群与相位跳变。

一个可复现的读取流程应固定以下参数并写入元数据:采样率 fs、触发源与触发电平、每次采集的点数 N、平均次数 N_avg、扫描变量及其步进、量程与耦合方式。下面是一段示意性读取代码(示例参数,非实测结果):

import numpy as np

# 示例:从数字化仪读取一段时域波形(伪接口,仅示意结构)
fs = 1.0e9          # 采样率 1 GSa/s
N  = 2000           # 每次触发采集点数
N_avg = 500         # 硬件平均次数

t = np.arange(N) / fs                 # 时间轴,单位 s
raw = scope.read_waveform(ch=1, points=N, avg=N_avg)  # 返回电压数组
meta = {"fs": fs, "N": N, "N_avg": N_avg, "trigger": "CH1 0.5V rising"}

关键判断是:硬件平均与软件平均不等价。硬件平均在触发同步下逐点累加,能抑制与触发无关的随机噪声;软件平均若在触发抖动未校正时进行,会把波形“抹平”。因此读取阶段应优先使用硬件平均,软件端只做必要的格式转换与单位统一。

二、异常值识别与剔除:区分“坏点”和“真实物理跳变”

异常值来源主要有三类:仪器量程饱和或溢出、触发丢失导致的错位块、以及环境干扰引起的单点尖峰。识别方法应与数据类型匹配。对时域波形,常用基于中位数绝对偏差(MAD)的稳健判据:

med = np.median(x)
mad = np.median(np.abs(x - med))
score = 0.6745 * (x - med) / mad      # 稳健 z 分数
mask = np.abs(score) > 5              # 示例阈值

对扫描点级的 (I, Q) 数据,更合适的是在复平面上看幅度与相位的联合异常:幅度突变但相位连续,多为噪声尖峰;幅度与相位同时跳变,可能是失锁或跳周。剔除时建议标记而非直接删除,保留原始索引,便于后续判断是否为系统性坏块。若连续多个点同时异常,应优先怀疑触发或量程问题,而不是逐点剔除。

注意:Rabi、Ramsey 等振荡信号在过零点附近斜率大,单点噪声容易被误判为异常。阈值应结合噪声底估计设定,并对剔除比例设上限(例如不超过总点数的 2%),超过则回到采集环节排查。

三、缺失值处理:先问“为什么缺”,再决定“怎么补”

缺失值常见于扫描点被跳过、仪器返回超时、或异常点被剔除后留下的空位。处理策略取决于缺失机制:若缺失完全随机且比例很低,线性插值或样条插值可接受;若缺失与扫描变量相关(例如某段区间反复超时),插值会制造虚假结构,应将该区间标记为无效并排除出拟合。对周期性信号(如 Rabi 振荡),可用相邻周期的对应相位点做参考填充,但必须记录填充来源。

实践中的稳妥做法是:保留原始数组与有效掩码 valid_mask,拟合时只使用有效点,而不是把插值结果当作真实观测。插值仅用于可视化或初步估计,不应用于最终参数拟合的不确定度评估。

四、平滑与去噪的适用边界

平滑的本质是低通滤波,它会改变信号的频谱内容。适用边界可以概括为:当噪声带宽明显高于信号特征带宽,且平滑不改变待拟合参数时,平滑是安全的。例如对缓慢漂移的基线做滑动平均以估计零点,通常安全;但对包含高频振荡的 Rabi 信号做宽窗平滑,会压低振荡幅度、改变衰减包络,从而系统性偏移拟合出的 Rabi 频率与相干时间。

常用手段及边界如下:滑动平均适合白噪声主导、特征变化缓慢的数据,窗口应远小于信号最快特征的时间尺度;Savitzky–Golay 滤波在保留峰形和曲率方面优于滑动平均,但多项式阶数与窗口需匹配,否则会引入振铃;对小波或频域滤波,必须确认截止频率高于信号主瓣,且相位不失真(使用零相位滤波)。任何平滑都应在原始数据与平滑数据上分别拟合,比较参数偏移是否落在统计不确定度内。

数据采集与预处理链路:对象、操作与判断边界 硬件接口读取 AWG / 采集卡 / 锁相 fs、N、N_avg、触发 时域波形 或 (I,Q) 写入元数据 异常值识别 MAD 稳健 z 分数 复平面幅度/相位联合 标记而非直接删除 剔除比例设上限 缺失值处理 先判断缺失机制 随机缺失 → 插值 相关缺失 → 标记无效 保留 valid_mask 平滑 / 去噪 滑动平均 Savitzky–Golay 零相位频域滤波 截止频率 > 信号主瓣 适用边界判断(决定是否执行该步) • 异常值:过零点附近斜率大,阈值需结合噪声底;剔除比例 > 2% 应回查触发与量程 • 缺失值:与扫描变量相关的缺失不可插值,应排除出拟合;插值结果不用于不确定度评估 • 平滑:噪声带宽 ≫ 信号特征带宽才安全;宽窗平滑会压低振荡幅度、偏移频率与相干时间 安全路径示例 基线漂移估计 → 窄窗平滑 → 仅用于零点校正 原始数据与平滑数据分别拟合,参数偏移在误差内 结论:平滑不改变待拟合参数,可接受 越界路径示例 对 Rabi 振荡做宽窗滑动平均 振荡幅度被压低,衰减包络被改变 结论:拟合频率与相干时间系统性偏移 原则:先保留原始数据与掩码,再做可逆处理;每一步都记录参数与判断依据

五、把四步串成可复现的预处理记录

建议在每次实验后生成一份预处理记录,至少包含:原始文件路径与校验值、采样率与平均次数、异常判据与阈值、剔除点数与比例、缺失点索引与处理方式、平滑方法与窗口长度、以及“原始 vs 预处理”两套拟合参数的对比。这样做的目的不是增加文档负担,而是让拟合结果的可信度可以被复查:当拟合残差出现系统性结构时,能够快速定位是采集参数、异常剔除还是平滑引入的问题。

一个实用的自检顺序:先看原始数据的噪声底与量程占用,再看异常点是否成块出现,再看缺失是否与扫描区间相关,最后才决定是否平滑。平滑永远放在最后,且必须做“平滑前后拟合对比”。

综上,采集与预处理的核心不是追求“干净”的曲线,而是保证进入拟合的数据与物理模型之间的对应关系不被破坏。接口读取决定数据语义,异常与缺失处理决定有效样本集,平滑与去噪决定频谱保真度;三者共同构成拟合结果可信度的前提。