The Depolarizing Channel

Mathematical Foundations, numerical solution.

Open In Colab

The Depolarizing Channel


Background

Real qubits are disturbed by their surroundings, and a quantum channel is the bookkeeping that turns an ideal input state into the noisy output that actually emerges. Among the single-qubit channels the depolarizing one is the most symmetric. With some probability it leaves the state untouched, and otherwise it discards it in favor of the maximally mixed state, with no axis on the Bloch sphere singled out. Geometrically the Bloch vector keeps its direction and only shrinks, by the same factor whichever way it points, which is what makes the whole channel a one-parameter family.

That isotropy is why the channel serves as a reference point for noise. Any single-qubit channel, however biased its errors, can be averaged over the Clifford group in a procedure called twirling, and the average always comes out as a depolarizing channel with the same mean effect. Twirling washes out the directional detail and keeps the part of the error that survives randomization, so the depolarizing model stands in for a generic error once its orientation has been scrambled. This is the reason it sits at the center of randomized benchmarking and of estimates for error-correction thresholds.

To quantify the damage one needs a figure of merit, and a useful one is the entanglement fidelity, which sends half of a maximally entangled pair through the channel and asks how much of the original entanglement survives. It reports how well the channel preserves correlations with a held-back reference, going beyond what happens to each input state on its own.

This exercise writes the channel in its Pauli-Kraus form, checks that it is unital and that the Kraus operators are complete, and computes the entanglement fidelity, the overlap that survives when the channel acts on one half of a maximally entangled pair. The fidelity falls linearly to one quarter as the noise reaches full strength.

Mathematical background

A quantum channel is a completely positive trace-preserving map, written through Kraus operators \(\{K_k\}\) as

\[ \mathcal{E}(\rho) = \sum_k K_k \rho K_k^\dagger , \qquad \sum_k K_k^\dagger K_k = \mathbb{I}, \]

where the sum condition enforces trace preservation. The single-qubit depolarizing channel mixes the input with the maximally mixed state,

\[ \mathcal{E}_p(\rho) = (1-p)\,\rho + p\,\frac{\mathbb{I}}{2}, \]

with Kraus operators \(K_0 = \sqrt{1-3p/4}\,\mathbb{I}\) and \(K_j = \sqrt{p/4}\,\sigma_j\) for the three Paulis. On the Bloch vector it acts as an isotropic contraction \(\vec r \mapsto (1-p)\,\vec r\). The entanglement fidelity, measured by sending half of a maximally entangled pair through the channel, is

\[ F_e = \sum_k \left|\tfrac{1}{2}\mathrm{Tr}(K_k)\right|^2 = 1 - \tfrac{3p}{4}, \]

since only the identity Kraus operator has nonzero trace. Complete positivity is the requirement that this stays a valid state even when the channel acts on part of a larger entangled system, which is exactly what the Choi matrix of the related notebook makes explicit.

Exercise

The single-qubit depolarizing channel is \(\mathcal{E}_p(\rho) = (1-p)\rho + (p/2)I\), with equivalent Kraus form:

\[ \mathcal{E}_p(\rho) = \left(1-\frac{3p}{4}\right)\rho + \frac{p}{4}\bigl(X\rho X + Y\rho Y + Z\rho Z\bigr). \]

(a) Show that \(\mathcal{E}_p\) is unital: \(\mathcal{E}_p(I/2) = I/2\).

(b) Verify the Kraus completeness relation \(\sum_k K_k^\dagger K_k = I\).

(c) Compute the entanglement fidelity \(F_e = \langle\Phi^+|(\mathcal{E}_p \otimes \mathrm{id})|\Phi^+\rangle\) and show \(F_e = 1 - 3p/4\).

Solution

Part (a): Unitality

A channel is unital if it preserves the identity: \(\mathcal{E}(I) = I\). For the Pauli-Kraus form, we need to evaluate \(\sigma_j \cdot (I/2) \cdot \sigma_j\) for each Pauli \(\sigma_j \in \{X, Y, Z\}\).

Since each Pauli matrix is unitary (\(\sigma_j^\dagger \sigma_j = I\)), we have:

\[ \sigma_j \frac{I}{2} \sigma_j = \frac{1}{2}\sigma_j \sigma_j = \frac{I}{2}. \]

Substituting into the channel:

\[ \mathcal{E}_p\!\left(\frac{I}{2}\right) = \left(1-\frac{3p}{4}\right)\frac{I}{2} + \frac{p}{4}\cdot 3 \cdot \frac{I}{2} = \frac{I}{2}\left(1-\frac{3p}{4}+\frac{3p}{4}\right) = \frac{I}{2}. \quad \checkmark \]

Interpretation: Unitality means the channel preserves the maximally mixed state, it does not “cool” the system (unlike amplitude damping). The depolarizing channel adds noise symmetrically in all directions.

Part (b): Kraus completeness

The Kraus operators are \(K_0 = \sqrt{1-3p/4}\,I\) and \(K_j = \sqrt{p/4}\,\sigma_j\) for \(j \in \{1,2,3\}\).

\[ \sum_k K_k^\dagger K_k = \left(1-\frac{3p}{4}\right)I + \frac{p}{4}\sum_{j=1}^3 \sigma_j^2 = \left(1-\frac{3p}{4}\right)I + \frac{3p}{4}I = I. \quad \checkmark \]

Part (c): Entanglement fidelity

The entanglement fidelity measures how well the channel preserves entanglement with a reference system. For a maximally entangled state \(|\Phi^+\rangle = (|00\rangle + |11\rangle)/\sqrt{2}\):

\[ F_e = \sum_k |\langle\Phi^+|(K_k \otimes I)|\Phi^+\rangle|^2. \]

Using the identity \(\langle\Phi^+|(A \otimes I)|\Phi^+\rangle = \mathrm{Tr}(A)/2\):

  • \(K_0 = \sqrt{1-3p/4}\,I\): \(|\mathrm{Tr}(K_0)/2|^2 = (1-3p/4)\).
  • \(K_j = \sqrt{p/4}\,\sigma_j\): \(|\mathrm{Tr}(\sigma_j)/2|^2 = 0\) (Paulis are traceless).

\[ \boxed{F_e = 1 - \frac{3p}{4}.} \]

At \(p = 0\) (no noise): \(F_e = 1\). At \(p = 1\) (full depolarization): \(F_e = 1/4\), the entanglement fidelity of the completely depolarizing channel and the minimum within the depolarizing family.


Symbolic Verification (SymPy)

Code
import sympy as sp

p = sp.Symbol('p', real=True, positive=True)
sx = sp.Matrix([[0,1],[1,0]])
sy = sp.Matrix([[0,-sp.I],[sp.I,0]])
sz = sp.Matrix([[1,0],[0,-1]])
I2 = sp.eye(2)

# Part (a): Unitality
rho = I2 / 2
result = (1 - sp.Rational(3,4)*p)*rho
for s in [sx, sy, sz]:
    result += (p/4) * s * rho * s
assert sp.simplify(result - rho) == sp.zeros(2)
print("Part (a): E_p(I/2) = I/2")

# Part (b): Completeness
completeness = (1 - sp.Rational(3,4)*p)*I2
for s in [sx, sy, sz]:
    completeness += (p/4) * s * s
assert sp.simplify(completeness - I2) == sp.zeros(2)
print("Part (b): Σ K†K = I")

# Part (c): Fe = 1 - 3p/4
Fe = 1 - sp.Rational(3,4)*p
print(f"Part (c): F_e = {Fe}")
Part (a): E_p(I/2) = I/2
Part (b): Σ K†K = I
Part (c): F_e = 1 - 3*p/4

Numerical Verification

Code
import numpy as np

sx = np.array([[0,1],[1,0]], dtype=complex)
sy = np.array([[0,-1j],[1j,0]])
sz = np.array([[1,0],[0,-1]], dtype=complex)
I2 = np.eye(2, dtype=complex)
paulis = [sx, sy, sz]

phi_plus = np.array([1,0,0,1], dtype=complex) / np.sqrt(2)

for p_val in [0.0, 0.1, 0.25, 0.5, 0.75, 1.0]:
    # Apply channel to half of |Φ+⟩
    rho_out = np.zeros((4,4), dtype=complex)
    rho_in = np.outer(phi_plus, phi_plus.conj())

    # K0 ⊗ I
    K0 = np.sqrt(1 - 3*p_val/4) * I2
    K0_full = np.kron(K0, I2)
    rho_out += K0_full @ rho_in @ K0_full.conj().T

    for s in paulis:
        Kj = np.sqrt(p_val/4) * s
        Kj_full = np.kron(Kj, I2)
        rho_out += Kj_full @ rho_in @ Kj_full.conj().T

    Fe = (phi_plus.conj() @ rho_out @ phi_plus).real
    Fe_pred = 1 - 3*p_val/4

    print(f"p={p_val:.2f}: F_e = {Fe:.4f} (pred {Fe_pred:.4f})")
    assert np.isclose(Fe, Fe_pred)

print("\nAll assertions passed.")
p=0.00: F_e = 1.0000 (pred 1.0000)
p=0.10: F_e = 0.9250 (pred 0.9250)
p=0.25: F_e = 0.8125 (pred 0.8125)
p=0.50: F_e = 0.6250 (pred 0.6250)
p=0.75: F_e = 0.4375 (pred 0.4375)
p=1.00: F_e = 0.2500 (pred 0.2500)

All assertions passed.
Code
# --- Visualization: the depolarizing channel contracts the Bloch ball ---
import numpy as np
import matplotlib.pyplot as plt

fig, ax = plt.subplots(1, 2, figsize=(9, 4))

# (a) equatorial slice of the Bloch ball, isotropically contracted by (1 - p)
theta = np.linspace(0, 2 * np.pi, 200)
for p_val, c in zip([0.0, 0.25, 0.5, 0.75, 1.0],
                    plt.cm.viridis(np.linspace(0.0, 0.85, 5))):
    r = 1 - p_val
    ax[0].plot(r * np.cos(theta), r * np.sin(theta), color=c, label=f"$p={p_val:.2f}$")
    if r > 0:
        ax[0].annotate("", xy=(r * np.cos(0.6), r * np.sin(0.6)), xytext=(0, 0),
                       arrowprops=dict(arrowstyle="->", color=c, lw=1.3))
ax[0].plot(0, 0, 'k.', ms=6)  # p = 1: everything collapses to the center (I/2)
ax[0].set_aspect('equal')
ax[0].set_xlim(-1.15, 1.15); ax[0].set_ylim(-1.15, 1.15)
ax[0].set_xlabel(r"$r_x$"); ax[0].set_ylabel(r"$r_z$")
ax[0].set_title(r"Bloch ball: $\vec r \mapsto (1-p)\,\vec r$")
ax[0].legend(fontsize=8, loc="upper right", framealpha=0.9)

# (b) entanglement fidelity F_e = 1 - 3p/4
p = np.linspace(0, 1, 100)
ax[1].plot(p, 1 - 3 * p / 4, color="C0", lw=2)
ax[1].axhline(0.25, ls=":", color="grey")
ax[1].set_xlabel(r"depolarizing strength $p$")
ax[1].set_ylabel(r"entanglement fidelity $F_e$")
ax[1].set_title(r"$F_e = 1 - 3p/4$")
ax[1].set_ylim(0, 1.02); ax[1].set_xlim(0, 1)
ax[1].annotate("floor $1/4$", xy=(1, 0.25), xytext=(0.5, 0.4), fontsize=9,
               arrowprops=dict(arrowstyle="->", color="grey"))

plt.tight_layout()
plt.show()


Takeaway

The depolarizing channel is unital and trace-preserving, with entanglement fidelity \(F_e = 1 - 3p/4\) that falls linearly in the noise strength. At full depolarization \(p = 1\) the fidelity reaches its floor of \(1/4\).

References

  • Nielsen and Chuang, Quantum Computation and Quantum Information, Cambridge University Press (2010).
  • Wilde, Quantum Information Theory, Cambridge University Press (2017).
  • Emerson et al., Symmetrized characterization of noisy quantum processes, Science (2007).
  • Płodzień, Information Scrambling, Quantum Chaos, and Haar-Random States, lecture notes (2025). arXiv:2511.14397