Qiskit's function CompleteMeasFitter
builds a calibration matrix in this way (2 qubit case):
- Everything is initialized in the state $|00\rangle$, which is the usual case for IBM hardware.
- For $|00\rangle$, it just measures the proportion of counts for $|00\rangle, |01\rangle, |10\rangle, |11\rangle$.
- For $|01\rangle$, it applies an $X$ gate to the second qubit, then measures the counts for all 4 states.
- For $|10\rangle$, it applies an $X$ gate to the first qubit, then measures the counts for all 4 states.
- For $|11\rangle$, it applies an $X$ gate to both qubits, then measures the counts for all 4 states.
In the $|00\rangle$ case the calibration matrix is picking up the measurement error.
In all other cases, the calibration matrix is picking up measurement error plus some gate error.
For states involving more 1s, the calibration matrix elements are less pure (there's more errors).
- Is there a consequence of this? E.g. the $|00\rangle$ counts will be corrected better than the others?
- Is there any way to mitigate this bias?