67
LLR-Based Successive Cancellation List Decoding of Polar Codes Alexios Balatsoukas-Stimming, 1 Mani Bastani Parizi, 2 Andreas Burg 1 1: Telecommunications Circuits Laboratory, EPFL 2: Information Theory Laboratory, EPFL ICASSP 2014, Florence Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 1 / 13

LLR-Based Successive Cancellation List Decoding of Polar Codes · Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 3 / 13. SCDecodingandSCLDecodinginDetails

Embed Size (px)

Citation preview

LLR-Based Successive Cancellation List Decoding ofPolar Codes

Alexios Balatsoukas-Stimming,1 Mani Bastani Parizi,2 Andreas Burg1

1: Telecommunications Circuits Laboratory, EPFL2: Information Theory Laboratory, EPFL

ICASSP 2014, Florence

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 1 / 13

Arıkan’s Polar Coding Paradigm

A = {3, 5, 6, 7}

01234567

Encoderx = Gu

Memoryless ChannelW N (y|x) =

∏Ni=1 W (yi|xi)

x ∈ {0, 1}N

Decodery ∈ YN

u =

000

arg max

uA∈{0,1}NR

Pr[Y = y, UAC = 0|UA = uA]arg maxui∈{0,1}

Pr[Y = y, Ui−10 = ui−1

0 |Ui = ui]

Construction:Information Indices: A ⊂ {0, 1, . . . , N − 1}, |A| = NR, N = 2n.

Encoding:

uA , [ui, i ∈ A]T ← data bits,uAC ← known-to-receiver frozen bits (say all-zero).x← Gu (using O(N log N) binary additions).

Decoding: Estimate the information bits uA.

(Optimal) ML Decoding: Consider all 2NR possible paths on the binary tree ofheight N and choose the best → Too complex!(Suboptimal) Successive Cancellation (SC) Decoding: At each level i ∈ A,choose the best possible value of ui given the past estimations and frozen bits.

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 2 / 13

Arıkan’s Polar Coding Paradigm

u =

u0u1u2u3u4u5u6u7

Encoderx = Gu

Memoryless ChannelW N (y|x) =

∏Ni=1 W (yi|xi)

x ∈ {0, 1}N

Decodery ∈ YN

u =

000

arg max

uA∈{0,1}NR

Pr[Y = y, UAC = 0|UA = uA]arg maxui∈{0,1}

Pr[Y = y, Ui−10 = ui−1

0 |Ui = ui]

Construction:Information Indices: A ⊂ {0, 1, . . . , N − 1}, |A| = NR, N = 2n.

Encoding:uA , [ui, i ∈ A]T ← data bits,

uAC ← known-to-receiver frozen bits (say all-zero).x← Gu (using O(N log N) binary additions).

Decoding: Estimate the information bits uA.

(Optimal) ML Decoding: Consider all 2NR possible paths on the binary tree ofheight N and choose the best → Too complex!(Suboptimal) Successive Cancellation (SC) Decoding: At each level i ∈ A,choose the best possible value of ui given the past estimations and frozen bits.

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 2 / 13

Arıkan’s Polar Coding Paradigm

u =

000u30u5u6u7

Encoderx = Gu

Memoryless ChannelW N (y|x) =

∏Ni=1 W (yi|xi)

x ∈ {0, 1}N

Decodery ∈ YN

u =

000

arg max

uA∈{0,1}NR

Pr[Y = y, UAC = 0|UA = uA]arg maxui∈{0,1}

Pr[Y = y, Ui−10 = ui−1

0 |Ui = ui]

Construction:Information Indices: A ⊂ {0, 1, . . . , N − 1}, |A| = NR, N = 2n.

Encoding:uA , [ui, i ∈ A]T ← data bits,uAC ← known-to-receiver frozen bits (say all-zero).

x← Gu (using O(N log N) binary additions).Decoding: Estimate the information bits uA.

(Optimal) ML Decoding: Consider all 2NR possible paths on the binary tree ofheight N and choose the best → Too complex!(Suboptimal) Successive Cancellation (SC) Decoding: At each level i ∈ A,choose the best possible value of ui given the past estimations and frozen bits.

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 2 / 13

Arıkan’s Polar Coding Paradigm

u =

000u30u5u6u7

Encoderx = Gu

Memoryless ChannelW N (y|x) =

∏Ni=1 W (yi|xi)

x ∈ {0, 1}N

Decodery ∈ YN

u =

000

arg max

uA∈{0,1}NR

Pr[Y = y, UAC = 0|UA = uA]arg maxui∈{0,1}

Pr[Y = y, Ui−10 = ui−1

0 |Ui = ui]

Construction:Information Indices: A ⊂ {0, 1, . . . , N − 1}, |A| = NR, N = 2n.

Encoding:uA , [ui, i ∈ A]T ← data bits,uAC ← known-to-receiver frozen bits (say all-zero).x← Gu (using O(N log N) binary additions).

Decoding: Estimate the information bits uA.

(Optimal) ML Decoding: Consider all 2NR possible paths on the binary tree ofheight N and choose the best → Too complex!(Suboptimal) Successive Cancellation (SC) Decoding: At each level i ∈ A,choose the best possible value of ui given the past estimations and frozen bits.

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 2 / 13

Arıkan’s Polar Coding Paradigm

u =

000u30u5u6u7

Encoderx = Gu

Memoryless ChannelW N (y|x) =

∏Ni=1 W (yi|xi)

x ∈ {0, 1}N

Decodery ∈ YN

u =

000

arg max

uA∈{0,1}NR

Pr[Y = y, UAC = 0|UA = uA]arg maxui∈{0,1}

Pr[Y = y, Ui−10 = ui−1

0 |Ui = ui]

Construction:Information Indices: A ⊂ {0, 1, . . . , N − 1}, |A| = NR, N = 2n.

Encoding:uA , [ui, i ∈ A]T ← data bits,uAC ← known-to-receiver frozen bits (say all-zero).x← Gu (using O(N log N) binary additions).

Decoding: Estimate the information bits uA.

(Optimal) ML Decoding: Consider all 2NR possible paths on the binary tree ofheight N and choose the best → Too complex!(Suboptimal) Successive Cancellation (SC) Decoding: At each level i ∈ A,choose the best possible value of ui given the past estimations and frozen bits.

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 2 / 13

Arıkan’s Polar Coding Paradigm

u =

000u30u5u6u7

Encoderx = Gu

Memoryless ChannelW N (y|x) =

∏Ni=1 W (yi|xi)

x ∈ {0, 1}N

Decodery ∈ YN

u =

000

u3 =?0

u5 =?u6 =?u7 =?

arg maxuA∈{0,1}NR

Pr[Y = y, UAC = 0|UA = uA]arg maxui∈{0,1}

Pr[Y = y, Ui−10 = ui−1

0 |Ui = ui]

Construction:Information Indices: A ⊂ {0, 1, . . . , N − 1}, |A| = NR, N = 2n.

Encoding:uA , [ui, i ∈ A]T ← data bits,uAC ← known-to-receiver frozen bits (say all-zero).x← Gu (using O(N log N) binary additions).

Decoding: Estimate the information bits uA.

(Optimal) ML Decoding: Consider all 2NR possible paths on the binary tree ofheight N and choose the best → Too complex!(Suboptimal) Successive Cancellation (SC) Decoding: At each level i ∈ A,choose the best possible value of ui given the past estimations and frozen bits.

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 2 / 13

Arıkan’s Polar Coding Paradigm

u =

000u30u5u6u7

Encoderx = Gu

Memoryless ChannelW N (y|x) =

∏Ni=1 W (yi|xi)

x ∈ {0, 1}N

Decodery ∈ YN

u =

000

u3 =?0

u5 =?u6 =?u7 =?

arg max

uA∈{0,1}NR

Pr[Y = y, UAC = 0|UA = uA]

arg maxui∈{0,1}

Pr[Y = y, Ui−10 = ui−1

0 |Ui = ui]

Construction:Information Indices: A ⊂ {0, 1, . . . , N − 1}, |A| = NR, N = 2n.

Encoding:uA , [ui, i ∈ A]T ← data bits,uAC ← known-to-receiver frozen bits (say all-zero).x← Gu (using O(N log N) binary additions).

Decoding: Estimate the information bits uA.(Optimal) ML Decoding: Consider all 2NR possible paths on the binary tree ofheight N and choose the best → Too complex!

(Suboptimal) Successive Cancellation (SC) Decoding: At each level i ∈ A,choose the best possible value of ui given the past estimations and frozen bits.

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 2 / 13

Arıkan’s Polar Coding Paradigm

u =

000u30u5u6u7

Encoderx = Gu

Memoryless ChannelW N (y|x) =

∏Ni=1 W (yi|xi)

x ∈ {0, 1}N

Decodery ∈ YN

u =

000

u3 =??

u5 =?u6 =?u7 =?

arg maxuA∈{0,1}NR

Pr[Y = y, UAC = 0|UA = uA]

arg maxui∈{0,1}

Pr[Y = y, Ui−10 = ui−1

0 |Ui = ui]

Construction:Information Indices: A ⊂ {0, 1, . . . , N − 1}, |A| = NR, N = 2n.

Encoding:uA , [ui, i ∈ A]T ← data bits,uAC ← known-to-receiver frozen bits (say all-zero).x← Gu (using O(N log N) binary additions).

Decoding: Estimate the information bits uA.(Optimal) ML Decoding: Consider all 2NR possible paths on the binary tree ofheight N and choose the best → Too complex!(Suboptimal) Successive Cancellation (SC) Decoding: At each level i ∈ A,choose the best possible value of ui given the past estimations and frozen bits.

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 2 / 13

SC Decoding and SCL Decoding in Details . . .

for i = 0, 1, . . . , N − 1 do // Start from the root and go down...if i 6∈ A then

ui ← 0;else

ui ← arg maxui∈{0,1}

W(i)n (y, ui−1|ui);

return uA ;

Sub-optimal, but still asymptotically powerful; Pe ≈ O(2−√

N ) [Arıkan andTelatar’09] ⇒ Polar codes are capacity-achieving.Efficient: O(N log N) arithmetic operations [Arıkan’09]Successive Cancellation List (SCL) decoding to improve the poor finiteblock-length performance [Tal and Vardy’11].

Idea: keep track of L paths on the binary tree concurrently.Time complexity: O(L N log N).

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 3 / 13

SC Decoding and SCL Decoding in Details . . .

for i = 0, 1, . . . , N − 1 do // Start from the root and go down...if i 6∈ A then

ui ← 0; // If i is a frozen index the you know where to goelse

ui ← arg maxui∈{0,1}

W(i)n (y, ui−1|ui);

return uA ;

Sub-optimal, but still asymptotically powerful; Pe ≈ O(2−√

N ) [Arıkan andTelatar’09] ⇒ Polar codes are capacity-achieving.Efficient: O(N log N) arithmetic operations [Arıkan’09]Successive Cancellation List (SCL) decoding to improve the poor finiteblock-length performance [Tal and Vardy’11].

Idea: keep track of L paths on the binary tree concurrently.Time complexity: O(L N log N).

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 3 / 13

SC Decoding and SCL Decoding in Details . . .

for i = 0, 1, . . . , N − 1 do // Start from the root and go down...if i 6∈ A then

ui ← 0; // If i is a frozen index the you know where to goelse

ui ← arg maxui∈{0,1}

W(i)n (y, ui−1|ui); // Follow the best direction given the past

return uA ;

Sub-optimal, but still asymptotically powerful; Pe ≈ O(2−√

N ) [Arıkan andTelatar’09] ⇒ Polar codes are capacity-achieving.Efficient: O(N log N) arithmetic operations [Arıkan’09]Successive Cancellation List (SCL) decoding to improve the poor finiteblock-length performance [Tal and Vardy’11].

Idea: keep track of L paths on the binary tree concurrently.Time complexity: O(L N log N).

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 3 / 13

SC Decoding and SCL Decoding in Details . . .

for i = 0, 1, . . . , N − 1 do // Start from the root and go down...if i 6∈ A then

ui ← 0; // If i is a frozen index the you know where to goelse

ui ← arg maxui∈{0,1}

W(i)n (y, ui−1|ui); // Follow the best direction given the past

return uA ;

Sub-optimal, but still asymptotically powerful; Pe ≈ O(2−√

N ) [Arıkan andTelatar’09] ⇒ Polar codes are capacity-achieving.Efficient: O(N log N) arithmetic operations [Arıkan’09]Successive Cancellation List (SCL) decoding to improve the poor finiteblock-length performance [Tal and Vardy’11].

Idea: keep track of L paths on the binary tree concurrently.Time complexity: O(L N log N).

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 3 / 13

SC Decoding and SCL Decoding in Details . . .

for i = 0, 1, . . . , N − 1 do // Start from the root and go down...if i 6∈ A then

ui ← 0; // If i is a frozen index the you know where to goelse

ui ← arg maxui∈{0,1}

W(i)n (y, ui−1|ui); // Follow the best direction given the past

return uA ;

Sub-optimal, but still asymptotically powerful; Pe ≈ O(2−√

N ) [Arıkan andTelatar’09] ⇒ Polar codes are capacity-achieving.

Efficient: O(N log N) arithmetic operations [Arıkan’09]Successive Cancellation List (SCL) decoding to improve the poor finiteblock-length performance [Tal and Vardy’11].

Idea: keep track of L paths on the binary tree concurrently.Time complexity: O(L N log N).

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 3 / 13

SC Decoding and SCL Decoding in Details . . .

for i = 0, 1, . . . , N − 1 do // Start from the root and go down...if i 6∈ A then

ui ← 0; // If i is a frozen index the you know where to goelse

ui ← arg maxui∈{0,1}

W(i)n (y, ui−1|ui); // Follow the best direction given the past

return uA ;

Sub-optimal, but still asymptotically powerful; Pe ≈ O(2−√

N ) [Arıkan andTelatar’09] ⇒ Polar codes are capacity-achieving.Efficient: O(N log N) arithmetic operations [Arıkan’09]

Successive Cancellation List (SCL) decoding to improve the poor finiteblock-length performance [Tal and Vardy’11].

Idea: keep track of L paths on the binary tree concurrently.Time complexity: O(L N log N).

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 3 / 13

SC Decoding and SCL Decoding in Details . . .

for i = 0, 1, . . . , N − 1 do // Start from the root and go down...if i 6∈ A then

ui ← 0; // If i is a frozen index the you know where to goelse

ui ← arg maxui∈{0,1}

W(i)n (y, ui−1|ui); // Follow the best direction given the past

return uA ;

Sub-optimal, but still asymptotically powerful; Pe ≈ O(2−√

N ) [Arıkan andTelatar’09] ⇒ Polar codes are capacity-achieving.Efficient: O(N log N) arithmetic operations [Arıkan’09]Successive Cancellation List (SCL) decoding to improve the poor finiteblock-length performance [Tal and Vardy’11].

Idea: keep track of L paths on the binary tree concurrently.Time complexity: O(L N log N).

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 3 / 13

SC Decoding and SCL Decoding in Details . . .

for i = 0, 1, . . . , N − 1 do // Go down like before ...if i 6∈ A then

ui[`]← ui, ∀` ∈ {0, 1, . . . , L− 1} ; // Frozen bits are the same for all L pathselse // Continue along the L best paths on the tree

if Less than L paths are active thenDuplicate all the paths and continue with both possible values of ui;

elseSort the likelihoods

{W

(i)n (y, ui−1[`]|ui) : ∀` ∈ {0, 1, . . . , L− 1}, ∀ui ∈ {0, 1}

};

Continue along the L most likely paths;

`∗ ← The index of the most-likely path;return uA[`∗];

Sub-optimal, but still asymptotically powerful; Pe ≈ O(2−√

N ) [Arıkan andTelatar’09] ⇒ Polar codes are capacity-achieving.Efficient: O(N log N) arithmetic operations [Arıkan’09]Successive Cancellation List (SCL) decoding to improve the poor finiteblock-length performance [Tal and Vardy’11].

Idea: keep track of L paths on the binary tree concurrently.

Time complexity: O(L N log N).

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 3 / 13

SC Decoding and SCL Decoding in Details . . .

for i = 0, 1, . . . , N − 1 do // Go down like before ...if i 6∈ A then

ui[`]← ui, ∀` ∈ {0, 1, . . . , L− 1} ; // Frozen bits are the same for all L pathselse // Continue along the L best paths on the tree

if Less than L paths are active thenDuplicate all the paths and continue with both possible values of ui;

elseSort the likelihoods

{W

(i)n (y, ui−1[`]|ui) : ∀` ∈ {0, 1, . . . , L− 1}, ∀ui ∈ {0, 1}

};

Continue along the L most likely paths;

`∗ ← The index of the most-likely path;return uA[`∗];

Sub-optimal, but still asymptotically powerful; Pe ≈ O(2−√

N ) [Arıkan andTelatar’09] ⇒ Polar codes are capacity-achieving.Efficient: O(N log N) arithmetic operations [Arıkan’09]Successive Cancellation List (SCL) decoding to improve the poor finiteblock-length performance [Tal and Vardy’11].

Idea: keep track of L paths on the binary tree concurrently.Time complexity: O(L N log N).

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 3 / 13

Example of SC versus SCL Decoding

u0

u1

u2

u3

u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

0u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

1

0

0

0N = 23, A = {3, 5, 6, 7}uA = [0, 0, 0, 0]T

SC Decoder

⇒ uA = [1, 0, 1, 0]T /

SC List Decoder, L = 2

⇒ uA = [0, 0, 0, 0]T ,

? ?

? ?

? ?

?

? ?

? ? ? ?

? ? ? ?

? ?

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 4 / 13

Example of SC versus SCL Decoding

u0

u1

u2

u3

u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

0u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

1

0

0

0N = 23, A = {3, 5, 6, 7}uA = [0, 0, 0, 0]T

SC Decoder

⇒ uA = [1, 0, 1, 0]T /SC List Decoder, L = 2

⇒ uA = [0, 0, 0, 0]T ,

? ?

? ?

? ?

?

? ?

? ? ? ?

? ? ? ?

? ?

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 4 / 13

Example of SC versus SCL Decoding

u0

u1

u2

u3

u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

0u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

1

0

0

0N = 23, A = {3, 5, 6, 7}uA = [0, 0, 0, 0]T

SC Decoder

⇒ uA = [1, 0, 1, 0]T /SC List Decoder, L = 2

⇒ uA = [0, 0, 0, 0]T ,

? ?

? ?

? ?

?

? ?

? ? ? ?

? ? ? ?

? ?

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 4 / 13

Example of SC versus SCL Decoding

u0

u1

u2

u3

u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

0u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

1

0

0

0N = 23, A = {3, 5, 6, 7}uA = [0, 0, 0, 0]T

SC Decoder

⇒ uA = [1, 0, 1, 0]T /SC List Decoder, L = 2

⇒ uA = [0, 0, 0, 0]T ,

? ?

? ?

? ?

?

? ?

? ? ? ?

? ? ? ?

? ?

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 4 / 13

Example of SC versus SCL Decoding

u0

u1

u2

u3

u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

0u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

1

0

0

0N = 23, A = {3, 5, 6, 7}uA = [0, 0, 0, 0]T

SC Decoder

⇒ uA = [1, 0, 1, 0]T /SC List Decoder, L = 2

⇒ uA = [0, 0, 0, 0]T ,

? ?

? ?

? ?

?

? ?

? ? ? ?

? ? ? ?

? ?

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 4 / 13

Example of SC versus SCL Decoding

u0

u1

u2

u3

u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

0u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

1

0

0

0N = 23, A = {3, 5, 6, 7}uA = [0, 0, 0, 0]T

SC Decoder

⇒ uA = [1, 0, 1, 0]T /SC List Decoder, L = 2

⇒ uA = [0, 0, 0, 0]T ,

? ?

? ?

? ?

?

? ?

? ? ? ?

? ? ? ?

? ?

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 4 / 13

Example of SC versus SCL Decoding

u0

u1

u2

u3

u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

0u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

1

0

0

0N = 23, A = {3, 5, 6, 7}uA = [0, 0, 0, 0]T

SC Decoder

⇒ uA = [1, 0, 1, 0]T /SC List Decoder, L = 2

⇒ uA = [0, 0, 0, 0]T ,

? ?

? ?

? ?

?

? ?

? ? ? ?

? ? ? ?

? ?

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 4 / 13

Example of SC versus SCL Decoding

u0

u1

u2

u3

u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

0u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

1

0

0

0N = 23, A = {3, 5, 6, 7}uA = [0, 0, 0, 0]T

SC Decoder⇒ uA = [1, 0, 1, 0]T /

SC List Decoder, L = 2

⇒ uA = [0, 0, 0, 0]T ,

? ?

? ?

? ?

?

? ?

? ? ? ?

? ? ? ?

? ?

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 4 / 13

Example of SC versus SCL Decoding

u0

u1

u2

u3

u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

0u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

1

0

0

0N = 23, A = {3, 5, 6, 7}uA = [0, 0, 0, 0]T

SC Decoder⇒ uA = [1, 0, 1, 0]T /

SC List Decoder, L = 2

⇒ uA = [0, 0, 0, 0]T ,

? ?

? ?

? ?

?

? ?

? ? ? ?

? ? ? ?

? ?

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 4 / 13

Example of SC versus SCL Decoding

u0

u1

u2

u3

u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

0u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

1

0

0

0N = 23, A = {3, 5, 6, 7}uA = [0, 0, 0, 0]T

SC Decoder⇒ uA = [1, 0, 1, 0]T /

SC List Decoder, L = 2

⇒ uA = [0, 0, 0, 0]T ,

? ?

? ?

? ?

?

? ?

? ? ? ?

? ? ? ?

? ?

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 4 / 13

Example of SC versus SCL Decoding

u0

u1

u2

u3

u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

0u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

1

0

0

0N = 23, A = {3, 5, 6, 7}uA = [0, 0, 0, 0]T

SC Decoder⇒ uA = [1, 0, 1, 0]T /

SC List Decoder, L = 2

⇒ uA = [0, 0, 0, 0]T ,

? ?

? ?

? ?

?

? ?

? ? ? ?

? ? ? ?

? ?

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 4 / 13

Example of SC versus SCL Decoding

u0

u1

u2

u3

u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

0u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

1

0

0

0N = 23, A = {3, 5, 6, 7}uA = [0, 0, 0, 0]T

SC Decoder⇒ uA = [1, 0, 1, 0]T /

SC List Decoder, L = 2

⇒ uA = [0, 0, 0, 0]T ,

? ?

? ?

? ?

?

? ?

? ? ? ?

? ? ? ?

? ?

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 4 / 13

Example of SC versus SCL Decoding

u0

u1

u2

u3

u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

0u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

1

0

0

0N = 23, A = {3, 5, 6, 7}uA = [0, 0, 0, 0]T

SC Decoder⇒ uA = [1, 0, 1, 0]T /

SC List Decoder, L = 2

⇒ uA = [0, 0, 0, 0]T ,

? ?

? ?

? ?

?

? ?

? ? ? ?

? ? ? ?

? ?

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 4 / 13

Example of SC versus SCL Decoding

u0

u1

u2

u3

u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

0u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

1

0

0

0N = 23, A = {3, 5, 6, 7}uA = [0, 0, 0, 0]T

SC Decoder⇒ uA = [1, 0, 1, 0]T /

SC List Decoder, L = 2

⇒ uA = [0, 0, 0, 0]T ,

? ?

? ?

? ?

?

? ?

? ? ? ?

? ? ? ?

? ?

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 4 / 13

Example of SC versus SCL Decoding

u0

u1

u2

u3

u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

0u4

u5

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

0

u6

u7

uA

0uA

1

0u7

uA

0uA

1

1

1

0

1

0

0

0N = 23, A = {3, 5, 6, 7}uA = [0, 0, 0, 0]T

SC Decoder⇒ uA = [1, 0, 1, 0]T /

SC List Decoder, L = 2⇒ uA = [0, 0, 0, 0]T ,

? ?

? ?

? ?

?

? ?

? ? ? ?

? ? ? ?

? ?

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 4 / 13

Implementing the Decoders

SC Decoder: binary decisions

Computing the log-likelihood ratios (LLRs),

L(i)n , ln W

(i)n (y, ui−1|ui = 0)

W(i)n (y, ui−1|ui = 1)

is sufficient for the decisions.LLR-based implementation:

Simple arithmetics (Min-Sum approximation),Numerical stability.

SC List Decoding: Decisions of type best L out of 2L possibilities.

The LLRs

L(i)n [`] , ln W

(i)n (y, ui−1[`]|ui = 0)

W(i)n (y, ui−1[`]|ui = 1)

, ` ∈ {0, 1, . . . , L− 1},

seem not to be useful a priori.Computing the likelihoods directly is practically impossible because ofunderflows.

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 5 / 13

Implementing the Decoders

SC Decoder: binary decisionsComputing the log-likelihood ratios (LLRs),

L(i)n , ln W

(i)n (y, ui−1|ui = 0)

W(i)n (y, ui−1|ui = 1)

is sufficient for the decisions.

LLR-based implementation:Simple arithmetics (Min-Sum approximation),Numerical stability.

SC List Decoding: Decisions of type best L out of 2L possibilities.

The LLRs

L(i)n [`] , ln W

(i)n (y, ui−1[`]|ui = 0)

W(i)n (y, ui−1[`]|ui = 1)

, ` ∈ {0, 1, . . . , L− 1},

seem not to be useful a priori.Computing the likelihoods directly is practically impossible because ofunderflows.

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 5 / 13

Implementing the Decoders

SC Decoder: binary decisionsComputing the log-likelihood ratios (LLRs),

L(i)n , ln W

(i)n (y, ui−1|ui = 0)

W(i)n (y, ui−1|ui = 1)

is sufficient for the decisions.LLR-based implementation:

Simple arithmetics (Min-Sum approximation),Numerical stability.

SC List Decoding: Decisions of type best L out of 2L possibilities.

The LLRs

L(i)n [`] , ln W

(i)n (y, ui−1[`]|ui = 0)

W(i)n (y, ui−1[`]|ui = 1)

, ` ∈ {0, 1, . . . , L− 1},

seem not to be useful a priori.Computing the likelihoods directly is practically impossible because ofunderflows.

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 5 / 13

Implementing the Decoders

SC Decoder: binary decisionsComputing the log-likelihood ratios (LLRs),

L(i)n , ln W

(i)n (y, ui−1|ui = 0)

W(i)n (y, ui−1|ui = 1)

is sufficient for the decisions.LLR-based implementation:

Simple arithmetics (Min-Sum approximation),Numerical stability.

SC List Decoding: Decisions of type best L out of 2L possibilities.

The LLRs

L(i)n [`] , ln W

(i)n (y, ui−1[`]|ui = 0)

W(i)n (y, ui−1[`]|ui = 1)

, ` ∈ {0, 1, . . . , L− 1},

seem not to be useful a priori.Computing the likelihoods directly is practically impossible because ofunderflows.

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 5 / 13

Implementing the Decoders

SC Decoder: binary decisionsComputing the log-likelihood ratios (LLRs),

L(i)n , ln W

(i)n (y, ui−1|ui = 0)

W(i)n (y, ui−1|ui = 1)

is sufficient for the decisions.LLR-based implementation:

Simple arithmetics (Min-Sum approximation),Numerical stability.

SC List Decoding: Decisions of type best L out of 2L possibilities.The LLRs

L(i)n [`] , ln W

(i)n (y, ui−1[`]|ui = 0)

W(i)n (y, ui−1[`]|ui = 1)

, ` ∈ {0, 1, . . . , L− 1},

seem not to be useful a priori.

Computing the likelihoods directly is practically impossible because ofunderflows.

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 5 / 13

Implementing the Decoders

SC Decoder: binary decisionsComputing the log-likelihood ratios (LLRs),

L(i)n , ln W

(i)n (y, ui−1|ui = 0)

W(i)n (y, ui−1|ui = 1)

is sufficient for the decisions.LLR-based implementation:

Simple arithmetics (Min-Sum approximation),Numerical stability.

SC List Decoding: Decisions of type best L out of 2L possibilities.The LLRs

L(i)n [`] , ln W

(i)n (y, ui−1[`]|ui = 0)

W(i)n (y, ui−1[`]|ui = 1)

, ` ∈ {0, 1, . . . , L− 1},

seem not to be useful a priori.Computing the likelihoods directly is practically impossible because ofunderflows.

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 5 / 13

How to Implement a SCL Decoder?

[Tal and Vardy’11] Re-normalize the likelihoods at intermediate steps.Suitable for software implementation but still requires floating point numbersand complicated arithmetic operations (multiplications).

[Balatsoukas-Stimming et. al’13] Compute the log-likelihoods (LLs)

− ln W (i)n (y, ui−1[`]|ui), ∀` = 0, 1, .., L− 1, ui ∈ {0, 1}

Some numerical stability,Relatively simple arithmetics (Min-Sum update rules for LLs),Large and irregular memory elements

Our Contribution

The SCL Decoder can still be implemented using only the LLRs (at eachdecoding path) and an additional path-metric (used for sorting the paths).

⇒ Combining the improved performance of SCL Decoder and the ease ofimplementation of SC Decoder.

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 6 / 13

How to Implement a SCL Decoder?

[Tal and Vardy’11] Re-normalize the likelihoods at intermediate steps.Suitable for software implementation but still requires floating point numbersand complicated arithmetic operations (multiplications).

[Balatsoukas-Stimming et. al’13] Compute the log-likelihoods (LLs)

− ln W (i)n (y, ui−1[`]|ui), ∀` = 0, 1, .., L− 1, ui ∈ {0, 1}

Some numerical stability,Relatively simple arithmetics (Min-Sum update rules for LLs),Large and irregular memory elements

Our Contribution

The SCL Decoder can still be implemented using only the LLRs (at eachdecoding path) and an additional path-metric (used for sorting the paths).

⇒ Combining the improved performance of SCL Decoder and the ease ofimplementation of SC Decoder.

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 6 / 13

How to Implement a SCL Decoder?

[Tal and Vardy’11] Re-normalize the likelihoods at intermediate steps.Suitable for software implementation but still requires floating point numbersand complicated arithmetic operations (multiplications).

[Balatsoukas-Stimming et. al’13] Compute the log-likelihoods (LLs)

− ln W (i)n (y, ui−1[`]|ui), ∀` = 0, 1, .., L− 1, ui ∈ {0, 1}

Some numerical stability,Relatively simple arithmetics (Min-Sum update rules for LLs),

Large and irregular memory elements

Our Contribution

The SCL Decoder can still be implemented using only the LLRs (at eachdecoding path) and an additional path-metric (used for sorting the paths).

⇒ Combining the improved performance of SCL Decoder and the ease ofimplementation of SC Decoder.

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 6 / 13

How to Implement a SCL Decoder?

[Tal and Vardy’11] Re-normalize the likelihoods at intermediate steps.Suitable for software implementation but still requires floating point numbersand complicated arithmetic operations (multiplications).

[Balatsoukas-Stimming et. al’13] Compute the log-likelihoods (LLs)

− ln W (i)n (y, ui−1[`]|ui), ∀` = 0, 1, .., L− 1, ui ∈ {0, 1}

Some numerical stability,Relatively simple arithmetics (Min-Sum update rules for LLs),Large and irregular memory elements

Our Contribution

The SCL Decoder can still be implemented using only the LLRs (at eachdecoding path) and an additional path-metric (used for sorting the paths).

⇒ Combining the improved performance of SCL Decoder and the ease ofimplementation of SC Decoder.

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 6 / 13

How to Implement a SCL Decoder?

[Tal and Vardy’11] Re-normalize the likelihoods at intermediate steps.Suitable for software implementation but still requires floating point numbersand complicated arithmetic operations (multiplications).

[Balatsoukas-Stimming et. al’13] Compute the log-likelihoods (LLs)

− ln W (i)n (y, ui−1[`]|ui), ∀` = 0, 1, .., L− 1, ui ∈ {0, 1}

Some numerical stability,Relatively simple arithmetics (Min-Sum update rules for LLs),Large and irregular memory elements

Our ContributionThe SCL Decoder can still be implemented using only the LLRs (at eachdecoding path) and an additional path-metric (used for sorting the paths).

⇒ Combining the improved performance of SCL Decoder and the ease ofimplementation of SC Decoder.

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 6 / 13

How to Implement a SCL Decoder?

[Tal and Vardy’11] Re-normalize the likelihoods at intermediate steps.Suitable for software implementation but still requires floating point numbersand complicated arithmetic operations (multiplications).

[Balatsoukas-Stimming et. al’13] Compute the log-likelihoods (LLs)

− ln W (i)n (y, ui−1[`]|ui), ∀` = 0, 1, .., L− 1, ui ∈ {0, 1}

Some numerical stability,Relatively simple arithmetics (Min-Sum update rules for LLs),Large and irregular memory elements

Our ContributionThe SCL Decoder can still be implemented using only the LLRs (at eachdecoding path) and an additional path-metric (used for sorting the paths).

⇒ Combining the improved performance of SCL Decoder and the ease ofimplementation of SC Decoder.

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 6 / 13

LLR-based Path Metric Computation

TheoremFor each path ` ∈ {0, 1, . . . , L− 1} and each index i ∈ {0, 1, . . . , N − 1} letthe path-metric be defined as:

PM(i)` ,

i∑j=0

ln(1 + e−(1−2uj [`])·L(j)

n [`]),where L(i)

n [`] = ln W (i)n (y,ui−1[`]|0)

W(i)n (y,ui−1[`]|1)

.

If all the information bits are uniformly distributed in {0, 1}, for any pair ofpaths `, `′ ∈ {0, 1, . . . , L− 1},

W (i)n (y, ui−1[`]|ui[`]) < W (i)

n (y, ui−1[`′]|ui[`′]) ⇐⇒ PM(i)` > PM(i)

`′ .

⇒ Implement a SCL Decoder using L, LLR-based SC decoders + L memoriesfor the path-metrics.

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 7 / 13

LLR-based Path Metric Computation

TheoremFor each path ` ∈ {0, 1, . . . , L− 1} and each index i ∈ {0, 1, . . . , N − 1} letthe path-metric be defined as:

PM(i)` ,

i∑j=0

ln(1 + e−(1−2uj [`])·L(j)

n [`]),where L(i)

n [`] = ln W (i)n (y,ui−1[`]|0)

W(i)n (y,ui−1[`]|1)

.

If all the information bits are uniformly distributed in {0, 1}, for any pair ofpaths `, `′ ∈ {0, 1, . . . , L− 1},

W (i)n (y, ui−1[`]|ui[`]) < W (i)

n (y, ui−1[`′]|ui[`′]) ⇐⇒ PM(i)` > PM(i)

`′ .

⇒ Implement a SCL Decoder using L, LLR-based SC decoders + L memoriesfor the path-metrics.

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 7 / 13

LLR-based Path Metric Computation

TheoremFor each path ` ∈ {0, 1, . . . , L− 1} and each index i ∈ {0, 1, . . . , N − 1} letthe path-metric be defined as:

PM(i)` ,

i∑j=0

ln(1 + e−(1−2uj [`])·L(j)

n [`]),where L(i)

n [`] = ln W (i)n (y,ui−1[`]|0)

W(i)n (y,ui−1[`]|1)

.

If all the information bits are uniformly distributed in {0, 1}, for any pair ofpaths `, `′ ∈ {0, 1, . . . , L− 1},

W (i)n (y, ui−1[`]|ui[`]) < W (i)

n (y, ui−1[`′]|ui[`′]) ⇐⇒ PM(i)` > PM(i)

`′ .

⇒ Implement a SCL Decoder using L, LLR-based SC decoders + L memoriesfor the path-metrics.

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 7 / 13

Properties of the LLR-Based Path Metric

PM(i)` ,

i∑j=0

ln(1 + e−(1−2uj [`])·L(j)

n [`])L(i)

n [`] = ln W(i)n (y, ui−1[`]|0)

W(i)n (y, ui−1[`]|1)

.

Iterative update:

PM(i)` = PM(i−1)

` + ln(1 + e−(1−2ui[`])L(i)

n [`]).

Approximation ln(1 + ex) ≈{

x, if x ≥ 0,

0, if x < 0.

PM(i)` ≈

{PM(i−1)

` if ui[`] = 12 [1− sign(L(i)

n [`])],PM(i−1)

` + |L(i)n [`]|, otherwise.

Hardware-friendly: only addition and comparison requiredNatural interpretation: paths “disobeying” L(i)

n [`] are penalized by anamount ≈ |L(i)

n [`]|.

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 8 / 13

Properties of the LLR-Based Path Metric

PM(i)` ,

i∑j=0

ln(1 + e−(1−2uj [`])·L(j)

n [`])L(i)

n [`] = ln W(i)n (y, ui−1[`]|0)

W(i)n (y, ui−1[`]|1)

.

Iterative update:

PM(i)` = PM(i−1)

` + ln(1 + e−(1−2ui[`])L(i)

n [`]).Approximation ln(1 + ex) ≈

{x, if x ≥ 0,

0, if x < 0.

PM(i)` ≈

{PM(i−1)

` if ui[`] = 12 [1− sign(L(i)

n [`])],PM(i−1)

` + |L(i)n [`]|, otherwise.

Hardware-friendly: only addition and comparison requiredNatural interpretation: paths “disobeying” L(i)

n [`] are penalized by anamount ≈ |L(i)

n [`]|.

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 8 / 13

Properties of the LLR-Based Path Metric

PM(i)` ,

i∑j=0

ln(1 + e−(1−2uj [`])·L(j)

n [`])L(i)

n [`] = ln W(i)n (y, ui−1[`]|0)

W(i)n (y, ui−1[`]|1)

.

Iterative update:

PM(i)` = PM(i−1)

` + ln(1 + e−(1−2ui[`])L(i)

n [`]).Approximation ln(1 + ex) ≈

{x, if x ≥ 0,

0, if x < 0.

PM(i)` ≈

{PM(i−1)

` if ui[`] = 12 [1− sign(L(i)

n [`])],PM(i−1)

` + |L(i)n [`]|, otherwise.

Hardware-friendly: only addition and comparison required

Natural interpretation: paths “disobeying” L(i)n [`] are penalized by an

amount ≈ |L(i)n [`]|.

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 8 / 13

Properties of the LLR-Based Path Metric

PM(i)` ,

i∑j=0

ln(1 + e−(1−2uj [`])·L(j)

n [`])L(i)

n [`] = ln W(i)n (y, ui−1[`]|0)

W(i)n (y, ui−1[`]|1)

.

Iterative update:

PM(i)` = PM(i−1)

` + ln(1 + e−(1−2ui[`])L(i)

n [`]).Approximation ln(1 + ex) ≈

{x, if x ≥ 0,

0, if x < 0.

PM(i)` ≈

{PM(i−1)

` if ui[`] = 12 [1− sign(L(i)

n [`])],PM(i−1)

` + |L(i)n [`]|, otherwise.

Hardware-friendly: only addition and comparison requiredNatural interpretation: paths “disobeying” L(i)

n [`] are penalized by anamount ≈ |L(i)

n [`]|.Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 8 / 13

Hardware Architecture - LL based

LL Quantization:Channel: Qch

Internal: Qch + j bits for stage j ⇒ irregular memory

Processing Elements: Maximum LL bit-width: QLL = Qch + n bitsMetric Sorter: Sorts 2L path metrics of bit-width QLL

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 9 / 13

Hardware Architecture - LL based

LL Quantization:Channel: Qch

Internal: Qch + j bits for stage j ⇒ irregular memoryProcessing Elements: Maximum LL bit-width: QLL = Qch + n bits

Metric Sorter: Sorts 2L path metrics of bit-width QLL

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 9 / 13

Hardware Architecture - LL based

LL Quantization:Channel: Qch

Internal: Qch + j bits for stage j ⇒ irregular memoryProcessing Elements: Maximum LL bit-width: QLL = Qch + n bitsMetric Sorter: Sorts 2L path metrics of bit-width QLL

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 9 / 13

Hardware Architecture - LLR based

LLR Quantization:QLLR bits for all stages ⇒ regular memory

Processing Elements: LLR bit-width: QLLR bitsPath Metrics: Worst-case QM = QLLR + n

Metric Sorter: Sorts 2L metrics of bit-width QM

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 10 / 13

Hardware Architecture - LLR based

LLR Quantization:QLLR bits for all stages ⇒ regular memory

Processing Elements: LLR bit-width: QLLR bits

Path Metrics: Worst-case QM = QLLR + n

Metric Sorter: Sorts 2L metrics of bit-width QM

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 10 / 13

Hardware Architecture - LLR based

LLR Quantization:QLLR bits for all stages ⇒ regular memory

Processing Elements: LLR bit-width: QLLR bitsPath Metrics: Worst-case QM = QLLR + n

Metric Sorter: Sorts 2L metrics of bit-width QM

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 10 / 13

Performance of Quantized SC List Decoding

Polar code with N = 1024 and R = 0.5, designed for Eb/N0 = 2dB.

LL-based:

Qch = 4 bitsQLL = 14 bits

LLR-based:

QLLR = 6 bitsQM = 8 bits

0 0.5 1 1.5 2 2.5 3 3.5 4

10−5

10−4

10−3

10−2

10−1

100

Eb/N0 (dB)

FER

SC Decoder, QLLRi = 5, QLLR

f = 0SC Decoder, Floating PointL = 2, LLR-based, QLLR

i = 5, QLLRf = 0

L = 2, LL-based, QLLi = 4, QLL

f = 0L = 2, LLR-based, Floating-PointL = 4, LLR-based, QLLR

i = 5, QLLRf = 0

L = 4, LL-based, QLLi = 4, QLL

f = 0L = 4, LLR-based, Floating-Point

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 11 / 13

Performance of Quantized SC List Decoding

Polar code with N = 1024 and R = 0.5, designed for Eb/N0 = 2dB.

LL-based:Qch = 4 bitsQLL = 14 bits

LLR-based:

QLLR = 6 bitsQM = 8 bits

0 0.5 1 1.5 2 2.5 3 3.5 4

10−5

10−4

10−3

10−2

10−1

100

Eb/N0 (dB)

FER

SC Decoder, QLLRi = 5, QLLR

f = 0SC Decoder, Floating PointL = 2, LLR-based, QLLR

i = 5, QLLRf = 0

L = 2, LL-based, QLLi = 4, QLL

f = 0L = 2, LLR-based, Floating-PointL = 4, LLR-based, QLLR

i = 5, QLLRf = 0

L = 4, LL-based, QLLi = 4, QLL

f = 0L = 4, LLR-based, Floating-Point

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 11 / 13

Performance of Quantized SC List Decoding

Polar code with N = 1024 and R = 0.5, designed for Eb/N0 = 2dB.

LL-based:Qch = 4 bitsQLL = 14 bits

LLR-based:QLLR = 6 bitsQM = 8 bits

0 0.5 1 1.5 2 2.5 3 3.5 4

10−5

10−4

10−3

10−2

10−1

100

Eb/N0 (dB)

FER

SC Decoder, QLLRi = 5, QLLR

f = 0SC Decoder, Floating PointL = 2, LLR-based, QLLR

i = 5, QLLRf = 0

L = 2, LL-based, QLLi = 4, QLL

f = 0L = 2, LLR-based, Floating-PointL = 4, LLR-based, QLLR

i = 5, QLLRf = 0

L = 4, LL-based, QLLi = 4, QLL

f = 0L = 4, LLR-based, Floating-Point

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 11 / 13

Performance of Quantized SC List Decoding

Polar code with N = 1024 and R = 0.5, designed for Eb/N0 = 2dB.

LL-based:Qch = 4 bitsQLL = 14 bits

LLR-based:QLLR = 6 bitsQM = 8 bits

0 0.5 1 1.5 2 2.5 3 3.5 4

10−5

10−4

10−3

10−2

10−1

100

Eb/N0 (dB)

FER

SC Decoder, QLLRi = 5, QLLR

f = 0SC Decoder, Floating PointL = 2, LLR-based, QLLR

i = 5, QLLRf = 0

L = 2, LL-based, QLLi = 4, QLL

f = 0L = 2, LLR-based, Floating-PointL = 4, LLR-based, QLLR

i = 5, QLLRf = 0

L = 4, LL-based, QLLi = 4, QLL

f = 0L = 4, LLR-based, Floating-Point

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 11 / 13

Synthesis Area and Timing Results

Cell Area LLR-based LL-based Reduction

List Size L = 2Total 0.977 mm2 1.668 mm2 41.4 %

List Size L = 4Total 1.743 mm2 3.708 mm2 53.0 %

LLR-based LL-based Speedup

List Size L = 2Clock Frequency 558 MHz 427 MHz 30.7 %

List Size L = 4Clock Frequency 412 MHz 386 MHz 6.7 %

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 12 / 13

Synthesis Area and Timing Results

Cell Area LLR-based LL-based Reduction

List Size L = 2Total 0.977 mm2 1.668 mm2 41.4 %

List Size L = 4Total 1.743 mm2 3.708 mm2 53.0 %

LLR-based LL-based Speedup

List Size L = 2Clock Frequency 558 MHz 427 MHz 30.7 %

List Size L = 4Clock Frequency 412 MHz 386 MHz 6.7 %

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 12 / 13

Summary and Conclusion

Proved an LLR-based path metric for SC list decoding

Provided hardware-friendly approximation to metric update rule

Hardware implementation results show:

1 Up to 50% area reduction2 Up to 30% operating frequency increase

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 13 / 13

Summary and Conclusion

Proved an LLR-based path metric for SC list decoding

Provided hardware-friendly approximation to metric update rule

Hardware implementation results show:

1 Up to 50% area reduction2 Up to 30% operating frequency increase

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 13 / 13

Summary and Conclusion

Proved an LLR-based path metric for SC list decoding

Provided hardware-friendly approximation to metric update rule

Hardware implementation results show:1 Up to 50% area reduction2 Up to 30% operating frequency increase

Balatsoukas-Stimming, Bastani Parizi, Burg (EPFL) LLR-Based SC List Decoding of Polar Codes May 8, 2014 13 / 13