You are on page 1of 146

Polarization Encoding Decoding Construction Performance

Polar Coding Tutorial

Erdal Arıkan

Electrical-Electronics Engineering Department


Bilkent University
Ankara, Turkey

Jan. 15, 2015


Simons Institute
UC Berkeley
Polarization Encoding Decoding Construction Performance

The channel

Let W : X → Y be a binary-input discrete memoryless channel

X W Y

◮ input alphabet: X = {0, 1},


◮ output alphabet: Y,
◮ transition probabilities:

W (y |x), x ∈ X,y ∈ Y
Polarization Encoding Decoding Construction Performance

The channel

Let W : X → Y be a binary-input discrete memoryless channel

X W Y

◮ input alphabet: X = {0, 1},


◮ output alphabet: Y,
◮ transition probabilities:

W (y |x), x ∈ X,y ∈ Y
Polarization Encoding Decoding Construction Performance

The channel

Let W : X → Y be a binary-input discrete memoryless channel

X W Y

◮ input alphabet: X = {0, 1},


◮ output alphabet: Y,
◮ transition probabilities:

W (y |x), x ∈ X,y ∈ Y
Polarization Encoding Decoding Construction Performance

The channel

Let W : X → Y be a binary-input discrete memoryless channel

X W Y

◮ input alphabet: X = {0, 1},


◮ output alphabet: Y,
◮ transition probabilities:

W (y |x), x ∈ X,y ∈ Y
Polarization Encoding Decoding Construction Performance

Symmetry assumption

Assume that the channel has “input-output symmetry.”


Polarization Encoding Decoding Construction Performance

Symmetry assumption

Assume that the channel has “input-output symmetry.”

Examples:

BSC(ǫ)
1−ǫ
0 0
ǫ

ǫ
1 1
1−ǫ
Polarization Encoding Decoding Construction Performance

Symmetry assumption

Assume that the channel has “input-output symmetry.”

Examples:

BSC(ǫ) BEC(ǫ)
1−ǫ 1−ǫ
0 0 0 0
ǫ ǫ
?
ǫ ǫ
1 1 1 1
1−ǫ 1−ǫ
Polarization Encoding Decoding Construction Performance

Capacity

For channels with input-output symmetry, the capacity is given by



C (W ) = I (X ; Y ), with X ∼ unif. {0, 1}
Polarization Encoding Decoding Construction Performance

Capacity

For channels with input-output symmetry, the capacity is given by



C (W ) = I (X ; Y ), with X ∼ unif. {0, 1}

Use base-2 logarithms:

0 ≤ C (W ) ≤ 1
Polarization Encoding Decoding Construction Performance

The main idea

◮ Channel coding problem trivial for two types of channels


◮ Perfect: C (W ) = 1
◮ Useless: C (W ) = 0
◮ Transform ordinary W into such extreme channels
Polarization Encoding Decoding Construction Performance

The main idea

◮ Channel coding problem trivial for two types of channels


◮ Perfect: C (W ) = 1
◮ Useless: C (W ) = 0
◮ Transform ordinary W into such extreme channels
Polarization Encoding Decoding Construction Performance

The main idea

◮ Channel coding problem trivial for two types of channels


◮ Perfect: C (W ) = 1
◮ Useless: C (W ) = 0
◮ Transform ordinary W into such extreme channels
Polarization Encoding Decoding Construction Performance

The main idea

◮ Channel coding problem trivial for two types of channels


◮ Perfect: C (W ) = 1
◮ Useless: C (W ) = 0
◮ Transform ordinary W into such extreme channels
Polarization Encoding Decoding Construction Performance

The method: aggregate and redistribute capacity

Original channels
(uniform)
W

W
Polarization Encoding Decoding Construction Performance

The method: aggregate and redistribute capacity

Original channels
(uniform)
W
Vector
b
channel
b

Wvec
b

Combine
Polarization Encoding Decoding Construction Performance

The method: aggregate and redistribute capacity

Original channels New channels


(uniform) (polarized)
W W1
Vector
b
channel b

b b

Wvec
b b

W WN−1

W WN

Combine Split
Polarization Encoding Decoding Construction Performance

Combining

◮ Begin with N copies of W , X1 Y1


W
◮ use a 1-1 mapping
X2 Y2
GN : {0, 1}N → {0, 1}N W

◮ to create a vector channel

Wvec : U N → Y N XN YN
W
Polarization Encoding Decoding Construction Performance

Combining

◮ Begin with N copies of W , U1 X1 Y1


W
◮ use a 1-1 mapping
U2 X2 Y2
GN : {0, 1}N → {0, 1}N W
GN
◮ to create a vector channel

Wvec : U N → Y N UN XN YN
W
Polarization Encoding Decoding Construction Performance

Combining

◮ Begin with N copies of W , U1 X1 Y1


W
◮ use a 1-1 mapping
U2 X2 Y2
GN : {0, 1}N → {0, 1}N W
GN
◮ to create a vector channel

Wvec : U N → Y N UN XN YN
W

Wvec
Polarization Encoding Decoding Construction Performance

Conservation of capacity

Combining operation is lossless:


◮ Take U1 , . . . , UN i.i.d. unif. {0, 1} U1 X1 Y1
◮ then, X1 , . . . , XN i.i.d. unif. {0, 1} W
◮ and U2 X2 Y2
W
C (Wvec ) = I (U N ; Y N ) GN
= I (X N ; Y N )
= NC (W ) UN XN YN
W

Wvec
Polarization Encoding Decoding Construction Performance

Conservation of capacity

Combining operation is lossless:


◮ Take U1 , . . . , UN i.i.d. unif. {0, 1} U1 X1 Y1
◮ then, X1 , . . . , XN i.i.d. unif. {0, 1} W
◮ and U2 X2 Y2
W
C (Wvec ) = I (U N ; Y N ) GN
= I (X N ; Y N )
= NC (W ) UN XN YN
W

Wvec
Polarization Encoding Decoding Construction Performance

Conservation of capacity

Combining operation is lossless:


◮ Take U1 , . . . , UN i.i.d. unif. {0, 1} U1 X1 Y1
◮ then, X1 , . . . , XN i.i.d. unif. {0, 1} W
◮ and U2 X2 Y2
W
C (Wvec ) = I (U N ; Y N ) GN
= I (X N ; Y N )
= NC (W ) UN XN YN
W

Wvec
Polarization Encoding Decoding Construction Performance

Splitting

C (Wvec ) = I (U N ; Y N )
U1 Y1

Ui−1
Ui Wvec Yi
Ui+1

UN YN
Polarization Encoding Decoding Construction Performance

Splitting

C (Wvec ) = I (U N ; Y N )
U1 Y1
N
X
N i−1
= I (Ui ; Y , U )
i=1

Ui−1
Ui Wvec Yi
Ui+1

UN YN
Polarization Encoding Decoding Construction Performance

Splitting U1

Ui−1
C (Wvec ) = I (U N ; Y N )
U1 Y1
N
X
N i−1
= I (Ui ; Y , U )
i=1

Ui−1
Ui Wvec Yi
Ui+1
Define bit-channels

Wi : Ui → (Y N , U i−1 )
UN YN

Wi
Polarization Encoding Decoding Construction Performance

Splitting U1

Ui−1
C (Wvec ) = I (U N ; Y N )
U1 Y1
N
X
N i−1
= I (Ui ; Y , U )
i=1
N
X Ui−1
= C (Wi )
i=1 Ui Wvec Yi
Ui+1
Define bit-channels

Wi : Ui → (Y N , U i−1 )
UN YN

Wi
Polarization Encoding Decoding Construction Performance

Polarization is commonplace

◮ Polarization is the rule not the


exception U1 X1 Y1
◮ A random permutation W
U2 X2 Y2
GN : {0, 1}N → {0, 1}N W
GN
is a good polarizer with high
probability
UN XN YN
◮ Equivalent to Shannon’s random W
coding approach
Polarization Encoding Decoding Construction Performance

Polarization is commonplace

◮ Polarization is the rule not the


exception U1 X1 Y1
◮ A random permutation W
U2 X2 Y2
GN : {0, 1}N → {0, 1}N W
GN
is a good polarizer with high
probability
UN XN YN
◮ Equivalent to Shannon’s random W
coding approach
Polarization Encoding Decoding Construction Performance

Polarization is commonplace

◮ Polarization is the rule not the


exception U1 X1 Y1
◮ A random permutation W
U2 X2 Y2
GN : {0, 1}N → {0, 1}N W
GN
is a good polarizer with high
probability
UN XN YN
◮ Equivalent to Shannon’s random W
coding approach
Polarization Encoding Decoding Construction Performance

Random polarizers: stepwise, isotropic


1

0.9

0.8

0.7

0.6
Capacity

0.5

0.4

0.3

0.2

0.1

0
5 10 15 20 25 30
Bit channel index
Polarization Encoding Decoding Construction Performance

Random polarizers: stepwise, isotropic


1

0.9

0.8

0.7

0.6
Capacity

0.5

0.4

0.3

0.2

0.1

0
5 10 15 20 25 30
Bit channel index

Isotropy: any redistribution order is as good as any other.


Polarization Encoding Decoding Construction Performance

The complexity issue

◮ Random polarizers lack structure, too complex to implement


◮ Need a low-complexity polarizer
◮ May sacrifice stepwise, isotropic properties of random
polarizers in return for less complexity
Polarization Encoding Decoding Construction Performance

The complexity issue

◮ Random polarizers lack structure, too complex to implement


◮ Need a low-complexity polarizer
◮ May sacrifice stepwise, isotropic properties of random
polarizers in return for less complexity
Polarization Encoding Decoding Construction Performance

The complexity issue

◮ Random polarizers lack structure, too complex to implement


◮ Need a low-complexity polarizer
◮ May sacrifice stepwise, isotropic properties of random
polarizers in return for less complexity
Polarization Encoding Decoding Construction Performance

Basic module for a low-complexity scheme

Combine two copies of W

X1 Y1
W

X2 Y2
W
Polarization Encoding Decoding Construction Performance

Basic module for a low-complexity scheme

Combine two copies of W

U1 X1 Y1
+ W

U2 X2 Y2
W

G2
Polarization Encoding Decoding Construction Performance

Basic module for a low-complexity scheme

Combine two copies of W

U1 X1 Y1
+ W

U2 X2 Y2
W

G2
and split to create two bit-channels

W1 : U1 → (Y1 , Y2 )
W2 : U2 → (Y1 , Y2 , U1 )
Polarization Encoding Decoding Construction Performance

The first bit-channel W1

W1 : U1 → (Y1 , Y2 )

U1 Y1
+ W

random U2 Y2
W
Polarization Encoding Decoding Construction Performance

The first bit-channel W1

W1 : U1 → (Y1 , Y2 )

U1 Y1
+ W

random U2 Y2
W

C (W1 ) = I (U1 ; Y1 , Y2 )
Polarization Encoding Decoding Construction Performance

The second bit-channel W2

W2 : U2 → (Y1 , Y2 , U1 )

U1 Y1
+ W

U2 Y2
W
Polarization Encoding Decoding Construction Performance

The second bit-channel W2

W2 : U2 → (Y1 , Y2 , U1 )

U1 Y1
+ W

U2 Y2
W

C (W2 ) = I (U2 ; Y1 , Y2 , U1 )
Polarization Encoding Decoding Construction Performance

Capacity conserved but redistributed unevenly


U1 X1 Y1
+ W

U2 X2 Y2
W

◮ Conservation:

C (W1 ) + C (W2 ) = 2C (W )

◮ Extremization:

C (W1 ) ≤ C (W ) ≤ C (W2 )

with equality iff C (W ) equals 0 or 1.


Polarization Encoding Decoding Construction Performance

Capacity conserved but redistributed unevenly


U1 X1 Y1
+ W

U2 X2 Y2
W

◮ Conservation:

C (W1 ) + C (W2 ) = 2C (W )

◮ Extremization:

C (W1 ) ≤ C (W ) ≤ C (W2 )

with equality iff C (W ) equals 0 or 1.


Polarization Encoding Decoding Construction Performance

Notation

The two channels created by the basic transform

(W , W ) → (W1 , W2 )

will be denoted also as

W − = W1 and W + = W2
Polarization Encoding Decoding Construction Performance

Notation

The two channels created by the basic transform

(W , W ) → (W1 , W2 )

will be denoted also as

W − = W1 and W + = W2

Likewise, we write W −− , W −+ for descendants of W − ; and W +− ,


W ++ for descendants of W + .
Polarization Encoding Decoding Construction Performance

For the size-4 construction


+ W

W
Polarization Encoding Decoding Construction Performance

... duplicate the basic transform


+ W

+ W

W
Polarization Encoding Decoding Construction Performance

... obtain a pair of W − and W + each


W−

W+

W−

W+
Polarization Encoding Decoding Construction Performance

... apply basic transform on each pair


+ W−

+ W+

W−

W+
Polarization Encoding Decoding Construction Performance

... decode in the indicated order


U1 + W−

U3 + W+

U2 W−

U4 W+
Polarization Encoding Decoding Construction Performance

... obtain the four new bit-channels


U1 W −−

U3 W +−

U2 W −+

U4 W ++
Polarization Encoding Decoding Construction Performance

Overall size-4 construction


X1 Y1
U1 + + W

X3 Y3
U3 + W

X2 Y2
U2 + W

X4 Y4
U4 W
Polarization Encoding Decoding Construction Performance

“Rewire” for standard-form size-4 construction


X1 Y1
U1 + + W

X2 Y2
U2 + W

X3 Y3
U3 + W

X4 Y4
U4 W
Polarization Encoding Decoding Construction Performance

Size 8 construction
U1 X1 Y1
+ + + W

U2 X2 Y2
+ + W

U3 X3 Y3
+ + W

U4 X4 Y4
+ W

U5 X5 Y5
+ + W

U6 X6 Y6
+ W

U7 X7 Y7
+ W

U8 X8 Y8
W
Polarization Encoding Decoding Construction Performance

Demonstration of polarization

Polarization is easy to analyze when W is a BEC.

W
If W is a BEC(ǫ), then so are W −
and W + , with erasure probabili- 1−ǫ
ties 0 0
∆ ǫ
ǫ− = 2ǫ − ǫ2
?
and ǫ

ǫ+ = ǫ2 1 1
1−ǫ
respectively.
Polarization Encoding Decoding Construction Performance

Demonstration of polarization

Polarization is easy to analyze when W is a BEC.

If W is a BEC(ǫ), then so are W − W−


and W + , with erasure probabili- 1 − ǫ−
ties 0 0

ǫ− = 2ǫ − ǫ2 ǫ−
?
and ǫ−

ǫ+ = ǫ2 1 1
1 − ǫ−
respectively.
Polarization Encoding Decoding Construction Performance

Demonstration of polarization

Polarization is easy to analyze when W is a BEC.

If W is a BEC(ǫ), then so are W − W+


and W + , with erasure probabili- 1 − ǫ+
ties 0 0

ǫ− = 2ǫ − ǫ2 ǫ+
?
and ǫ+

ǫ+ = ǫ2 1 1
1 − ǫ+
respectively.
Polarization Encoding Decoding Construction Performance

Polarization for BEC( 21 ): N = 16


Capacity of bit channels
1

0.9

0.8

0.7

0.6
Capacity

0.5

0.4

0.3

0.2

0.1

N=16
0
2 4 6 8 10 12 14 16
Bit channel index
Polarization Encoding Decoding Construction Performance

Polarization for BEC( 21 ): N = 32


Capacity of bit channels
1

0.9

0.8

0.7

0.6
Capacity

0.5

0.4

0.3

0.2

0.1

N=32
0
5 10 15 20 25 30
Bit channel index
Polarization Encoding Decoding Construction Performance

Polarization for BEC( 21 ): N = 64


Capacity of bit channels
1

0.9

0.8

0.7

0.6
Capacity

0.5

0.4

0.3

0.2

0.1

N=64
0
10 20 30 40 50 60
Bit channel index
Polarization Encoding Decoding Construction Performance

Polarization for BEC( 21 ): N = 128


Capacity of bit channels
1

0.9

0.8

0.7

0.6
Capacity

0.5

0.4

0.3

0.2

0.1

N=128
0
20 40 60 80 100 120
Bit channel index
Polarization Encoding Decoding Construction Performance

Polarization for BEC( 21 ): N = 256


Capacity of bit channels
1

0.9

0.8

0.7

0.6
Capacity

0.5

0.4

0.3

0.2

0.1

N=256
0
50 100 150 200 250
Bit channel index
Polarization Encoding Decoding Construction Performance

Polarization for BEC( 21 ): N = 512


Capacity of bit channels
1

0.9

0.8

0.7

0.6
Capacity

0.5

0.4

0.3

0.2

0.1

N=512
0
50 100 150 200 250 300 350 400 450 500
Bit channel index
Polarization Encoding Decoding Construction Performance

Polarization for BEC( 21 ): N = 1024


Capacity of bit channels
1

0.9

0.8

0.7

0.6
Capacity

0.5

0.4

0.3

0.2

0.1

N=1024
0
100 200 300 400 500 600 700 800 900 1000
Bit channel index
Polarization Encoding Decoding Construction Performance

Polarization martingale

C (W )

0
Polarization Encoding Decoding Construction Performance

Polarization martingale

C (W2 )

C (W )

C (W1 )

0 1
Polarization Encoding Decoding Construction Performance

Polarization martingale

1
C (W ++ )

C (W2 )

C (W +− )
C (W )
C (W −+ )

C (W1 )

C (W −− )
0 1 2
Polarization Encoding Decoding Construction Performance

Polarization martingale

1
C (W ++ )

C (W2 )

C (W +− )
C (W )
C (W −+ )

C (W1 )

C (W −− )
0 1 2
Polarization Encoding Decoding Construction Performance

Polarization martingale

1
C (W ++ )

C (W2 )

C (W +− )
C (W )
C (W −+ )

C (W1 )

C (W −− )
0 1 2 3
Polarization Encoding Decoding Construction Performance

Polarization martingale

1
C (W ++ )

C (W2 )

C (W +− )
C (W )
C (W −+ )

C (W1 )

C (W −− )
0 1 2 3 4
Polarization Encoding Decoding Construction Performance

Polarization martingale

1
C (W ++ )

C (W2 )

C (W +− )
C (W )
C (W −+ )

C (W1 )

C (W −− )
0 1 2 3 4 5
Polarization Encoding Decoding Construction Performance

Polarization martingale

1
C (W ++ )

C (W2 )

C (W +− )
C (W )
C (W −+ )

C (W1 )

C (W −− )
0 1 2 3 4 5 6
Polarization Encoding Decoding Construction Performance

Polarization martingale

1
C (W ++ )

C (W2 )

C (W +− )
C (W )
C (W −+ )

C (W1 )

C (W −− )
0 1 2 3 4 5 6 7
Polarization Encoding Decoding Construction Performance

Polarization martingale

1
C (W ++ )

C (W2 )

C (W +− )
C (W )
C (W −+ )

C (W1 )

C (W −− )
0 1 2 3 4 5 6 7 8
Polarization Encoding Decoding Construction Performance

1
Theorem (Polarization, A. 2007) 1−δ
The bit-channel capacities {C (Wi )} polarize: for any
δ ∈ (0, 1), as the construction size N grows
 
no. channels with C (Wi ) > 1 − δ
−→ C (W )
N

and
 
no. channels with C (Wi ) < δ
−→ 1 − C (W )
N

Theorem (Rate of polarization, √


A. and Telatar (2008)) δ
Above theorem holds with δ ≈ 2− N . 0
Polarization Encoding Decoding Construction Performance

1
Theorem (Polarization, A. 2007) 1−δ
The bit-channel capacities {C (Wi )} polarize: for any
δ ∈ (0, 1), as the construction size N grows
 
no. channels with C (Wi ) > 1 − δ
−→ C (W )
N

and
 
no. channels with C (Wi ) < δ
−→ 1 − C (W )
N

Theorem (Rate of polarization, √


A. and Telatar (2008)) δ
Above theorem holds with δ ≈ 2− N . 0
Polarization Encoding Decoding Construction Performance

Polar code example: W = BEC( 12 ), N = 8, rate 1/2


I (Wi )

Y1
0.0039 U1 + + + W

Y2
0.1211 U2 + + W

Y3
0.1914 U3 + + W

Y4
0.6836 U4 + W

Y5
0.3164 U5 + + W

Y6
0.8086 U6 + W

Y7
0.8789 U7 + W

Y8
0.9961 U8 W
Polarization Encoding Decoding Construction Performance

Polar code example: W = BEC( 12 ), N = 8, rate 1/2


I (Wi ) Rank

Y1
0.0039 8 U1 + + + W

Y2
0.1211 7 U2 + + W

Y3
0.1914 6 U3 + + W

Y4
0.6836 4 U4 + W

Y5
0.3164 5 U5 + + W

Y6
0.8086 3 U6 + W

Y7
0.8789 2 U7 + W

Y8
0.9961 1 U8 W
Polarization Encoding Decoding Construction Performance

Polar code example: W = BEC( 12 ), N = 8, rate 1/2


I (Wi ) Rank

Y1
0.0039 8 U1 + + + W

Y2
0.1211 7 U2 + + W

Y3
0.1914 6 U3 + + W

Y4
0.6836 4 U4 + W

Y5
0.3164 5 U5 + + W

Y6
0.8086 3 U6 + W

Y7
0.8789 2 U7 + W

Y8
0.9961 1 data U8 W
Polarization Encoding Decoding Construction Performance

Polar code example: W = BEC( 12 ), N = 8, rate 1/2


I (Wi ) Rank

Y1
0.0039 8 U1 + + + W

Y2
0.1211 7 U2 + + W

Y3
0.1914 6 U3 + + W

Y4
0.6836 4 U4 + W

Y5
0.3164 5 U5 + + W

Y6
0.8086 3 U6 + W

Y7
0.8789 2 data U7 + W

Y8
0.9961 1 data U8 W
Polarization Encoding Decoding Construction Performance

Polar code example: W = BEC( 12 ), N = 8, rate 1/2


I (Wi ) Rank

Y1
0.0039 8 U1 + + + W

Y2
0.1211 7 U2 + + W

Y3
0.1914 6 U3 + + W

Y4
0.6836 4 U4 + W

Y5
0.3164 5 U5 + + W

Y6
0.8086 3 data U6 + W

Y7
0.8789 2 data U7 + W

Y8
0.9961 1 data U8 W
Polarization Encoding Decoding Construction Performance

Polar code example: W = BEC( 12 ), N = 8, rate 1/2


I (Wi ) Rank

Y1
0.0039 8 U1 + + + W

Y2
0.1211 7 U2 + + W

Y3
0.1914 6 U3 + + W

Y4
0.6836 4 data U4 + W

Y5
0.3164 5 U5 + + W

Y6
0.8086 3 data U6 + W

Y7
0.8789 2 data U7 + W

Y8
0.9961 1 data U8 W
Polarization Encoding Decoding Construction Performance

Polar code example: W = BEC( 12 ), N = 8, rate 1/2


I (Wi ) Rank

Y1
0.0039 8 frozen U1 + + + W

Y2
0.1211 7 frozen U2 + + W

Y3
0.1914 6 frozen U3 + + W

Y4
0.6836 4 data U4 + W

Y5
0.3164 5 frozen U5 + + W

Y6
0.8086 3 data U6 + W

Y7
0.8789 2 data U7 + W

Y8
0.9961 1 data U8 W
Polarization Encoding Decoding Construction Performance

Polar code example: W = BEC( 12 ), N = 8, rate 1/2


I (Wi ) Rank

Y1
0.0039 8 frozen 0 + + + W

Y2
0.1211 7 frozen 0 + + W

Y3
0.1914 6 frozen 0 + + W

Y4
0.6836 4 data U4 + W

Y5
0.3164 5 frozen 0 + + W

Y6
0.8086 3 data U6 + W

Y7
0.8789 2 data U7 + W

Y8
0.9961 1 data U8 W
Polarization Encoding Decoding Construction Performance

Encoding complexity

Theorem
Encoding complexity for polar coding is O(N log N).

Proof:
◮ Polar coding transform can be represented as a graph with
N[1 + log(N)] variables.
◮ The graph has (1 + log(N)) levels with N variables at each
level.
◮ Computation begins at the source level and can be carried out
level by level.
◮ Space complexity O(N), time complexity O(N log N).
Polarization Encoding Decoding Construction Performance

Encoding complexity

Theorem
Encoding complexity for polar coding is O(N log N).

Proof:
◮ Polar coding transform can be represented as a graph with
N[1 + log(N)] variables.
◮ The graph has (1 + log(N)) levels with N variables at each
level.
◮ Computation begins at the source level and can be carried out
level by level.
◮ Space complexity O(N), time complexity O(N log N).
Polarization Encoding Decoding Construction Performance

Encoding complexity

Theorem
Encoding complexity for polar coding is O(N log N).

Proof:
◮ Polar coding transform can be represented as a graph with
N[1 + log(N)] variables.
◮ The graph has (1 + log(N)) levels with N variables at each
level.
◮ Computation begins at the source level and can be carried out
level by level.
◮ Space complexity O(N), time complexity O(N log N).
Polarization Encoding Decoding Construction Performance

Encoding complexity

Theorem
Encoding complexity for polar coding is O(N log N).

Proof:
◮ Polar coding transform can be represented as a graph with
N[1 + log(N)] variables.
◮ The graph has (1 + log(N)) levels with N variables at each
level.
◮ Computation begins at the source level and can be carried out
level by level.
◮ Space complexity O(N), time complexity O(N log N).
Polarization Encoding Decoding Construction Performance

Encoding: an example
0 Y1
frozen + + + W

0 Y2
frozen + + W

0 Y3
frozen + + W

1 Y4
free + W

0 Y5
frozen + + W

1 Y6
free + W

0 Y7
free + W

1 Y8
free W
Polarization Encoding Decoding Construction Performance

Encoding: an example
0 Y1
frozen +0 + + W

0 0 Y2
frozen + + W

0 Y3
frozen +1 + W

1 1 Y4
free + W

0 Y5
frozen +1 + W

1 1 Y6
free + W

0 Y7
free +1 W

1 1 Y8
free W
Polarization Encoding Decoding Construction Performance

Encoding: an example
0 Y1
frozen +0 + 1
+ W

0 0 1 Y2
frozen + + W

0 Y3
frozen +1 1
+ W

1 1 1 Y4
free + W

0 Y5
frozen +1 + 0
W

1 1 0 Y6
free + W

0 Y7
free +1 1
W

1 1 1 Y8
free W
Polarization Encoding Decoding Construction Performance

Encoding: an example
0 Y1
frozen +0 + 1
+ 1
W

0 0 1 1 Y2
frozen + + W

0 Y3
frozen +1 1
+ 0
W

1 1 1 0 Y4
free + W

0 Y5
frozen +1 + 0 0
W

1 1 0 0 Y6
free + W

0 Y7
free +1 1 1
W

1 1 1 1 Y8
free W
Polarization Encoding Decoding Construction Performance

Successive Cancellation Decoding (SCD)

Theorem
The complexity of successive cancellation decoding for polar codes
is O(N log N).

Proof: Given below.


Polarization Encoding Decoding Construction Performance

SCD: Exploit the x = |a|a + b| structure


u1 x1 y1
+ + b1 + W

u2 b2 x2 y2
+ + W

u3 b3 x3 y3
+ + W

u4 b4 + x4 y4
W

u5 a1 x5 y5
+ + W

u6 a2 x6 y6
+ W

u7 a3 x7 y7
+ W

u8 a4 x8 y8
W
Polarization Encoding Decoding Construction Performance

First phase: treat a as noise, decode (u1 , u2 , u3 , u4 )


u1 x1 y1
+ + b1 + W

u2 b2 x2 y2
+ + W

u3 b3 x3 y3
+ + W

u4 b4 + x4 y4
W

noise a1 x5 y5
W

noise a2 x6 y6
W

noise a3 x7 y7
W

noise a4 x8 y8
W
Polarization Encoding Decoding Construction Performance

End of first phase


û1 x1 y1
+ + b̂1 + W

û2 b̂2 x2 y2
+ + W

û3 b̂3 x3 y3
+ + W

û4 b̂4 + x4 y4
W

u5 a1 x5 y5
+ + W

u6 a2 x6 y6
+ W

u7 a3 x7 y7
+ W

u8 a4 x8 y8
W
Polarization Encoding Decoding Construction Performance

Second phase: Treat b̂ as known, decode (u5 , u6 , u7 , u8 )


known b̂1 y1
+ W

known b̂2 y2
+ W

known b̂3 y3
+ W

known b̂4 + y4
W

u5 a1 y5
+ + W

u6 a2 y6
+ W

u7 a3 y7
+ W

u8 a4 y8
W
Polarization Encoding Decoding Construction Performance

First phase in detail


u1 x1 y1
+ + b1 + W

u2 b2 x2 y2
+ + W

u3 b3 x3 y3
+ + W

u4 b4 + x4 y4
W

noise a1 x5 y5
W

noise a2 x6 y6
W

noise a3 x7 y7
W

noise a4 x8 y8
W
Polarization Encoding Decoding Construction Performance

Equivalent channel model


b1 x1 y1
+ W

b2 x2 y2
+ W

b3 x3 y3
+ W

b4 + x4 y4
W

noise a1 x5 y5
W

noise a2 x6 y6
W

noise a3 x7 y7
W

noise a4 x8 y8
W
Polarization Encoding Decoding Construction Performance

First copy of W −
b1 x1 y1
+ W

b2 x2 y2
+ W

b3 x3 y3
+ W

b4 + x4 y4
W

noise a1 x5 y5
W

noise a2 x6 y6
W

noise a3 x7 y7
W

noise a4 x8 y8
W
Polarization Encoding Decoding Construction Performance

Second copy of W −
b1 x1 y1
+ W

b2 x2 y2
+ W

b3 x3 y3
+ W

b4 + x4 y4
W

noise a1 x5 y5
W

noise a2 x6 y6
W

noise a3 x7 y7
W

noise a4 x8 y8
W
Polarization Encoding Decoding Construction Performance

Third copy of W −
b1 x1 y1
+ W

b2 x2 y2
+ W

b3 x3 y3
+ W

b4 + x4 y4
W

noise a1 x5 y5
W

noise a2 x6 y6
W

noise a3 x7 y7
W

noise a4 x8 y8
W
Polarization Encoding Decoding Construction Performance

Fourth copy of W −
b1 x1 y1
+ W

b2 x2 y2
+ W

b3 x3 y3
+ W

b4 + x4 y4
W

noise a1 x5 y5
W

noise a2 x6 y6
W

noise a3 x7 y7
W

noise a4 x8 y8
W
Polarization Encoding Decoding Construction Performance

Decoding on W −

u1 (y1 , y5 )
+ + b1 W−

u2 b2 (y2 , y6 )
+ W−

u3 b3 (y3 , y7 )
+ W−

u4 b4 (y4 , y8 )
W−
Polarization Encoding Decoding Construction Performance

b = |t|t + w|

u1 (y1 , y5 )
+ w1 + b1 W−

u2 w2 + b2 (y2 , y6 )
W−

u3 b3 (y3 , y7 )
+ t1 W−

u4 t2 b4 (y4 , y8 )
W−
Polarization Encoding Decoding Construction Performance

Decoding on W −−

u1 (y1 , y3 , y5 , y7 )
+ w1 W −−

u2 w2 (y2 , y4 , y6 , y8 )
W −−
Polarization Encoding Decoding Construction Performance

Decoding on W −−−

u1 (y1 , y2 , . . . , y8 )
W −−−
Polarization Encoding Decoding Construction Performance

Decoding on W −−−

u1 (y1 , y2 , . . . , y8 )
W −−−

Compute
∆ W −−− (y1 , . . . , y8 | u1 = 0)
L−−− = .
W −−− (y1 , . . . , y8 | u1 = 1)
Polarization Encoding Decoding Construction Performance

Decoding on W −−−

u1 (y1 , y2 , . . . , y8 )
W −−−

Compute
∆ W −−− (y1 , . . . , y8 | u1 = 0)
L−−− = .
W −−− (y1 , . . . , y8 | u1 = 1)
Set 
u1
 if u1 is frozen
û1 = 0 else if L−−− > 0

1 else

Polarization Encoding Decoding Construction Performance

Decoding on W −−−

u1 (y1 , y2 , . . . , y8 )
W −−−

Compute
∆ W −−− (y1 , . . . , y8 | u1 = 0)
L−−− = .
W −−− (y1 , . . . , y8 | u1 = 1)
Set 
u1
 if u1 is frozen
û1 = 0 else if L−−− > 0

1 else

Polarization Encoding Decoding Construction Performance

Decoding on W −−−

u1 (y1 , y2 , . . . , y8 )
W −−−

Compute
∆ W −−− (y1 , . . . , y8 | u1 = 0)
L−−− = .
W −−− (y1 , . . . , y8 | u1 = 1)
Set 
u1
 if u1 is frozen
û1 = 0 else if L−−− > 0

1 else

Polarization Encoding Decoding Construction Performance

Decoding on W −−+

known û1 + (y1 , y3 , y5 , y7 )


W −−

u2 (y2 , y4 , y6 , y8 )
W −−
Polarization Encoding Decoding Construction Performance

Decoding on W −−+

u2 (y1 , . . . , y8 , û1 )
W −−+
Polarization Encoding Decoding Construction Performance

Decoding on W −−+

u2 (y1 , . . . , y8 , û1 )
W −−+

Compute

∆ W −−+ (y1 , . . . , y8 , û1 | u2 = 0)


L−−+ = .
W −−+ (y1 , . . . , y8 , û1 | u2 = 1)
Polarization Encoding Decoding Construction Performance

Decoding on W −−+

u2 (y1 , . . . , y8 , û1 )
W −−+

Compute

∆ W −−+ (y1 , . . . , y8 , û1 | u2 = 0)


L−−+ = .
W −−+ (y1 , . . . , y8 , û1 | u2 = 1)

Set 
u2
 if u2 is frozen
û2 = 0 else if L−−+ > 0

1 else

Polarization Encoding Decoding Construction Performance

Decoding on W −−+

u2 (y1 , . . . , y8 , û1 )
W −−+

Compute

∆ W −−+ (y1 , . . . , y8 , û1 | u2 = 0)


L−−+ = .
W −−+ (y1 , . . . , y8 , û1 | u2 = 1)

Set 
u2
 if u2 is frozen
û2 = 0 else if L−−+ > 0

1 else

Polarization Encoding Decoding Construction Performance

Decoding on W −−+

u2 (y1 , . . . , y8 , û1 )
W −−+

Compute

∆ W −−+ (y1 , . . . , y8 , û1 | u2 = 0)


L−−+ = .
W −−+ (y1 , . . . , y8 , û1 | u2 = 1)

Set 
u2
 if u2 is frozen
û2 = 0 else if L−−+ > 0

1 else

Polarization Encoding Decoding Construction Performance

Complexity for successive cancelation decoding

◮ Let CN be the complexity of decoding a code of length N


◮ Decoding problem of size N for W reduced to two decoding
problems of size N/2 for W − and W +
◮ So
CN = 2CN/2 + kN
for some constant k
◮ This gives CN = O(N log N)
Polarization Encoding Decoding Construction Performance

Complexity for successive cancelation decoding

◮ Let CN be the complexity of decoding a code of length N


◮ Decoding problem of size N for W reduced to two decoding
problems of size N/2 for W − and W +
◮ So
CN = 2CN/2 + kN
for some constant k
◮ This gives CN = O(N log N)
Polarization Encoding Decoding Construction Performance

Complexity for successive cancelation decoding

◮ Let CN be the complexity of decoding a code of length N


◮ Decoding problem of size N for W reduced to two decoding
problems of size N/2 for W − and W +
◮ So
CN = 2CN/2 + kN
for some constant k
◮ This gives CN = O(N log N)
Polarization Encoding Decoding Construction Performance

Complexity for successive cancelation decoding

◮ Let CN be the complexity of decoding a code of length N


◮ Decoding problem of size N for W reduced to two decoding
problems of size N/2 for W − and W +
◮ So
CN = 2CN/2 + kN
for some constant k
◮ This gives CN = O(N log N)
Polarization Encoding Decoding Construction Performance

Performance of polar codes

Theorem
For any rate R < I (W ) and block-length N, the probability of
frame error for polar codes under successive cancelation decoding is
bounded as  √ √ 
Pe (N, R) = o 2− N+o( N)

Proof: Given in the next presentation.


Polarization Encoding Decoding Construction Performance

Construction complexity

Theorem
Given W and a rate R < I (W ), a polar code can be constructed in
O(Npoly(log (N))) time that achieves under SCD the performance
 √ √ 
Pe = o 2− N+o( N)

Proof: Given in the next presentation.


Polarization Encoding Decoding Construction Performance

Polar coding summary

Summary
Given W , N = 2n , and R < I (W ), a polar code can be constructed
such that it has
◮ construction complexity O(Npoly(log (N))),
◮ encoding complexity ≈ N log N,
◮ successive-cancellation decoding complexity ≈ N log N,
 √ √ 
◮ frame error probability Pe (N, R) = o 2− N+o( N) .
Polarization Encoding Decoding Construction Performance

Polar coding summary

Summary
Given W , N = 2n , and R < I (W ), a polar code can be constructed
such that it has
◮ construction complexity O(Npoly(log (N))),
◮ encoding complexity ≈ N log N,
◮ successive-cancellation decoding complexity ≈ N log N,
 √ √ 
◮ frame error probability Pe (N, R) = o 2− N+o( N) .
Polarization Encoding Decoding Construction Performance

Polar coding summary

Summary
Given W , N = 2n , and R < I (W ), a polar code can be constructed
such that it has
◮ construction complexity O(Npoly(log (N))),
◮ encoding complexity ≈ N log N,
◮ successive-cancellation decoding complexity ≈ N log N,
 √ √ 
◮ frame error probability Pe (N, R) = o 2− N+o( N) .
Polarization Encoding Decoding Construction Performance

Polar coding summary

Summary
Given W , N = 2n , and R < I (W ), a polar code can be constructed
such that it has
◮ construction complexity O(Npoly(log (N))),
◮ encoding complexity ≈ N log N,
◮ successive-cancellation decoding complexity ≈ N log N,
 √ √ 
◮ frame error probability Pe (N, R) = o 2− N+o( N) .
Polarization Encoding Decoding Construction Performance

List decoder for polar codes

Developed by Tal and Vardy (2011); similar to Dumer’s list


decoder for Reed-Muller codes.
◮ First produce L candidate decisions
◮ Pick the most likely word from the list
◮ Complexity O(LN log N)
Polarization Encoding Decoding Construction Performance

List decoder for polar codes

Developed by Tal and Vardy (2011); similar to Dumer’s list


decoder for Reed-Muller codes.
◮ First produce L candidate decisions
◮ Pick the most likely word from the list
◮ Complexity O(LN log N)
Polarization Encoding Decoding Construction Performance

List decoder for polar codes

Developed by Tal and Vardy (2011); similar to Dumer’s list


decoder for Reed-Muller codes.
◮ First produce L candidate decisions
◮ Pick the most likely word from the list
◮ Complexity O(LN log N)
Polarization Encoding Decoding Construction Performance

Tal-Vardy list decoder performance


Length n = 2048, rate R = 0.5, BPSK-AWGN channel, list-size L.
Polarization Encoding Decoding Construction Performance

Tal-Vardy list decoder performance


Length n = 2048, rate R = 0.5, BPSK-AWGN channel, list-size L.
Polarization Encoding Decoding Construction Performance

Tal-Vardy list decoder performance


Length n = 2048, rate R = 0.5, BPSK-AWGN channel, list-size L.
Polarization Encoding Decoding Construction Performance

Tal-Vardy list decoder performance


Length n = 2048, rate R = 0.5, BPSK-AWGN channel, list-size L.
Polarization Encoding Decoding Construction Performance

Tal-Vardy list decoder performance


Length n = 2048, rate R = 0.5, BPSK-AWGN channel, list-size L.
Polarization Encoding Decoding Construction Performance

Tal-Vardy list decoder performance


Length n = 2048, rate R = 0.5, BPSK-AWGN channel, list-size L.
Polarization Encoding Decoding Construction Performance

Tal-Vardy list decoder performance


Length n = 2048, rate R = 0.5, BPSK-AWGN channel, list-size L.

List-of-L performance quickly approaches ML performance!


Polarization Encoding Decoding Construction Performance

List decoder with CRC

◮ Same decoder as before but data contains a built-in CRC


◮ Selection made by CRC and relative likelihood
Polarization Encoding Decoding Construction Performance

List decoder with CRC

◮ Same decoder as before but data contains a built-in CRC


◮ Selection made by CRC and relative likelihood
Polarization Encoding Decoding Construction Performance

Tal-Vardy list decoder with CRC


Length n = 2048, rate R = 0.5, BPSK-AWGN channel, list-size L.
Polarization Encoding Decoding Construction Performance

Tal-Vardy list decoder with CRC


Length n = 2048, rate R = 0.5, BPSK-AWGN channel, list-size L.
Polarization Encoding Decoding Construction Performance

Tal-Vardy list decoder with CRC


Length n = 2048, rate R = 0.5, BPSK-AWGN channel, list-size L.

Polar codes (+CRC) achieve state-of-the-art performance!


Polarization Encoding Decoding Construction Performance

Summary

◮ Polarization is a commonplace phenomenon – almost


unavoidable
◮ Polar codes are low-complexity methods designed to exploit
polarization for achieving Shannon limits
◮ Polar codes with some help from other methods perform
competitively with the state-of-the-art codes in terms of
complexity and performance
Polarization Encoding Decoding Construction Performance

Summary

◮ Polarization is a commonplace phenomenon – almost


unavoidable
◮ Polar codes are low-complexity methods designed to exploit
polarization for achieving Shannon limits
◮ Polar codes with some help from other methods perform
competitively with the state-of-the-art codes in terms of
complexity and performance
Polarization Encoding Decoding Construction Performance

Summary

◮ Polarization is a commonplace phenomenon – almost


unavoidable
◮ Polar codes are low-complexity methods designed to exploit
polarization for achieving Shannon limits
◮ Polar codes with some help from other methods perform
competitively with the state-of-the-art codes in terms of
complexity and performance

You might also like