summaryrefslogtreecommitdiff
path: root/source/know/concept/repetition-code/index.md
diff options
context:
space:
mode:
Diffstat (limited to 'source/know/concept/repetition-code/index.md')
-rw-r--r--source/know/concept/repetition-code/index.md103
1 files changed, 63 insertions, 40 deletions
diff --git a/source/know/concept/repetition-code/index.md b/source/know/concept/repetition-code/index.md
index 99ac630..678211e 100644
--- a/source/know/concept/repetition-code/index.md
+++ b/source/know/concept/repetition-code/index.md
@@ -27,6 +27,7 @@ albeit with some complications,
as discussed below.
+
## Bit flip code
Suppose that we want to detect errors in
@@ -76,9 +77,7 @@ $$\begin{aligned}
Such a transformation is easy to achieve with the following sequence
of [quantum gates](/know/concept/quantum-gate/):
-<a href="bit-flip-encode.png">
-<img src="bit-flip-encode.png" style="width:32%">
-</a>
+{% include image.html file="bit-flip-encode.png" width="32%" alt="Bit flip code encoder" %}
So, a little while after encoding the state $$\Ket{\psi}$$ like that,
a bit flip occurs on the 2nd qubit:
@@ -166,31 +165,61 @@ But by using both, we know exactly which qubit was flipped
thanks to the eigenvalues:
<table style="width:30%;margin:auto;text-align:center;">
- <tr>
- <th>Error</th>
- <th>$$ZZI$$</th>
- <th>$$IZZ$$</th>
- </tr>
- <tr>
- <td>$$I$$</td>
- <td>$$+1$$</td>
- <td>$$+1$$</td>
- </tr>
- <tr>
- <td>$$X_1$$</td>
- <td>$$-1$$</td>
- <td>$$+1$$</td>
- </tr>
- <tr>
- <td>$$X_2$$</td>
- <td>$$-1$$</td>
- <td>$$-1$$</td>
- </tr>
- <tr>
- <td>$$X_1$$</td>
- <td>$$+1$$</td>
- <td>$$-1$$</td>
- </tr>
+<tr>
+ <th>
+ Error
+ </th>
+ <th markdown="1">
+ $$ZZI$$
+ </th>
+ <th markdown="1">
+ $$IZZ$$
+ </th>
+</tr>
+<tr>
+ <td markdown="1">
+ $$I$$
+ </td>
+ <td markdown="1">
+ $$+1$$
+ </td>
+ <td markdown="1">
+ $$+1$$
+ </td>
+</tr>
+<tr>
+ <td markdown="1">
+ $$X_1$$
+ </td>
+ <td markdown="1">
+ $$-1$$
+ </td>
+ <td markdown="1">
+ $$+1$$
+ </td>
+</tr>
+<tr>
+ <td markdown="1">
+ $$X_2$$
+ </td>
+ <td markdown="1">
+ $$-1$$
+ </td>
+ <td markdown="1">
+ $$-1$$
+ </td>
+</tr>
+<tr>
+ <td markdown="1">
+ $$X_1$$
+ </td>
+ <td markdown="1">
+ $$+1$$
+ </td>
+ <td markdown="1">
+ $$-1$$
+ </td>
+</tr>
</table>
Where e.g. $$X_3$$ denotes that the 3rd qubit was flipped.
@@ -202,9 +231,7 @@ without affecting $$\ket{\overline{\psi}}$$ itself,
by applying $$\mathrm{CNOT}$$s to some ancillary qubits
and then measuring those:
-<a href="bit-flip-detect.png">
-<img src="bit-flip-detect.png" style="width:62%">
-</a>
+{% include image.html file="bit-flip-detect.png" width="62%" alt="Bit flip code decoder" %}
The two measurements, respectively representing $$ZZI$$ and $$IZZ$$,
yield $$\Ket{1}$$ if a bit flip definitely occurred,
@@ -213,6 +240,7 @@ There is no entanglement,
so the input is untouched.
+
## Phase flip code
The above system protects us against all single-qubit bit flips.
@@ -254,23 +282,20 @@ $$\begin{aligned}
= \alpha \Ket{+\!+\!+} + \beta \Ket{-\!-\!-}
\end{aligned}$$
-<a href="phase-flip-encode.png">
-<img src="phase-flip-encode.png" style="width:40%">
-</a>
+{% include image.html file="phase-flip-encode.png" width="40%" alt="Phase flip code encoder" %}
A phase flip along the $$Z$$-axis
corresponds to a bit flip along the $$X$$-axis $$\Ket{+} \to \Ket{-}$$.
In this case, the stabilizers are $$XXI$$ and $$IXX$$,
and the error detection circuit is as follows:
-<a href="phase-flip-detect.png">
-<img src="phase-flip-detect.png" style="width:70%">
-</a>
+{% include image.html file="phase-flip-detect.png" width="70%" alt="Phase flip code decoder" %}
This system protects us against all single-qubit phase flips,
but not against bit flips.
+
## Shor code
What kind of repetition code would we need
@@ -307,9 +332,7 @@ This encoding is achieved by the following quantum circuit,
which simply consists of the phase flip encoder,
followed by 3 copies of the bit flip encoder:
-<a href="shor-code-encode.png">
-<img src="shor-code-encode.png" style="width:55%">
-</a>
+{% include image.html file="shor-code-encode.png" width="55%" alt="Shor code encoder" %}
We thus use 9 physical qubits to store 1 logical qubit.
Fortunately, more efficient schemes exist.