1. 量子比特退相干噪声建模与仿真验证
退相干噪声的物理图像与建模对象
单量子比特的退相干噪声由两条独立通道叠加而成:振幅阻尼(能量弛豫,T₁过程)与相位阻尼(纯退相位,T₂过程)。在密度矩阵语言中,两者分别对应不同的 Kraus 算符,仿真时按“先振幅阻尼、后相位阻尼”的顺序作用,即可得到含噪密度矩阵。
振幅阻尼通道的 Kraus 算符为:
E0 = [[1, 0], [0, sqrt(1-γ)]]
E1 = [[0, sqrt(γ)], [0, 0]]
其中 γ = 1 - exp(-t/T₁) 为衰减概率。相位阻尼通道的 Kraus 算符为:
F0 = [[1, 0], [0, sqrt(1-λ)]]
F1 = [[0, 0], [0, sqrt(λ)]]
其中 λ = 1 - exp(-t/T_φ),T_φ 为纯退相位时间。注意 T₂ 与 T₁、T_φ 的关系为 1/T₂ = 1/(2T₁) + 1/T_φ,仿真中若给定 T₂ 需反解 T_φ。
仿真实现:密度矩阵演化与保真度计算
下面给出一个自洽的 Python 实现,使用 NumPy 完成 Kraus 算符构造、密度矩阵演化与保真度计算。初态取 |+⟩ = (|0⟩+|1⟩)/√2,该态对相位阻尼敏感、对振幅阻尼也敏感,适合同时观察两条通道的影响。
import numpy as np
# 基本算符
I2 = np.eye(2, dtype=complex)
sx = np.array([[0, 1], [1, 0]], dtype=complex)
sz = np.array([[1, 0], [0, -1]], dtype=complex)
def amplitude_damping_kraus(gamma):
E0 = np.array([[1, 0], [0, np.sqrt(1 - gamma)]], dtype=complex)
E1 = np.array([[0, np.sqrt(gamma)], [0, 0]], dtype=complex)
return [E0, E1]
def phase_damping_kraus(lam):
F0 = np.array([[1, 0], [0, np.sqrt(1 - lam)]], dtype=complex)
F1 = np.array([[0, 0], [0, np.sqrt(lam)]], dtype=complex)
return [F0, F1]
def apply_channel(rho, kraus_ops):
return sum(K @ rho @ K.conj().T for K in kraus_ops)
def evolve(rho0, t, T1, T2):
# 由 T1、T2 反解 T_phi
inv_Tphi = 1.0 / T2 - 1.0 / (2.0 * T1)
if inv_Tphi <= 0:
raise ValueError("T2 必须满足 T2 <= 2*T1")
Tphi = 1.0 / inv_Tphi
gamma = 1 - np.exp(-t / T1)
lam = 1 - np.exp(-t / Tphi)
rho = apply_channel(rho0, amplitude_damping_kraus(gamma))
rho = apply_channel(rho, phase_damping_kraus(lam))
return rho
def fidelity_pure(psi, rho):
return float(np.real(psi.conj().T @ rho @ psi))
# 初态 |+>
psi0 = np.array([1, 1], dtype=complex) / np.sqrt(2)
rho0 = np.outer(psi0, psi0.conj())
# 示例参数(单位:μs)
T1, T2 = 50.0, 30.0
ts = np.linspace(0, 80, 9)
for t in ts:
rho_t = evolve(rho0, t, T1, T2)
F = fidelity_pure(psi0, rho_t)
print(f"t={t:5.1f} μs F={F:.4f}")
运行后应观察到保真度随 t 单调下降,且 t=0 时 F=1.0000。若把 T2 设为大于 2T₁ 的值,程序会抛出异常,这正是物理约束的体现。
正确性验证:三条独立判据
- 迹保持:对任意 t,Tr(ρ(t)) 应等于 1(误差 < 1e-12)。Kraus 算符满足 ΣK†K = I,这是必要条件。
- 半正定性:ρ(t) 的最小特征值应 ≥ -1e-12,否则说明通道实现有误。
- 极限行为:t→0 时 F→1;t→∞ 时 ρ 趋于 |0⟩⟨0|(振幅阻尼主导),此时对 |+⟩ 的保真度趋于 0.5。
此外可做单通道对照:令 T_φ→∞(仅振幅阻尼),保真度应满足解析式 F(t) = (1 + √(1-γ))/2;令 T₁→∞(仅相位阻尼),保真度应满足 F(t) = (1 + √(1-λ))/2。将仿真值与解析值逐点比对,误差应小于 1e-10,即可确认噪声模型实现正确。
若需要观察纯退相位对布洛赫矢量 z 分量的影响,可额外计算 ⟨σz⟩:振幅阻尼使 ⟨σz⟩ 从 0 趋向 1,相位阻尼保持 ⟨σz⟩ 不变但压缩 x-y 平面分量。两者叠加时,⟨σz⟩ 的上升速率由 T₁ 决定,而横向分量的衰减由 T₂ 决定。
常见错误:直接用 T₂ 作为相位阻尼时间常数代入 λ = 1 - exp(-t/T₂)。这会把振幅阻尼对相位的贡献重复计算一次,导致保真度衰减偏快。正确做法是先由 1/T₂ = 1/(2T₁) + 1/T_φ 解出 T_φ,再构造相位阻尼 Kraus 算符。