PauliChannel

From QETLAB
Jump to navigation Jump to search
PauliChannel
Generates a Pauli channel

Other toolboxes required none
Related functions Pauli
Function category Superoperators

PauliChannel is a function that generates the Choi matrix of a Pauli channel (either a random Pauli channel on a specified number of qubits, or a specific Pauli channel requested by the user). The output of this function is sparse.

Syntax

  • PHI = PauliChannel(P)

Argument descriptions

  • P: Either a positive integer, indicating that the user wants a randomly-generated P-qubit Pauli channel. Otherwise, P should be a probability vector of length $4^q$ for some integer $q \geq 1$, whose entries specify the weights of the Pauli operators in the channel's Kraus decomposition. More specifically, the weight of the $j$-th Pauli operator (in lexicographical order) in the Kraus operator representation of this channel will be $\sqrt{P(j)}$.

Examples

A random 1-qubit Pauli channel

The following code returns the Choi matrix a randomly-generated 1-qubit Pauli channel:

>> Phi = full(PauliChannel(1)) % generate the random Pauli channel

Phi =

    0.5737         0         0    0.1346
         0    0.4263    0.3196         0
         0    0.3196    0.4263         0
    0.1346         0         0    0.5737

>> celldisp(KrausOperators(Phi)) % look at its Kraus operators
 
ans{1} =
 
         0    0.6107
    0.6107         0

 
 
ans{2} =
 
    0.5951         0
         0    0.5951

 
 
ans{3} =
 
    0.4686         0
         0   -0.4686

 
 
ans{4} =
 
         0    0.2310
   -0.2310         0

A specific Pauli channel

The following code generates a Pauli channel with Kraus operators $\left\{\tfrac{1}{\sqrt{15}}I,\tfrac{2}{\sqrt{15}}X,\tfrac{3}{\sqrt{15}}Y,\tfrac{4}{\sqrt{15}}Z\right\}$, where $I,X,Y,Z$ are the usual Pauli operators:

>> Phi = full(PauliChannel([1,2,3,4]/15))

Phi =

    0.3333         0         0   -0.2000
         0    0.3333   -0.0667         0
         0   -0.0667    0.3333         0
   -0.2000         0         0    0.3333

>> celldisp(KrausOperators(Phi)) % look at its Kraus operators
 
ans{1} =
 
   -0.5164    0.0000
         0    0.5164

 
 
ans{2} =
 
   -0.0000    0.4472
   -0.4472   -0.0000

 
 
ans{3} =
 
   -0.0000    0.3651
    0.3651   -0.0000

 
 
ans{4} =
 
   -0.2582   -0.0000
         0   -0.2582

Source code

Click here to view this function's source code on github.