quantum error correcting code
1. bit flip correcting code
- A code that can correct for one bit flip \(X\) (see quantum gates)
- Encode:
\[ \ket{0} \rightarrow \ket{000} \] and \[ \ket{1} \rightarrow \ket{111} \] So, \(\alpha\ket{0} + \beta\ket{1} = \alpha\ket{000} + \beta\ket{111}\). To determine the error, project onto to one of these matrices \[\begin{align*} \ket{000}\bra{000} + \ket{111}\bra{111}\\ \ket{100}\bra{100} + \ket{011}\bra{011}\\ \ket{010}\bra{010} + \ket{101}\bra{101}\\ \ket{001}\bra{001} + \ket{110}\bra{110}\\ \end{align*}\] Measuring will tell us which one of these matrices the state gets projected onto. Critically, it will not actually change the state. So, if one bit flip error occurs, we will know where it is located, and can apply \(X\) to correct it.
2. phase flip correcting code
- Note that a phase flip on \(\ket{+}\) results in \(\ket{-}\) and vice versa.
- Encode:
\[ \ket{0} \rightarrow \ket{+++} \] and \[ \ket{1} \rightarrow \ket{---} \] Then, a phase flip can be detected and corrected in the same way
3. shor code
- uses 9 qubits to encode one qubit. can correct one arbitrary error
- encode
\[ \ket{0} \rightarrow \frac{1}{2\sqrt{2}}(\ket{000} + \ket{111})(\ket{000} + \ket{111})(\ket{000} + \ket{111}) \] and \[ \ket{1} \rightarrow \frac{1}{2\sqrt{2}}(\ket{000} - \ket{111})(\ket{000} - \ket{111})(\ket{000} - \ket{111}) \] Within each block, we can correct one bit flip error. Among the three blocks, we can correct one phase flip error.