Suppose one wishes to communicate information using a noisy channel $N$ instead of an ideal channel $I$. The general framework to communicate reliably is

  1. Take $n$ copies of $N$.
  2. For some encoder $E_n$ and decoder $D_n$, we can send messages at a rate $R_n$ using $D_n\circ N^{\otimes n}\circ E_n$ with error $\varepsilon_n$.
  3. If it holds that $\lim_{n\rightarrow\infty}\varepsilon_n = 0$ and $\lim_{n\rightarrow\infty}R_n = R$, then we say we can communicate at the rate $R$ using the noisy channel.

On the other hand, the case of quantum circuits is quite different. Suppose we have an ideal unitary $U$ and a noisy circuit $\tilde{U}$ that tries to achieve this unitary. The usual error correction setting is quite different. The broad ideas there are

  1. Encode the each qubit of the input state to the circuit into a larger space e.g. 1 logical qubit into 9 physical qubits.
  2. Use fault-tolerant gates - i.e. the gate error should be correctable using the ideas in Step 1 after each gate's action.


Why are these two error-correction tasks analyzed in fundamentally different ways? In particular, QEC for circuits never looks at taking one-shot results for a single copy of the circuit and making asymptotic results for many i.i.d copies of that circuit - but why?


1 Answer 1


Error correction for circuits and channels works just the same (encode & decode from an error correcting code) provided the only thing that you are trying to correct for is what happens between encoding and decoding, i.e. that the circuits you use to apply the error correction are perfect.

Of course, if you're having to encode to protect a circuit against noise, why should you be able to assume that your error correction is perfect? This is where the techniques of fault tolerance come in and make everything so much more complicated, attempting to tolerate errors in the error correction.

On the other hand, in the case of channels, what we're really contrasting is the bit of the world that we can control (our labs), and which we might therefore assume is perfect, or at least much much better than the rest of the world which we have no control over.

  • $\begingroup$ Sorry for the late comment and thanks for the answer. So when consider coding with a noisy channel, are we implicitly assuming that our encoder and decoder are perfectly implemented? If so, isn't this also a case where one should think about fault tolerance? $\endgroup$ Jan 30, 2023 at 11:10
  • 1
    $\begingroup$ Yes, this is the premise of the noisy channel scenario. You could, and practically probably should, include a proper fault-tolerant treatment to handle the fact that your encoding and decoding actions will be noisy. But that depends on whether you're really studying the channel for a practical purpose, or a theoretical study. $\endgroup$
    – DaftWullie
    Jan 30, 2023 at 15:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.