Skip to main contentIBM Quantum Documentation
You are viewing the API reference for an old version of Qiskit SDK. Switch to latest version


process_fidelity(channel, target=None, require_cp=True, require_tp=True)

GitHub(opens in a new tab)

Return the process fidelity of a noisy quantum channel.

The process fidelity Fpro(E,F)F_{\text{pro}}(\mathcal{E}, \mathcal{F}) between two quantum channels E,F\mathcal{E}, \mathcal{F} is given by

Fpro(E,F)=F(ρE,ρF)F_{\text{pro}}(\mathcal{E}, \mathcal{F}) = F(\rho_{\mathcal{E}}, \rho_{\mathcal{F}})

where FF is the state_fidelity(), ρE=ΛE/d\rho_{\mathcal{E}} = \Lambda_{\mathcal{E}} / d is the normalized Choi matrix for the channel E\mathcal{E}, and dd is the input dimension of E\mathcal{E}.

When the target channel is unitary this is equivalent to

Fpro(E,U)=Tr[SUSE]d2F_{\text{pro}}(\mathcal{E}, U) = \frac{Tr[S_U^\dagger S_{\mathcal{E}}]}{d^2}

where SE,SUS_{\mathcal{E}}, S_{U} are the SuperOp matrices for the input quantum channel E\mathcal{E} and target unitary UU respectively, and dd is the input dimension of the channel.


  • channel (Operator or QuantumChannel) – input quantum channel.
  • target (Operator or QuantumChannel or None) – target quantum channel. If None target is the identity operator [Default: None].
  • require_cp (bool) – check if input and target channels are completely-positive and if non-CP log warning containing negative eigenvalues of Choi-matrix [Default: True].
  • require_tp (bool) – check if input and target channels are trace-preserving and if non-TP log warning containing negative eigenvalues of partial Choi-matrix Trout[E]ITr_{\text{out}}[\mathcal{E}] - I [Default: True].


The process fidelity FproF_{\text{pro}}.

Return type



QiskitError – if the channel and target do not have the same dimensions.

Was this page helpful?
Report a bug or request content on GitHub.