list decoding slides

106
List-Decoding of Polar Codes Ido Tal and Alexander Vardy University of California San Diego 9500 Gilman Drive, La Jolla, CA 92093, USA

Upload: ardeva

Post on 01-Feb-2016

34 views

Category:

Documents


0 download

DESCRIPTION

List Decoding of Polar Codes

TRANSCRIPT

Page 1: List Decoding Slides

List-Decoding of Polar Codes

Ido Tal and Alexander VardyUniversity of California San Diego

9500 Gilman Drive, La Jolla, CA 92093, USA

Page 2: List Decoding Slides

Problem and goal

Channel polarization is slow. For short to moderate code lengths,polar codes have disappointing performance.

10−5

10−4

10−3

10−2

10−1

Bit

erro

rra

te

1.0 1.5 2.0 2.5 3.0Signal-to-noise ratio (Eb/N0) [dB]

successive cancellation, n = 2048, k = 1024LDPC (Wimax standard, n = 2304)

Legend:

In this talk, we present a generalization of the SC decoder whichgreatly improves performance at short code lengths.

Page 3: List Decoding Slides

Avenues for improvement

From here onward, consider a polar code of length n = 2048 and rateR = 0.5, optimized for a BPSK-AWGN channel with Eb/N0 = 2.0 dB.

10−5

10−4

10−3

10−2

10−1

Bit

erro

rra

te

1.0 1.5 2.0 2.5 3.0Signal-to-noise ratio (Eb/N0) [dB]

successive cancellation, n = 2048, k = 1024LDPC (Wimax standard, n = 2304)

Legend:

Why is our polar code under-performing?Is the SC decoder under-performing?Are the polar codes themselves weak at this length?

Page 4: List Decoding Slides

A critical look at successive cancellation

Successive Cancellation Decoding

for i = 0, 1, . . . , n− 1 doif ui is frozen then set ui accordingly;else

if Wi(yn−10 , ui−1

0 |0) > Wi(yn−10 , ui−1

0 |1) thenset ui ← 0;

elseset ui ← 1 ;

Potential weaknesses (interplay):Once an unfrozen bit is set, there is “no going back”. A bit thatwas set at step i can not be changed at step j > i.Knowledge of the value of future frozen bits is not taken intoaccount.

Page 5: List Decoding Slides

List decoding of polar codes

Key idea: Each time a decision on ui is needed, split the current de-coding path into two paths: try both ui = 0 and ui = 1.

L = 4

0 1

When the number of paths grows beyond a prescribed threshold L, dis-card the worst (least probable) paths, and keep only the L best paths.

At the end, select the single most likely path.

Page 6: List Decoding Slides

List decoding of polar codes

Key idea: Each time a decision on ui is needed, split the current de-coding path into two paths: try both ui = 0 and ui = 1.

L = 4

0 1

0 01 1

When the number of paths grows beyond a prescribed threshold L, dis-card the worst (least probable) paths, and keep only the L best paths.

At the end, select the single most likely path.

Page 7: List Decoding Slides

List decoding of polar codes

Key idea: Each time a decision on ui is needed, split the current de-coding path into two paths: try both ui = 0 and ui = 1.

L = 4

0 1

0 01 1

0 1 1 000 1 1

When the number of paths grows beyond a prescribed threshold L, dis-card the worst (least probable) paths, and keep only the L best paths.

At the end, select the single most likely path.

Page 8: List Decoding Slides

List decoding of polar codes

Key idea: Each time a decision on ui is needed, split the current de-coding path into two paths: try both ui = 0 and ui = 1.

L = 40 1

0 01 1

0 1 1 000 1 1

When the number of paths grows beyond a prescribed threshold L, dis-card the worst (least probable) paths, and keep only the L best paths.

At the end, select the single most likely path.

Page 9: List Decoding Slides

List decoding of polar codes

Key idea: Each time a decision on ui is needed, split the current de-coding path into two paths: try both ui = 0 and ui = 1.

L = 40 1

0 01 1

0 1 1 000 1 1

1 0 1 00 0 1 1

When the number of paths grows beyond a prescribed threshold L, dis-card the worst (least probable) paths, and keep only the L best paths.

At the end, select the single most likely path.

Page 10: List Decoding Slides

List decoding of polar codes

Key idea: Each time a decision on ui is needed, split the current de-coding path into two paths: try both ui = 0 and ui = 1.

L = 40 1

0 01 1

0 1 1 000 1 1

1 0 1 00 0 1 1

When the number of paths grows beyond a prescribed threshold L, dis-card the worst (least probable) paths, and keep only the L best paths.

At the end, select the single most likely path.

Page 11: List Decoding Slides

List-decoding: complexity issues

The idea of branching while decoding is not new. In fact a very similaridea was applied for Reed-Muller codes.

I. Dumer, K. Shabunov, Soft-decision decoding of Reed-Muller codes:recursive lists, IEEE Trans. on Information Theory, 52, pp. 1260–1266, 2006.

Our contributionWe consider list decoding of polar codes.However, in a naive implementation, the time would beO(L · n2).We show that this can be done in O(L · n log n) time andO(L · n) space.

We will return to the complexity issue later. For now, let’s see howdecoding performance is affected.

Page 12: List Decoding Slides

Approaching ML performance

10−4

10−3

10−2

10−1

Wor

der

ror

rate

1.0 1.5 2.0 2.5 3.0Signal-to-noise ratio (Eb/N0) [dB]

n= 2048, L= 1

Legend:

List-decoding performance quickly approaches that ofmaximum-likelihood decoding as a function of list-size.Good: our decoder is essentially optimal.Bad: Still not competitive with LDPC. . .Conclusions: Must somehow “fix” the polar code.

Page 13: List Decoding Slides

Approaching ML performance

10−4

10−3

10−2

10−1

Wor

der

ror

rate

1.0 1.5 2.0 2.5 3.0Signal-to-noise ratio (Eb/N0) [dB]

n= 2048, L= 1n= 2048, L= 2

Legend:

List-decoding performance quickly approaches that ofmaximum-likelihood decoding as a function of list-size.Good: our decoder is essentially optimal.Bad: Still not competitive with LDPC. . .Conclusions: Must somehow “fix” the polar code.

Page 14: List Decoding Slides

Approaching ML performance

10−4

10−3

10−2

10−1

Wor

der

ror

rate

1.0 1.5 2.0 2.5 3.0Signal-to-noise ratio (Eb/N0) [dB]

n= 2048, L= 1n= 2048, L= 2n= 2048, L= 4

Legend:

List-decoding performance quickly approaches that ofmaximum-likelihood decoding as a function of list-size.Good: our decoder is essentially optimal.Bad: Still not competitive with LDPC. . .Conclusions: Must somehow “fix” the polar code.

Page 15: List Decoding Slides

Approaching ML performance

10−4

10−3

10−2

10−1

Wor

der

ror

rate

1.0 1.5 2.0 2.5 3.0Signal-to-noise ratio (Eb/N0) [dB]

n= 2048, L= 1n= 2048, L= 2n= 2048, L= 4n= 2048, L= 8

Legend:

List-decoding performance quickly approaches that ofmaximum-likelihood decoding as a function of list-size.Good: our decoder is essentially optimal.Bad: Still not competitive with LDPC. . .Conclusions: Must somehow “fix” the polar code.

Page 16: List Decoding Slides

Approaching ML performance

10−4

10−3

10−2

10−1

Wor

der

ror

rate

1.0 1.5 2.0 2.5 3.0Signal-to-noise ratio (Eb/N0) [dB]

n= 2048, L= 1n= 2048, L= 2n= 2048, L= 4n= 2048, L= 8n= 2048, L= 16

Legend:

List-decoding performance quickly approaches that ofmaximum-likelihood decoding as a function of list-size.Good: our decoder is essentially optimal.Bad: Still not competitive with LDPC. . .Conclusions: Must somehow “fix” the polar code.

Page 17: List Decoding Slides

Approaching ML performance

10−4

10−3

10−2

10−1

Wor

der

ror

rate

1.0 1.5 2.0 2.5 3.0Signal-to-noise ratio (Eb/N0) [dB]

n= 2048, L= 1n= 2048, L= 2n= 2048, L= 4n= 2048, L= 8n= 2048, L= 16n= 2048, L= 32

Legend:

List-decoding performance quickly approaches that ofmaximum-likelihood decoding as a function of list-size.Good: our decoder is essentially optimal.Bad: Still not competitive with LDPC. . .Conclusions: Must somehow “fix” the polar code.

Page 18: List Decoding Slides

Approaching ML performance

10−4

10−3

10−2

10−1

Wor

der

ror

rate

1.0 1.5 2.0 2.5 3.0Signal-to-noise ratio (Eb/N0) [dB]

n= 2048, L= 1n= 2048, L= 2n= 2048, L= 4n= 2048, L= 8n= 2048, L= 16n= 2048, L= 32n= 2048, ML bound

Legend:

List-decoding performance quickly approaches that ofmaximum-likelihood decoding as a function of list-size.

Good: our decoder is essentially optimal.Bad: Still not competitive with LDPC. . .Conclusions: Must somehow “fix” the polar code.

Page 19: List Decoding Slides

Approaching ML performance

10−4

10−3

10−2

10−1

Wor

der

ror

rate

1.0 1.5 2.0 2.5 3.0Signal-to-noise ratio (Eb/N0) [dB]

n= 2048, L= 1n= 2048, L= 2n= 2048, L= 4n= 2048, L= 8n= 2048, L= 16n= 2048, L= 32n= 2048, ML bound

Legend:

List-decoding performance quickly approaches that ofmaximum-likelihood decoding as a function of list-size.Good: our decoder is essentially optimal.Bad: Still not competitive with LDPC. . .

Conclusions: Must somehow “fix” the polar code.

Page 20: List Decoding Slides

Approaching ML performance

10−4

10−3

10−2

10−1

Wor

der

ror

rate

1.0 1.5 2.0 2.5 3.0Signal-to-noise ratio (Eb/N0) [dB]

n= 2048, L= 1n= 2048, L= 2n= 2048, L= 4n= 2048, L= 8n= 2048, L= 16n= 2048, L= 32n= 2048, ML bound

Legend:

List-decoding performance quickly approaches that ofmaximum-likelihood decoding as a function of list-size.Good: our decoder is essentially optimal.Bad: Still not competitive with LDPC. . .Conclusions: Must somehow “fix” the polar code.

Page 21: List Decoding Slides

A simple concatenation scheme

Recall that the last step of decoding was “pick the most likelycodeword from the list”.An error: the transmitted codeword is not the most likelycodeword in the list.However, very often, the transmitted codeword is still a memberof the list.We need a “genie” to single-out the transmitted codeword.Idea: Let there be k + r unfrozen bits. Of these,

Use the first k bits to encode information.Use the last r unfrozen bits to encode the CRC value of the first kbits.Pick the most probable codeword on the list with correct CRC.

Page 22: List Decoding Slides

Approaching LDPC performanceSimulation results for a polar code of length n = 2048 and rate R = 0.5, opti-mized for a BPSK-AWGN channel with Eb/N0 = 2.0 dB.

1.0 1.5 2.0 2.5 3.0Signal-to-noise ratio [dB]

10−6

10−5

10−4

10−3

10−2

10−1

Bit

erro

rra

te Successive cancellationList-decoding (L= 32)

Polar codes (+CRC) under list decoding are competitivewith the best LDPC codes at lengths as short as n = 2048.

Page 23: List Decoding Slides

Approaching LDPC performanceSimulation results for a polar code of length n = 2048 and rate R = 0.5, opti-mized for a BPSK-AWGN channel with Eb/N0 = 2.0 dB.

1.0 1.5 2.0 2.5 3.0Signal-to-noise ratio [dB]

10−6

10−5

10−4

10−3

10−2

10−1

Bit

erro

rra

te Successive cancellationList-decoding (L= 32)

WiMax turbo (n= 960)WiMax LDPC (n= 2304)

Polar codes (+CRC) under list decoding are competitivewith the best LDPC codes at lengths as short as n = 2048.

Page 24: List Decoding Slides

Approaching LDPC performanceSimulation results for a polar code of length n = 2048 and rate R = 0.5, opti-mized for a BPSK-AWGN channel with Eb/N0 = 2.0 dB.

1.0 1.5 2.0 2.5 3.0Signal-to-noise ratio [dB]

10−6

10−5

10−4

10−3

10−2

10−1

Bit

erro

rra

te Successive cancellationList-decoding (L= 32)

WiMax turbo (n= 960)WiMax LDPC (n= 2304)List + CRC-16 (n= 2048)

Polar codes (+CRC) under list decoding are competitivewith the best LDPC codes at lengths as short as n = 2048.

Page 25: List Decoding Slides

Quadratic complexity of list decoding

Naive implementation recap

In a naive implementation, the decoding paths are independent.They don’t share information.Each decoding path has a set of variables associated with it. Forexample, at stage i, each decoding path must remember the valuesof the bits u0, u1, . . . , ui−1.It turns out (as we shall see) that each decoding path has Θ(n)memory associated with it.When a path is split in two, one decoding path is left with theoriginal variables while the other must be handed a copy of them.Each copy operation takes O(n) time.Thus, the overall time complexity is O(L · n2).

Page 26: List Decoding Slides

A closer look at successive cancellation

u0

u1

x0 → y0

x1 → y1

Page 27: List Decoding Slides

A closer look at successive cancellation

u0

u1

x0 → y0

x1 → y1

Page 28: List Decoding Slides

A closer look at successive cancellation

u0

u1

x0 → y0

x1 → y1

probability pair variable

boolean variable (bit)

(P(y0|x0 = 0), P(y0|x0 = 1))

x0

(P(y1|x1 = 0), P(y1|x1 = 1))

x1

(P(y0y1|u0 = 0), P(y0y1|u0 = 1))

u0

(P(y0y1 u0|u1 = 0), P(y0y1 u0|u1 = 1))

u1

Page 29: List Decoding Slides

A closer look at successive cancellation

u0

u1

x0 → y0

x1 → y1

probability pair variable

boolean variable (bit)

(P(y0|x0 = 0), P(y0|x0 = 1))

x0

(P(y1|x1 = 0), P(y1|x1 = 1))

x1

(P(y0y1|u0 = 0), P(y0y1|u0 = 1))

u0

(P(y0y1 u0|u1 = 0), P(y0y1 u0|u1 = 1))

u1

? ?

? ?

? ?

? ?

Page 30: List Decoding Slides

A closer look at successive cancellation

u0

u1

x0 → y0

x1 → y1

probability pair variable

boolean variable (bit)

(P(y0|x0 = 0), P(y0|x0 = 1))

x0

(P(y1|x1 = 0), P(y1|x1 = 1))

x1

(P(y0y1|u0 = 0), P(y0y1|u0 = 1))

u0

(P(y0y1 u0|u1 = 0), P(y0y1 u0|u1 = 1))

u1

? X

? X

? ?

? ?

Page 31: List Decoding Slides

A closer look at successive cancellation

u0

u1

x0 → y0

x1 → y1

probability pair variable

boolean variable (bit)

(P(y0|x0 = 0), P(y0|x0 = 1))

x0

(P(y1|x1 = 0), P(y1|x1 = 1))

x1

(P(y0y1|u0 = 0), P(y0y1|u0 = 1))

u0

(P(y0y1 u0|u1 = 0), P(y0y1 u0|u1 = 1))

u1

X X

? X

? ?

? ?

Page 32: List Decoding Slides

A closer look at successive cancellation

u0

u1

x0 → y0

x1 → y1

probability pair variable

boolean variable (bit)

(P(y0|x0 = 0), P(y0|x0 = 1))

x0

(P(y1|x1 = 0), P(y1|x1 = 1))

x1

(P(y0y1|u0 = 0), P(y0y1|u0 = 1))

u0

(P(y0y1 u0|u1 = 0), P(y0y1 u0|u1 = 1))

u1

X X

? X

X ?

? ?

Page 33: List Decoding Slides

A closer look at successive cancellation

u0

u1

x0 → y0

x1 → y1

probability pair variable

boolean variable (bit)

(P(y0|x0 = 0), P(y0|x0 = 1))

x0

(P(y1|x1 = 0), P(y1|x1 = 1))

x1

(P(y0y1|u0 = 0), P(y0y1|u0 = 1))

u0

(P(y0y1 u0|u1 = 0), P(y0y1 u0|u1 = 1))

u1

X X

? X

X ?

? ?

Page 34: List Decoding Slides

A closer look at successive cancellation

u0

u1

x0 → y0

x1 → y1

probability pair variable

boolean variable (bit)

(P(y0|x0 = 0), P(y0|x0 = 1))

x0

(P(y1|x1 = 0), P(y1|x1 = 1))

x1

(P(y0y1|u0 = 0), P(y0y1|u0 = 1))

u0

(P(y0y1 u0|u1 = 0), P(y0y1 u0|u1 = 1))

u1

X X

X X

X ?

? ?

Page 35: List Decoding Slides

A closer look at successive cancellation

u0

u1

x0 → y0

x1 → y1

probability pair variable

boolean variable (bit)

(P(y0|x0 = 0), P(y0|x0 = 1))

x0

(P(y1|x1 = 0), P(y1|x1 = 1))

x1

(P(y0y1|u0 = 0), P(y0y1|u0 = 1))

u0

(P(y0y1 u0|u1 = 0), P(y0y1 u0|u1 = 1))

u1

X X

X X

X ?

? ?

Page 36: List Decoding Slides

A closer look at successive cancellation

u0

u1

x0 → y0

x1 → y1

probability pair variable

boolean variable (bit)

(P(y0|x0 = 0), P(y0|x0 = 1))

x0

(P(y1|x1 = 0), P(y1|x1 = 1))

x1

(P(y0y1|u0 = 0), P(y0y1|u0 = 1))

u0

(P(y0y1 u0|u1 = 0), P(y0y1 u0|u1 = 1))

u1

X X

X X

X ?

X ?

Page 37: List Decoding Slides

A closer look at successive cancellation

u0

u1

x0 → y0

x1 → y1

probability pair variable

boolean variable (bit)

(P(y0|x0 = 0), P(y0|x0 = 1))

x0

(P(y1|x1 = 0), P(y1|x1 = 1))

x1

(P(y0y1|u0 = 0), P(y0y1|u0 = 1))

u0

(P(y0y1 u0|u1 = 0), P(y0y1 u0|u1 = 1))

u1

X X

X X

X ?

X ?

Page 38: List Decoding Slides

A closer look at successive cancellation

u0

u1

x0 → y0

x1 → y1

probability pair variable

boolean variable (bit)

(P(y0|x0 = 0), P(y0|x0 = 1))

x0

(P(y1|x1 = 0), P(y1|x1 = 1))

x1

(P(y0y1|u0 = 0), P(y0y1|u0 = 1))

u0

(P(y0y1 u0|u1 = 0), P(y0y1 u0|u1 = 1))

u1

X X

X X

X X

X X

Page 39: List Decoding Slides

A closer look at successive cancellation

u0

u1

x0 → y0

x1 → y1

probability pair variable

boolean variable (bit)

(P(y0|x0 = 0), P(y0|x0 = 1))

x0

(P(y1|x1 = 0), P(y1|x1 = 1))

x1

(P(y0y1|u0 = 0), P(y0y1|u0 = 1))

u0

(P(y0y1 u0|u1 = 0), P(y0y1 u0|u1 = 1))

u1

X X

X X

X X

X X

Page 40: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 41: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 42: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 43: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 44: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 45: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 46: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 47: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 48: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 49: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 50: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 51: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 52: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 53: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 54: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 55: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 56: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 57: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 58: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 59: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 60: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 61: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 62: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 63: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 64: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 65: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 66: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 67: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 68: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 69: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 70: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 71: List Decoding Slides

A larger example

Key point

The memoryneeded to holdthe variables atlevel t is O(n/2t).

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 72: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 73: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 74: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 75: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 76: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 77: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 78: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 79: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 80: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 81: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 82: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 83: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 84: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 85: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 86: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 87: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 88: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 89: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 90: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 91: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 92: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 93: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 94: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 95: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 96: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 97: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 98: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 99: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 100: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 101: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 102: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 103: List Decoding Slides

A larger example

Key point

Level t is writtento once everyO(2m−t) stages.

y0u0

y1u1

y2u2

y3u3

y4u4

y5u5

y6u6

y7u7

y8u8

y9u9

y10u10

y11u11

y12u12

y13u13

y14u14

y15u15

4 3 2 1 0

Page 104: List Decoding Slides

Application to list decoding

In a naive implementation, at each split we make a copy of thevariables.We can do better:

At each split, flag the corresponding variables as belonging to bothpaths.Give each path a unique variable (make a copy) only before thatvariable will be written to.If a path is killed, deflag its corresponding variables.

Thus, instead of wasting a lot of time on copy operations at eachstage, we typically perform only a small number of copyoperations.

This was a mile high view, there are many details to be filled(book-keeping, data structures), but the end result is a running time ofO(L · n log n) with O(L · n) memory requirements.

Page 105: List Decoding Slides

Very recent results

Gross and Sarkis (MacGill University) have recently attained thefollowing results.

Full independent verification of our simulation data.Further improvement of performance using systematic polarcodes.

E. Arıkan, Systematic polar codes, IEEE Comm. Letters, accepted forpublication.

1.0 1.5 2.0 2.5 3.0Signal-to-noise ratio [dB]

10−6

10−5

10−4

10−3

10−2

10−1

Bit

erro

rra

te Successive cancellationList-decoding (L= 32)

WiMax turbo (n= 960)WiMax LDPC (n= 2304)List + CRC-16 (n= 2048)

Page 106: List Decoding Slides

Very recent results

Gross and Sarkis (MacGill University) have recently attained thefollowing results.

Full independent verification of our simulation data.Further improvement of performance using systematic polarcodes.

E. Arıkan, Systematic polar codes, IEEE Comm. Letters, accepted forpublication.

1.0 1.5 2.0 2.5 3.0Signal-to-noise ratio [dB]

10−6

10−5

10−4

10−3

10−2

10−1

Bit

erro

rra

te Successive cancellationList-decoding (L= 32)

WiMax turbo (n= 960)WiMax LDPC (n= 2304)List + CRC-16 (n= 2048)Systematic + List + CRC-16 (n= 2048)