3. 驱动场的数学描述
在单量子比特受驱动演化的仿真中,哈密顿量通常写成 H(t) = (ℏω₀/2)σ_z + ℏΩ(t)·[cos(φ)σ_x + sin(φ)σ_y]/2 的形式。其中 ω₀ 是比特的本征频率,φ 是驱动场的相位,而真正决定“怎么驱动”的是包络函数 Ω(t)。本节要解决的问题是:如何用数学函数把连续波、高斯脉冲、方波这三类常见驱动形式写清楚,并理解它们的时间波形与频谱特征如何影响仿真结果。
一、驱动场的通用分解:载波与包络
任何实际驱动场都可以分解为“高频载波 × 慢变包络”两部分:
Ω(t) = A · env(t) · cos(ω_d t + φ)
其中 A 是驱动幅度(对应拉比频率峰值),env(t) 是归一化包络(峰值取 1),ω_d 是驱动频率。在旋转坐标系下,若 ω_d = ω₀(共振驱动),载波项被吸收,仿真中真正参与演化的只剩包络 env(t)。因此,选择驱动形式,本质上就是选择包络函数。下面三种形式分别对应不同的 env(t)。
二、连续波(CW):恒定包络
连续波是最简单的驱动形式,包络为常数:
env_CW(t) = 1, 0 ≤ t ≤ T
Ω(t) = A · cos(ω_d t + φ)
在共振条件下,比特绕驱动轴以恒定角速度 Ω 进动,旋转角为 θ = Ω·T。例如取 A/2π = 5 MHz、T = 50 ns,则 θ = 2π × 5 MHz × 50 ns = π/2,恰好实现一个 π/2 门。连续波的优点是数学简单、脉冲面积精确可控;缺点是它在时域上突然开启和关闭,频谱为 sinc 型,旁瓣衰减慢(约 1/f),会激发邻近能级或泄漏到非计算态。在仿真中,若直接用理想方波开关的 CW,会看到布居数在目标态附近出现高频振荡,这就是频谱泄漏的体现。
三、高斯脉冲:平滑包络
高斯包络通过平滑的上升下降沿抑制频谱旁瓣:
env_Gauss(t) = exp[ -(t - T/2)² / (2σ²) ], 0 ≤ t ≤ T
通常用截断高斯,取 T = 4σ 或 T = 6σ,使两端包络已衰减到接近零。高斯脉冲的频谱仍是高斯型,旁瓣极低,因此对频率失谐和邻近能级更宽容。代价是脉冲面积不再等于 A·T,而需要数值积分:
θ = ∫₀ᵀ A · env_Gauss(t) dt ≈ A · σ · √(2π) · erf(T/(2√2σ))
当 T = 4σ 时,积分约等于 0.954·A·σ·√(2π)。仿真时若想实现 π 脉冲,需要根据目标旋转角反解幅度 A,而不是直接套用 CW 的 A = π/T。这是初学者最容易出错的地方:同样的峰值幅度,高斯脉冲的实际面积小于方波。
四、方波:硬开关包络
方波包络在时间窗口内恒为 1,窗口外为 0:
env_Square(t) = 1, 0 ≤ t ≤ T
= 0, 其他
它等价于“理想开关的连续波”,脉冲面积严格等于 A·T,便于解析计算。但方波的频谱是 sinc 函数,第一旁瓣约 -13 dB,且以 1/f 缓慢衰减。在真实器件中,方波的陡峭边沿还会带来额外的宽带激励。因此在仿真中,方波常被用作“理想基准”,用来对比高斯脉冲的改进效果;若要做更真实的模拟,可在方波边沿叠加有限上升时间(如 1 ns 线性斜坡),观察频谱旁瓣如何被压低。
五、在仿真中如何落地:参数化与离散化
把上述数学描述转成仿真代码时,关键是先定义包络函数,再乘以载波,并注意时间步长要足够细。以 Python/NumPy 为例,一个可复用的驱动场构造函数如下(示例参数,非实测):
import numpy as np
def drive_envelope(kind, t, T, A, sigma=None):
if kind == "cw":
return A * np.ones_like(t)
elif kind == "gauss":
sigma = sigma or T / 4
return A * np.exp(-(t - T/2)**2 / (2 * sigma**2))
elif kind == "square":
return A * ((t >= 0) & (t <= T)).astype(float)
else:
raise ValueError("unknown envelope")
# 示例:T = 50 ns,A/2π = 5 MHz,采样 0.1 ns
T, A = 50e-9, 2*np.pi*5e6
t = np.arange(0, T, 0.1e-9)
env_cw = drive_envelope("cw", t, T, A)
env_g = drive_envelope("gauss", t, T, A, sigma=T/4)
env_sq = drive_envelope("square", t, T, A)
得到包络后,旋转角由数值积分给出:theta = np.trapz(env, t)。对上面的示例,CW 与方波的 theta 都约为 π/2,而高斯脉冲因两端截断,theta 约为 0.95 × π/2。若目标是精确的 π/2 门,就需要把高斯幅度乘以约 1.05 的修正因子,或改用 T = 6σ 减小截断损失。这一步是仿真结果能否与设计目标对齐的关键。
六、频谱的数值观察方法
频谱不需要解析推导,直接对包络做离散傅里叶变换即可:
freq = np.fft.fftshift(np.fft.fftfreq(len(t), d=t[1]-t[0]))
spec = np.abs(np.fft.fftshift(np.fft.fft(env)))
spec_db = 20 * np.log10(spec / spec.max() + 1e-12)
观察 spec_db 在偏离中心频率 ±10 MHz 处的值,就能定量比较三种形式的旁瓣抑制能力。典型示例结果(合理假设,非实测):方波在 ±10 MHz 处约 -13 dB,高斯脉冲可低至 -60 dB 以下。这个对比直接解释了为什么高保真量子门仿真更倾向使用高斯或更复杂的整形脉冲(如 DRAG)。
Δ = ω_d - ω₀,则需在哈密顿量中保留 Δ·σ_z/2 项,此时包络的频谱宽度会与失谐共同决定激发效率。θ = Ω·T 计算旋转角。高斯包络的有效面积小于 A·T,必须用积分或等效面积换算,否则门角度会系统性偏小。总结来看,连续波、高斯脉冲、方波三者的差别不在“载波长什么样”,而在包络的时域形状及其频谱旁瓣。仿真时先明确目标旋转角,再选择包络类型、用数值积分校准幅度、用 FFT 检查频谱泄漏,这三步构成了驱动场建模的完整闭环。