Polarization Encoding Decoding Construction Performance
Polar Coding Tutorial
Erdal Arıkan
Electrical-Electronics Engineering DepartmentBilkent UniversityAnkara, Turkey
Jan. 15, 2015Simons InstituteUC Berkeley
Polarization Encoding Decoding Construction Performance
The channel
Let W : X → Y be a binary-input discrete memoryless channel
WX 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
WX 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
WX 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
WX 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:
1− ǫ
1− ǫ
ǫ
ǫ
1
0
1
0
BSC(ǫ)
Polarization Encoding Decoding Construction Performance
Symmetry assumption
Assume that the channel has “input-output symmetry.”
Examples:
1− ǫ
1− ǫ
ǫ
ǫ
1
0
1
0
BSC(ǫ)
1− ǫ
1− ǫ
ǫ
ǫ
1
0
1
0
?
BEC(ǫ)
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
W
W
b
b
b
W
Original channels(uniform)
Polarization Encoding Decoding Construction Performance
The method: aggregate and redistribute capacity
W
W
b
b
b
W
Original channels(uniform)
Wvec
Vectorchannel
Combine
Polarization Encoding Decoding Construction Performance
The method: aggregate and redistribute capacity
W
W
b
b
b
W
Original channels(uniform)
Wvec
Vectorchannel
Combine
WN
WN−1
b
b
b
W1
Split
New channels(polarized)
Polarization Encoding Decoding Construction Performance
Combining
◮ Begin with N copies of W ,
◮ use a 1-1 mapping
GN : {0, 1}N → {0, 1}N
◮ to create a vector channel
Wvec : UN → Y N
W
W
WXN
X2
X1
YN
Y2
Y1
Polarization Encoding Decoding Construction Performance
Combining
◮ Begin with N copies of W ,
◮ use a 1-1 mapping
GN : {0, 1}N → {0, 1}N
◮ to create a vector channel
Wvec : UN → Y N
W
W
WXN
X2
X1
YN
Y2
Y1
GN
UN
U2
U1
Polarization Encoding Decoding Construction Performance
Combining
◮ Begin with N copies of W ,
◮ use a 1-1 mapping
GN : {0, 1}N → {0, 1}N
◮ to create a vector channel
Wvec : UN → Y N
W
W
WXN
X2
X1
YN
Y2
Y1
GN
UN
U2
U1
Wvec
Polarization Encoding Decoding Construction Performance
Conservation of capacity
Combining operation is lossless:
◮ Take U1, . . . ,UN i.i.d. unif. {0, 1}
◮ then, X1, . . . ,XN i.i.d. unif. {0, 1}
◮ and
C (Wvec) = I (UN ;Y N)
= I (XN ;Y N)
= NC (W )
W
W
W
GN
XN
X2
X1
YN
Y2
Y1
UN
U2
U1
Wvec
Polarization Encoding Decoding Construction Performance
Conservation of capacity
Combining operation is lossless:
◮ Take U1, . . . ,UN i.i.d. unif. {0, 1}
◮ then, X1, . . . ,XN i.i.d. unif. {0, 1}
◮ and
C (Wvec) = I (UN ;Y N)
= I (XN ;Y N)
= NC (W )
W
W
W
GN
XN
X2
X1
YN
Y2
Y1
UN
U2
U1
Wvec
Polarization Encoding Decoding Construction Performance
Conservation of capacity
Combining operation is lossless:
◮ Take U1, . . . ,UN i.i.d. unif. {0, 1}
◮ then, X1, . . . ,XN i.i.d. unif. {0, 1}
◮ and
C (Wvec) = I (UN ;Y N)
= I (XN ;Y N)
= NC (W )
W
W
W
GN
XN
X2
X1
YN
Y2
Y1
UN
U2
U1
Wvec
Polarization Encoding Decoding Construction Performance
Splitting
C (Wvec) = I (UN ;Y N)
Wvec
UN
Ui+1
Ui
Ui−1
U1
YN
Yi
Y1
Polarization Encoding Decoding Construction Performance
Splitting
C (Wvec) = I (UN ;Y N)
=N∑
i=1
I (Ui ;YN ,U i−1)
Wvec
UN
Ui+1
Ui
Ui−1
U1
YN
Yi
Y1
Polarization Encoding Decoding Construction Performance
Splitting
C (Wvec) = I (UN ;Y N)
=N∑
i=1
I (Ui ;YN ,U i−1)
Define bit-channels
Wi : Ui → (Y N ,U i−1)
Wvec
UN
Ui+1
Ui
Ui−1
U1
U1
Ui−1
YN
Yi
Y1
Wi
Polarization Encoding Decoding Construction Performance
Splitting
C (Wvec) = I (UN ;Y N)
=N∑
i=1
I (Ui ;YN ,U i−1)
=N∑
i=1
C (Wi )
Define bit-channels
Wi : Ui → (Y N ,U i−1)
Wvec
UN
Ui+1
Ui
Ui−1
U1
U1
Ui−1
YN
Yi
Y1
Wi
Polarization Encoding Decoding Construction Performance
Polarization is commonplace
◮ Polarization is the rule not theexception
◮ A random permutation
GN : {0, 1}N → {0, 1}N
is a good polarizer with highprobability
◮ Equivalent to Shannon’s randomcoding approach
W
W
W
GN
XN
X2
X1
YN
Y2
Y1
UN
U2
U1
Polarization Encoding Decoding Construction Performance
Polarization is commonplace
◮ Polarization is the rule not theexception
◮ A random permutation
GN : {0, 1}N → {0, 1}N
is a good polarizer with highprobability
◮ Equivalent to Shannon’s randomcoding approach
W
W
W
GN
XN
X2
X1
YN
Y2
Y1
UN
U2
U1
Polarization Encoding Decoding Construction Performance
Polarization is commonplace
◮ Polarization is the rule not theexception
◮ A random permutation
GN : {0, 1}N → {0, 1}N
is a good polarizer with highprobability
◮ Equivalent to Shannon’s randomcoding approach
W
W
W
GN
XN
X2
X1
YN
Y2
Y1
UN
U2
U1
Polarization Encoding Decoding Construction Performance
Random polarizers: stepwise, isotropic
5 10 15 20 25 300
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Bit channel index
Cap
acity
Polarization Encoding Decoding Construction Performance
Random polarizers: stepwise, isotropic
5 10 15 20 25 300
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Bit channel index
Cap
acity
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 randompolarizers 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 randompolarizers 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 randompolarizers in return for less complexity
Polarization Encoding Decoding Construction Performance
Basic module for a low-complexity scheme
Combine two copies of W
W
W
Y2
Y1
X2
X1
Polarization Encoding Decoding Construction Performance
Basic module for a low-complexity scheme
Combine two copies of W
+
U2
U1
G2
W
W
Y2
Y1
X2
X1
Polarization Encoding Decoding Construction Performance
Basic module for a low-complexity scheme
Combine two copies of W
+
U2
U1
G2
W
W
Y2
Y1
X2
X1
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)
+
random U2
U1
W
W
Y2
Y1
Polarization Encoding Decoding Construction Performance
The first bit-channel W1
W1 : U1 → (Y1,Y2)
+
random U2
U1
W
W
Y2
Y1
C (W1) = I (U1;Y1,Y2)
Polarization Encoding Decoding Construction Performance
The second bit-channel W2
W2 : U2 → (Y1,Y2,U1)
+
U2
U1
W
W
Y2
Y1
Polarization Encoding Decoding Construction Performance
The second bit-channel W2
W2 : U2 → (Y1,Y2,U1)
+
U2
U1
W
W
Y2
Y1
C (W2) = I (U2;Y1,Y2,U1)
Polarization Encoding Decoding Construction Performance
Capacity conserved but redistributed unevenly
+
U2
U1
W
W
Y2
Y1
X2
X1
◮ 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
+
U2
U1
W
W
Y2
Y1
X2
X1
◮ 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
... duplicate the basic transform
+
+
W
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
+
+
W+
W+
W−
W−
U4
U2
U3
U1
Polarization Encoding Decoding Construction Performance
... obtain the four new bit-channels
W++
W−+
W+−
W−−
U4
U2
U3
U1
Polarization Encoding Decoding Construction Performance
Overall size-4 construction
+
+
+
+
W
W
W
W
U4
U2
U3
U1
Y4
Y2
Y3
Y1
X4
X2
X3
X1
Polarization Encoding Decoding Construction Performance
“Rewire” for standard-form size-4 construction
+
+
+
+
W
W
W
W
U4
U3
U2
U1
Y4
Y3
Y2
Y1
X4
X3
X2
X1
Polarization Encoding Decoding Construction Performance
Size 8 construction
+
+
+
+
+
+
+
+
+
+
+
+
W
W
W
W
W
W
W
W
Y8
Y7
Y6
Y5
Y4
Y3
Y2
Y1
U8
U7
U6
U5
U4
U3
U2
U1
X8
X7
X6
X5
X4
X3
X2
X1
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−
and W+, with erasure probabili-ties
ǫ−∆= 2ǫ− ǫ2
andǫ+
∆= ǫ2
respectively.1− ǫ
1− ǫ
ǫ
ǫ
1
0
1
0
?
W
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−
and W+, with erasure probabili-ties
ǫ−∆= 2ǫ− ǫ2
andǫ+
∆= ǫ2
respectively.1− ǫ−
1− ǫ−
ǫ−
ǫ−
1
0
1
0
?
W−
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−
and W+, with erasure probabili-ties
ǫ−∆= 2ǫ− ǫ2
andǫ+
∆= ǫ2
respectively.1− ǫ+
1− ǫ+
ǫ+
ǫ+
1
0
1
0
?
W+
Polarization Encoding Decoding Construction Performance
Polarization for BEC(12): N = 16
2 4 6 8 10 12 14 160
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Bit channel index
Cap
acity
Capacity of bit channels
N=16
Polarization Encoding Decoding Construction Performance
Polarization for BEC(12): N = 32
5 10 15 20 25 300
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Bit channel index
Cap
acity
Capacity of bit channels
N=32
Polarization Encoding Decoding Construction Performance
Polarization for BEC(12): N = 64
10 20 30 40 50 600
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Bit channel index
Cap
acity
Capacity of bit channels
N=64
Polarization Encoding Decoding Construction Performance
Polarization for BEC(12): N = 128
20 40 60 80 100 1200
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Bit channel index
Cap
acity
Capacity of bit channels
N=128
Polarization Encoding Decoding Construction Performance
Polarization for BEC(12): N = 256
50 100 150 200 2500
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Bit channel index
Cap
acity
Capacity of bit channels
N=256
Polarization Encoding Decoding Construction Performance
Polarization for BEC(12): N = 512
50 100 150 200 250 300 350 400 450 5000
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Bit channel index
Cap
acity
Capacity of bit channels
N=512
Polarization Encoding Decoding Construction Performance
Polarization for BEC(12): N = 1024
100 200 300 400 500 600 700 800 900 10000
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Bit channel index
Cap
acity
Capacity of bit channels
N=1024
Polarization Encoding Decoding Construction Performance
Polarization martingale
0
1
1
C(W )
C(W2)
C(W1)
Polarization Encoding Decoding Construction Performance
Polarization martingale
0
1
1 22
C(W )
C(W2)
C(W1)
C(W++)
C(W−+)
C(W+−)
C(W−−)
Polarization Encoding Decoding Construction Performance
Polarization martingale
0
1
1 22
C(W )
C(W2)
C(W1)
C(W++)
C(W−+)
C(W+−)
C(W−−)
Polarization Encoding Decoding Construction Performance
Polarization martingale
0
1
1 22 3333
C(W )
C(W2)
C(W1)
C(W++)
C(W−+)
C(W+−)
C(W−−)
Polarization Encoding Decoding Construction Performance
Polarization martingale
0
1
1 22 3333 44444444
C(W )
C(W2)
C(W1)
C(W++)
C(W−+)
C(W+−)
C(W−−)
Polarization Encoding Decoding Construction Performance
Polarization martingale
0
1
1 22 3333 44444444 5555555555555555
C(W )
C(W2)
C(W1)
C(W++)
C(W−+)
C(W+−)
C(W−−)
Polarization Encoding Decoding Construction Performance
Polarization martingale
0
1
1 22 3333 44444444 5555555555555555 66666666666666666666666666666666
C(W )
C(W2)
C(W1)
C(W++)
C(W−+)
C(W+−)
C(W−−)
Polarization Encoding Decoding Construction Performance
Polarization martingale
0
1
1 22 3333 44444444 5555555555555555 66666666666666666666666666666666 7777777777777777777777777777777777777777777777777777777777777777
C(W )
C(W2)
C(W1)
C(W++)
C(W−+)
C(W+−)
C(W−−)
Polarization Encoding Decoding Construction Performance
Polarization martingale
0
1
1 22 3333 44444444 5555555555555555 66666666666666666666666666666666 7777777777777777777777777777777777777777777777777777777777777777 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
C(W )
C(W2)
C(W1)
C(W++)
C(W−+)
C(W+−)
C(W−−)
Polarization Encoding Decoding Construction Performance
Theorem (Polarization, A. 2007)
The bit-channel capacities {C (Wi )} polarize: for any
δ ∈ (0, 1), as the construction size N grows
[
no. channels with C (Wi ) > 1− δ
N
]
−→ C (W )
and[
no. channels with C (Wi ) < δ
N
]
−→ 1− C (W )
Theorem (Rate of polarization, A. and Telatar (2008))
Above theorem holds with δ ≈ 2−√
N . 0
δ
1− δ
1
Polarization Encoding Decoding Construction Performance
Theorem (Polarization, A. 2007)
The bit-channel capacities {C (Wi )} polarize: for any
δ ∈ (0, 1), as the construction size N grows
[
no. channels with C (Wi ) > 1− δ
N
]
−→ C (W )
and[
no. channels with C (Wi ) < δ
N
]
−→ 1− C (W )
Theorem (Rate of polarization, A. and Telatar (2008))
Above theorem holds with δ ≈ 2−√
N . 0
δ
1− δ
1
Polarization Encoding Decoding Construction Performance
Polar code example: W = BEC(12), N = 8, rate 1/2
I (Wi )
0.0039
0.1211
0.1914
0.6836
0.3164
0.8086
0.8789
0.9961
+
+
+
+
+
+
+
+
+
+
+
+
W
W
W
W
W
W
W
W
Y8
Y7
Y6
Y5
Y4
Y3
Y2
Y1
U8
U7
U6
U5
U4
U3
U2
U1
Polarization Encoding Decoding Construction Performance
Polar code example: W = BEC(12), N = 8, rate 1/2
I (Wi )
0.0039
0.1211
0.1914
0.6836
0.3164
0.8086
0.8789
0.9961
Rank
8
7
6
4
5
3
2
1
+
+
+
+
+
+
+
+
+
+
+
+
W
W
W
W
W
W
W
W
Y8
Y7
Y6
Y5
Y4
Y3
Y2
Y1
U8
U7
U6
U5
U4
U3
U2
U1
Polarization Encoding Decoding Construction Performance
Polar code example: W = BEC(12), N = 8, rate 1/2
I (Wi )
0.0039
0.1211
0.1914
0.6836
0.3164
0.8086
0.8789
0.9961
Rank
8
7
6
4
5
3
2
1
+
+
+
+
+
+
+
+
+
+
+
+
W
W
W
W
W
W
W
W
Y8
Y7
Y6
Y5
Y4
Y3
Y2
Y1
U8
U7
U6
U5
U4
U3
U2
U1
data
Polarization Encoding Decoding Construction Performance
Polar code example: W = BEC(12), N = 8, rate 1/2
I (Wi )
0.0039
0.1211
0.1914
0.6836
0.3164
0.8086
0.8789
0.9961
Rank
8
7
6
4
5
3
2
1
+
+
+
+
+
+
+
+
+
+
+
+
W
W
W
W
W
W
W
W
Y8
Y7
Y6
Y5
Y4
Y3
Y2
Y1
U8
U7
U6
U5
U4
U3
U2
U1
data
data
Polarization Encoding Decoding Construction Performance
Polar code example: W = BEC(12), N = 8, rate 1/2
I (Wi )
0.0039
0.1211
0.1914
0.6836
0.3164
0.8086
0.8789
0.9961
Rank
8
7
6
4
5
3
2
1
+
+
+
+
+
+
+
+
+
+
+
+
W
W
W
W
W
W
W
W
Y8
Y7
Y6
Y5
Y4
Y3
Y2
Y1
U8
U7
U6
U5
U4
U3
U2
U1
data
data
data
Polarization Encoding Decoding Construction Performance
Polar code example: W = BEC(12), N = 8, rate 1/2
I (Wi )
0.0039
0.1211
0.1914
0.6836
0.3164
0.8086
0.8789
0.9961
Rank
8
7
6
4
5
3
2
1
+
+
+
+
+
+
+
+
+
+
+
+
W
W
W
W
W
W
W
W
Y8
Y7
Y6
Y5
Y4
Y3
Y2
Y1
U8
U7
U6
U5
U4
U3
U2
U1
data
data
data
data
Polarization Encoding Decoding Construction Performance
Polar code example: W = BEC(12), N = 8, rate 1/2
I (Wi )
0.0039
0.1211
0.1914
0.6836
0.3164
0.8086
0.8789
0.9961
Rank
8
7
6
4
5
3
2
1
+
+
+
+
+
+
+
+
+
+
+
+
W
W
W
W
W
W
W
W
Y8
Y7
Y6
Y5
Y4
Y3
Y2
Y1
U8
U7
U6
U5
U4
U3
U2
U1
data
data
data
frozen
data
frozen
frozen
frozen
Polarization Encoding Decoding Construction Performance
Polar code example: W = BEC(12), N = 8, rate 1/2
I (Wi )
0.0039
0.1211
0.1914
0.6836
0.3164
0.8086
0.8789
0.9961
Rank
8
7
6
4
5
3
2
1
+
+
+
+
+
+
+
+
+
+
+
+
W
W
W
W
W
W
W
W
Y8
Y7
Y6
Y5
Y4
Y3
Y2
Y1
U8
U7
U6
0
U4
0
0
0
data
data
data
frozen
data
frozen
frozen
frozen
Polarization Encoding Decoding Construction Performance
Encoding complexity
Theorem
Encoding complexity for polar coding is O(N logN).
Proof:
◮ Polar coding transform can be represented as a graph withN[1 + log(N)] variables.
◮ The graph has (1 + log(N)) levels with N variables at eachlevel.
◮ Computation begins at the source level and can be carried outlevel by level.
◮ Space complexity O(N), time complexity O(N logN).
Polarization Encoding Decoding Construction Performance
Encoding complexity
Theorem
Encoding complexity for polar coding is O(N logN).
Proof:
◮ Polar coding transform can be represented as a graph withN[1 + log(N)] variables.
◮ The graph has (1 + log(N)) levels with N variables at eachlevel.
◮ Computation begins at the source level and can be carried outlevel by level.
◮ Space complexity O(N), time complexity O(N logN).
Polarization Encoding Decoding Construction Performance
Encoding complexity
Theorem
Encoding complexity for polar coding is O(N logN).
Proof:
◮ Polar coding transform can be represented as a graph withN[1 + log(N)] variables.
◮ The graph has (1 + log(N)) levels with N variables at eachlevel.
◮ Computation begins at the source level and can be carried outlevel by level.
◮ Space complexity O(N), time complexity O(N logN).
Polarization Encoding Decoding Construction Performance
Encoding complexity
Theorem
Encoding complexity for polar coding is O(N logN).
Proof:
◮ Polar coding transform can be represented as a graph withN[1 + log(N)] variables.
◮ The graph has (1 + log(N)) levels with N variables at eachlevel.
◮ Computation begins at the source level and can be carried outlevel by level.
◮ Space complexity O(N), time complexity O(N logN).
Polarization Encoding Decoding Construction Performance
Encoding: an example
+
+
+
+
+
+
+
+
+
+
+
+
W
W
W
W
W
W
W
W
Y8
Y7
Y6
Y5
Y4
Y3
Y2
Y1
1
0
1
0
1
0
0
0
free
free
free
frozen
free
frozen
frozen
frozen
Polarization Encoding Decoding Construction Performance
Encoding: an example
+
+
+
+
+
+
+
+
+
+
+
+
W
W
W
W
W
W
W
W
Y8
Y7
Y6
Y5
Y4
Y3
Y2
Y1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
free
free
free
frozen
free
frozen
frozen
frozen
Polarization Encoding Decoding Construction Performance
Encoding: an example
+
+
+
+
+
+
+
+
+
+
+
+
W
W
W
W
W
W
W
W
Y8
Y7
Y6
Y5
Y4
Y3
Y2
Y1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
free
free
free
frozen
free
frozen
frozen
frozen
Polarization Encoding Decoding Construction Performance
Encoding: an example
+
+
+
+
+
+
+
+
+
+
+
+
W
W
W
W
W
W
W
W
Y8
Y7
Y6
Y5
Y4
Y3
Y2
Y1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
free
free
free
frozen
free
frozen
frozen
frozen
Polarization Encoding Decoding Construction Performance
Successive Cancellation Decoding (SCD)
Theorem
The complexity of successive cancellation decoding for polar codesis O(N logN).
Proof: Given below.
Polarization Encoding Decoding Construction Performance
SCD: Exploit the x = |a|a+ b| structure
+
+
+
+
+
+
+
+
+
+
+
+
W
W
W
W
W
W
W
W
y8
y7
y6
y5
y4
y3
y2
y1
u8
u7
u6
u5
u4
u3
u2
u1
x8
x7
x6
x5
x4
x3
x2
x1
a4
a3
a2
a1
b4
b3
b2
b1
Polarization Encoding Decoding Construction Performance
First phase: treat a as noise, decode (u1, u2, u3, u4)
+
+
+
+
+
+
+
+
W
W
W
W
W
W
W
W
u4
u3
u2
u1
x8
x7
x6
x5
x4
x3
x2
x1
y8
y7
y6
y5
y4
y3
y2
y1
noise a4
noise a3
noise a2
noise a1
b4
b3
b2
b1
Polarization Encoding Decoding Construction Performance
End of first phase
+
+
+
+
+
+
+
+
+
+
+
+
W
W
W
W
W
W
W
W
y8
y7
y6
y5
y4
y3
y2
y1
u8
u7
u6
u5
u4
u3
u2
u1
x8
x7
x6
x5
x4
x3
x2
x1
a4
a3
a2
a1
b4
b3
b2
b1
Polarization Encoding Decoding Construction Performance
Second phase: Treat b as known, decode (u5, u6, u7, u8)
+
+
+
+
+
+
+
+
W
W
W
W
W
W
W
W
u8
u7
u6
u5
y8
y7
y6
y5
y4
y3
y2
y1
a4
a3
a2
a1
known b4
known b3
known b2
known b1
Polarization Encoding Decoding Construction Performance
First phase in detail
+
+
+
+
+
+
+
+
W
W
W
W
W
W
W
W
u4
u3
u2
u1
x8
x7
x6
x5
x4
x3
x2
x1
y8
y7
y6
y5
y4
y3
y2
y1
noise a4
noise a3
noise a2
noise a1
b4
b3
b2
b1
Polarization Encoding Decoding Construction Performance
Equivalent channel model
+
+
+
+
W
W
W
W
W
W
W
W
x8
x7
x6
x5
x4
x3
x2
x1
y8
y7
y6
y5
y4
y3
y2
y1
noise a4
noise a3
noise a2
noise a1
b4
b3
b2
b1
Polarization Encoding Decoding Construction Performance
First copy of W −
+
+
+
+
W
W
W
W
W
W
W
W
W
W
x8
x7
x6
x5
x4
x3
x2
x1
y8
y7
y6
y5
y4
y3
y2
y1
noise a4
noise a3
noise a2
noise a1
b4
b3
b2
b1
Polarization Encoding Decoding Construction Performance
Second copy of W −
+
+
+
+
W
W
W
W
W
W
W
W
W
W
x8
x7
x6
x5
x4
x3
x2
x1
y8
y7
y6
y5
y4
y3
y2
y1
noise a4
noise a3
noise a2
noise a1
b4
b3
b2
b1
Polarization Encoding Decoding Construction Performance
Third copy of W −
+
+
+
+
W
W
W
W
W
W
W
W
W
W
x8
x7
x6
x5
x4
x3
x2
x1
y8
y7
y6
y5
y4
y3
y2
y1
noise a4
noise a3
noise a2
noise a1
b4
b3
b2
b1
Polarization Encoding Decoding Construction Performance
Fourth copy of W −
+
+
+
+
W
W
W
W
W
W
W
W
W
W
x8
x7
x6
x5
x4
x3
x2
x1
y8
y7
y6
y5
y4
y3
y2
y1
noise a4
noise a3
noise a2
noise a1
b4
b3
b2
b1
Polarization Encoding Decoding Construction Performance
Decoding on W−
+
+
+
+
W−
W−
W−
W−
u4
u3
u2
u1
(y4, y8)
(y3, y7)
(y2, y6)
(y1, y5)
b4
b3
b2
b1
Polarization Encoding Decoding Construction Performance
b = |t|t+w|
+
+
+
+
W−
W−
W−
W−
u4
u3
u2
u1
(y4, y8)
(y3, y7)
(y2, y6)
(y1, y5)
b4
b3
b2
b1
t2
t1
w2
w1
Polarization Encoding Decoding Construction Performance
Decoding on W−−
+
W−−
W−−
u2
u1
(y2, y4, y6, y8)
(y1, y3, y5, y7)
w2
w1
Polarization Encoding Decoding Construction Performance
Decoding on W−−−
W−−−
u1 (y1, y2, . . . , y8)
Polarization Encoding Decoding Construction Performance
Decoding on W−−−
W−−−
u1 (y1, y2, . . . , y8)
Compute
L−−− ∆=
W−−−(y1, . . . , y8 | u1 = 0)
W−−−(y1, . . . , y8 | u1 = 1).
Polarization Encoding Decoding Construction Performance
Decoding on W−−−
W−−−
u1 (y1, y2, . . . , y8)
Compute
L−−− ∆=
W−−−(y1, . . . , y8 | u1 = 0)
W−−−(y1, . . . , y8 | u1 = 1).
Set
u1 =
u1 if u1 is frozen
0 else if L−−− > 0
1 else
Polarization Encoding Decoding Construction Performance
Decoding on W−−−
W−−−
u1 (y1, y2, . . . , y8)
Compute
L−−− ∆=
W−−−(y1, . . . , y8 | u1 = 0)
W−−−(y1, . . . , y8 | u1 = 1).
Set
u1 =
u1 if u1 is frozen
0 else if L−−− > 0
1 else
Polarization Encoding Decoding Construction Performance
Decoding on W−−−
W−−−
u1 (y1, y2, . . . , y8)
Compute
L−−− ∆=
W−−−(y1, . . . , y8 | u1 = 0)
W−−−(y1, . . . , y8 | u1 = 1).
Set
u1 =
u1 if u1 is frozen
0 else if L−−− > 0
1 else
Polarization Encoding Decoding Construction Performance
Decoding on W−−+
+
W−−
W−−
u2
known u1
(y2, y4, y6, y8)
(y1, y3, y5, y7)
Polarization Encoding Decoding Construction Performance
Decoding on W−−+
W−−+u2 (y1, . . . , y8, u1)
Polarization Encoding Decoding Construction Performance
Decoding on W−−+
W−−+u2 (y1, . . . , y8, u1)
Compute
L−−+ ∆=
W−−+(y1, . . . , y8, u1 | u2 = 0)
W−−+(y1, . . . , y8, u1 | u2 = 1).
Polarization Encoding Decoding Construction Performance
Decoding on W−−+
W−−+u2 (y1, . . . , y8, u1)
Compute
L−−+ ∆=
W−−+(y1, . . . , y8, u1 | u2 = 0)
W−−+(y1, . . . , y8, u1 | u2 = 1).
Set
u2 =
u2 if u2 is frozen
0 else if L−−+ > 0
1 else
Polarization Encoding Decoding Construction Performance
Decoding on W−−+
W−−+u2 (y1, . . . , y8, u1)
Compute
L−−+ ∆=
W−−+(y1, . . . , y8, u1 | u2 = 0)
W−−+(y1, . . . , y8, u1 | u2 = 1).
Set
u2 =
u2 if u2 is frozen
0 else if L−−+ > 0
1 else
Polarization Encoding Decoding Construction Performance
Decoding on W−−+
W−−+u2 (y1, . . . , y8, u1)
Compute
L−−+ ∆=
W−−+(y1, . . . , y8, u1 | u2 = 0)
W−−+(y1, . . . , y8, u1 | u2 = 1).
Set
u2 =
u2 if u2 is frozen
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 decodingproblems of size N/2 for W− and W+
◮ SoCN = 2CN/2 + kN
for some constant k
◮ This gives CN = O(N logN)
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 decodingproblems of size N/2 for W− and W+
◮ SoCN = 2CN/2 + kN
for some constant k
◮ This gives CN = O(N logN)
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 decodingproblems of size N/2 for W− and W+
◮ SoCN = 2CN/2 + kN
for some constant k
◮ This gives CN = O(N logN)
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 decodingproblems of size N/2 for W− and W+
◮ SoCN = 2CN/2 + kN
for some constant k
◮ This gives CN = O(N logN)
Polarization Encoding Decoding Construction Performance
Performance of polar codes
Theorem
For any rate R < I (W ) and block-length N, the probability offrame error for polar codes under successive cancelation decoding isbounded 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 inO(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 constructedsuch that it has
◮ construction complexity O(Npoly(log(N))),
◮ encoding complexity ≈ N logN,
◮ successive-cancellation decoding complexity ≈ N logN,
◮ 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 constructedsuch that it has
◮ construction complexity O(Npoly(log(N))),
◮ encoding complexity ≈ N logN,
◮ successive-cancellation decoding complexity ≈ N logN,
◮ 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 constructedsuch that it has
◮ construction complexity O(Npoly(log(N))),
◮ encoding complexity ≈ N logN,
◮ successive-cancellation decoding complexity ≈ N logN,
◮ 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 constructedsuch that it has
◮ construction complexity O(Npoly(log(N))),
◮ encoding complexity ≈ N logN,
◮ successive-cancellation decoding complexity ≈ N logN,
◮ 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 listdecoder for Reed-Muller codes.
◮ First produce L candidate decisions
◮ Pick the most likely word from the list
◮ Complexity O(LN logN)
Polarization Encoding Decoding Construction Performance
List decoder for polar codes
Developed by Tal and Vardy (2011); similar to Dumer’s listdecoder for Reed-Muller codes.
◮ First produce L candidate decisions
◮ Pick the most likely word from the list
◮ Complexity O(LN logN)
Polarization Encoding Decoding Construction Performance
List decoder for polar codes
Developed by Tal and Vardy (2011); similar to Dumer’s listdecoder for Reed-Muller codes.
◮ First produce L candidate decisions
◮ Pick the most likely word from the list
◮ Complexity O(LN logN)
Polarization Encoding Decoding Construction Performance
Tal-Vardy list decoder performanceLength n = 2048, rate R = 0.5, BPSK-AWGN channel, list-size L.
Polarization Encoding Decoding Construction Performance
Tal-Vardy list decoder performanceLength n = 2048, rate R = 0.5, BPSK-AWGN channel, list-size L.
Polarization Encoding Decoding Construction Performance
Tal-Vardy list decoder performanceLength n = 2048, rate R = 0.5, BPSK-AWGN channel, list-size L.
Polarization Encoding Decoding Construction Performance
Tal-Vardy list decoder performanceLength 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 – almostunavoidable
◮ Polar codes are low-complexity methods designed to exploitpolarization for achieving Shannon limits
◮ Polar codes with some help from other methods performcompetitively with the state-of-the-art codes in terms ofcomplexity and performance
Polarization Encoding Decoding Construction Performance
Summary
◮ Polarization is a commonplace phenomenon – almostunavoidable
◮ Polar codes are low-complexity methods designed to exploitpolarization for achieving Shannon limits
◮ Polar codes with some help from other methods performcompetitively with the state-of-the-art codes in terms ofcomplexity and performance
Polarization Encoding Decoding Construction Performance
Summary
◮ Polarization is a commonplace phenomenon – almostunavoidable
◮ Polar codes are low-complexity methods designed to exploitpolarization for achieving Shannon limits
◮ Polar codes with some help from other methods performcompetitively with the state-of-the-art codes in terms ofcomplexity and performance