Write CSS codes section
This commit is contained in:
@@ -1359,7 +1359,8 @@ as we have to consider both the $X$ and $Z$ type operators that make up
|
||||
the stabilizers.
|
||||
Take for example the Steane code \cite[Eq.~10.83]{nielsen_quantum_2010}.
|
||||
We can describe it using the check matrix
|
||||
\begin{align*}
|
||||
\begin{align}
|
||||
\label{eq:steane}
|
||||
\left[
|
||||
\begin{array}{ccccccc|ccccccc}
|
||||
0 & 0 & 0 & 1 & 1 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
|
||||
@@ -1371,7 +1372,7 @@ We can describe it using the check matrix
|
||||
\end{array}
|
||||
\right]
|
||||
.%
|
||||
\end{align*}
|
||||
\end{align}
|
||||
We can understand each row as defining a stabilizer.
|
||||
The first $n$ columns correspond to $X$ operators acting on the
|
||||
corresponding physical qubit, the rest to the $Z$ operators.
|
||||
@@ -1405,13 +1406,43 @@ corresponding physical qubit, the rest to the $Z$ operators.
|
||||
|
||||
Stabilizer codes are especially practical to work with when they can
|
||||
handle $X$- and $Z$-type errors independently.
|
||||
We can then separate the stabilizer generators into some with only
|
||||
$Z$ operators and some with only $X$ operators.
|
||||
As $Z$ errors anti-commute with $X$ operators in the stabilizers and
|
||||
vice versa, this property translates into being able to split the
|
||||
stabilizers into some being made up of only $X$
|
||||
operators and some only of $Z$ operators.
|
||||
We call such codes \ac{css} codes.
|
||||
We can see this property in \autoref{eq:steane}, in the check matrix
|
||||
of the Steane code.
|
||||
|
||||
\indent\red{[Z-type operators for X type errors and vice versa ]} \\
|
||||
\indent\red{[Construction from two binary linear codes
|
||||
\cite[p.~452,469]{nielsen_quantum_2010}]} \\
|
||||
We can exploit this separate consideration of $X$ and $Z$ errors in
|
||||
the construction of \ac{css} codes.
|
||||
We can combine two binary linear codes $\mathcal{C}_1$ and
|
||||
$\mathcal{C}_2$, each responsible for correcting one type of error
|
||||
\cite[Sec.~10.5.6]{nielsen_quantum_2010}.
|
||||
Using the dual code of $\mathcal{C}_2$ \cite[Eq.~3.4]{ryan_channel_2009}
|
||||
\begin{align*}
|
||||
\mathcal{C}_2^\perp := \left\{ \bm{x}' \in \mathbb{F}^2 :
|
||||
\bm{x}' \bm{x}^\text{T} = 0 ~\forall \bm{x} \in \mathcal{C}_2 \right\}
|
||||
,%
|
||||
\end{align*}
|
||||
we can construct the check matrix as
|
||||
\begin{align*}
|
||||
\left[
|
||||
\begin{array}{c|c}
|
||||
\bm{H}(\mathcal{C}_2^\perp) & \bm{0} \\
|
||||
\bm{0} & \bm{H}(\mathcal{C}_1)
|
||||
\end{array}
|
||||
\right]
|
||||
.%
|
||||
\end{align*}
|
||||
In order to yield a valid stabilizer code, $\mathcal{C}_1$ and
|
||||
$\mathcal{C}_2$ must satisfy the commutativity condition
|
||||
\begin{align*}
|
||||
\bm{H}(\mathcal{C}_2^\perp) \bm{H}(\mathcal{C}_1)^\text{T} = \bm{0}
|
||||
.%
|
||||
\end{align*}
|
||||
We can ensure this is the case by choosing them such that
|
||||
$\mathcal{C}_2 \subset \mathcal{C}_1$.
|
||||
|
||||
%%%%%%%%%%%%%%%%
|
||||
\subsection{Quantum Low-Density Parity-Check Codes}
|
||||
|
||||
Reference in New Issue
Block a user