Of course, classical information is binary, so the only errors that can occur are bit flips: a 0 becomes a 1, or a 1 becomes a 0. But qubits are more complex, having both a value (0 or 1) that can be in superposition and a phase that can be any angle. How can we correct errors?
Measuring a state, as we have seen, can cause a superposition state to collapse, either completely or partially. We will use the effect to force all errors to behave like either a bit flip (a \(\pi\) rotation about the \(X\) axis), or a phase flip (a \(\pi\) phase rotation about the \(Z\) axis).
To describe a quantum error correcting code, often we use the notation \([[n,k,d]]\), where \(n\) is the number of physical qubits in a block, \(k\) is the number of logical qubits that the block encodes, and \(d\) is the code distance.
In current classical computer systems, error correcting codes are used for storing data on hard disks or transmitting data across a network, but it’s uncommon to keep the data encoded in an error correction code while performing a computation. In quantum systems, however, the error rates are so high that we want to keep the data encoded while performing the computation. Managing the errors as we operate on more than one logical qubit in a block is tricky, so codes encoding only a single logical qubit (\(k = 1\)) are common, with an important exception we will discuss later.
Error correcting codes depend on the ability to extract information about errors. Next, we will delve into the mechanism used in quantum codes.
© Keio University