A quantum convolutional stabilizer code acts on a Hilbert space H , {\displaystyle {\mathcal {H}},} which is a countably infinite tensor product of two-dimensional qubit Hilbert spaces indexed over integers ≥ 0 { H i } i ∈ Z + {\displaystyle \left\{{\mathcal {H}}_{i}\right\}_{i\in \mathbb {Z} ^{+}}} :
A sequence A {\displaystyle \mathbf {A} } of Pauli matrices { A i } i ∈ Z + {\displaystyle \left\{A_{i}\right\}_{i\in \mathbb {Z} ^{+}}} , where
can act on states in H {\displaystyle {\mathcal {H}}} . Let Π Z + {\displaystyle \Pi ^{\mathbb {Z} ^{+}}} denote the set of all Pauli sequences. The support supp ( A ) {\displaystyle \left(\mathbf {A} \right)} of a Pauli sequence A {\displaystyle \mathbf {A} } is the set of indices of the entries in A {\displaystyle \mathbf {A} } that are not equal to the identity. The weight of a sequence A {\displaystyle \mathbf {A} } is the size | supp ( A ) | {\displaystyle \left\vert {\text{supp}}\left(\mathbf {A} \right)\right\vert } of its support. The delay del ( A ) {\displaystyle \left(\mathbf {A} \right)} of a sequence A {\displaystyle \mathbf {A} } is the smallest index for an entry not equal to the identity. The degree deg ( A ) {\displaystyle \left(\mathbf {A} \right)} of a sequence A {\displaystyle \mathbf {A} } is the largest index for an entry not equal to the identity. E.g., the following Pauli sequence
has support { 1 , 3 , 4 } {\displaystyle \left\{1,3,4\right\}} , weight three, delay one, and degree four. A sequence has finite support if its weight is finite. Let F ( Π Z + ) {\displaystyle F(\Pi ^{\mathbb {Z} ^{+}})} denote the set of Pauli sequences with finite support. The following definition for a quantum convolutional code utilizes the set F ( Π Z + ) {\displaystyle F(\Pi ^{\mathbb {Z} ^{+}})} in its description.
A rate k / n {\displaystyle k/n} -convolutional stabilizer code with 0 ≤ k ≤ n {\displaystyle 0\leq k\leq n} is a commuting set G {\displaystyle {\mathcal {G}}} of all n {\displaystyle n} -qubit shifts of a basic generator set G 0 {\displaystyle {\mathcal {G}}_{0}} . The basic generator set G 0 {\displaystyle {\mathcal {G}}_{0}} has n − k {\displaystyle n-k} Pauli sequences of finite support:
The constraint length ν {\displaystyle \nu } of the code is the maximum degree of the generators in G 0 {\displaystyle {\mathcal {G}}_{0}} . A frame of the code consists of n {\displaystyle n} qubits.
A quantum convolutional code admits an equivalent definition in terms of the delay transform or D {\displaystyle D} -transform. The D {\displaystyle D} -transform captures shifts of the basic generator set G 0 {\displaystyle {\mathcal {G}}_{0}} . Let us define the n {\displaystyle n} -qubit delay operator D {\displaystyle D} acting on any Pauli sequence A ∈ Π Z + {\displaystyle \mathbf {A} \in \Pi ^{\mathbb {Z} ^{+}}} as follows:
We can write j {\displaystyle j} repeated applications of D {\displaystyle D} as a power of D {\displaystyle D} :
Let D j ( G 0 ) {\displaystyle D^{j}\left({\mathcal {G}}_{0}\right)} be the set of shifts of elements of G 0 {\displaystyle {\mathcal {G}}_{0}} by j {\displaystyle j} . Then the full stabilizer G {\displaystyle {\mathcal {G}}} for the convolutional stabilizer code is
The operation of a convolutional stabilizer code is as follows. The protocol begins with the sender encoding a stream of qubits with an online encoding circuit such as that given in (Grassl and Roetteler 2006). The encoding circuit is online if it acts on a few blocks of qubits at a time. The sender transmits a set of qubits as soon as the first unitary finishes processing them. The receiver measures all the generators in G {\displaystyle {\mathcal {G}}} and corrects for errors as he receives the online encoded qubits. He finally decodes the encoded qubits with a decoding circuit. The qubits decoded from this convolutional procedure should be error free and ready for quantum computation at the receiving end.
A finite-depth circuit maps a Pauli sequence with finite weight to one with finite weight (Ollivier and Tillich 2004). It does not map a Pauli sequence with finite weight to one with infinite weight. This property is important because we do not want the decoding circuit to propagate uncorrected errors into the information qubit stream (Johannesson and Zigangirov 1999). A finite-depth decoding circuit corresponding to the stabilizer G {\displaystyle {\mathcal {G}}} exists by the algorithm given in (Grassl and Roetteler 2006).
Forney et al. provided an example of a rate-1/3 quantum convolutional code by importing a particular classical quaternary convolutional code (Forney and Guha 2005). Grassl and Roetteler determined a noncatastrophic encoding circuit for Forney et al.'s rate-1/3 quantum convolutional code (Grassl and Roetteler 2006). The basic stabilizer and its first shift are as follows:
The code consists of all three-qubit shifts of the above generators. The vertical bars are a visual aid to illustrate the three-qubit shifts of the basic generators. The code can correct for an arbitrary single-qubit error in every other frame.
Wilde and Brun have integrated the theory of entanglement-assisted stabilizer codes and quantum convolutional codes in a series of articles (Wilde and Brun 2007a, 2007b, 2008, 2009) to form a theory of entanglement-assisted quantum convolutional coding. This theory supposes that a sender and receiver share noiseless bipartite entanglement that they can exploit for protecting a stream of quantum information.
(Wilde 2009), building on work of (Ollivier and Tillich 2004) and (Grassl and Roetteler 2006), also showed how to encode these codes with quantum shift register circuits, a natural extension of the theory of classical shift register circuits.