application of lattice to convolutional codes: signal codes and turbo signal codes ·...

24
Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes (格子の畳込み符号への応用) 横浜国立大学 (YNU) 落合 秀樹 (Hideki Ochiai) 電子情報通信学会ソサイエティ大会 2015年9月11日

Upload: others

Post on 18-Mar-2020

30 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes · 2015-10-06 · Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes

Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes

(格子の畳込み符号への応用)

横浜国立大学 (YNU) 落合 秀樹 (Hideki Ochiai)

電子情報通信学会ソサイエティ大会 2015年9月11日

Page 2: Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes · 2015-10-06 · Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes

Outline •  A very brief review of lattices •  Convolutional lattice codes (Signal codes)

–  Shalvi, Feder & Sommer, “Signal codes: Convolutional lattice codes,” IEEE Trans. Inform. Theory, August 2011.

•  Recursive convolutional lattice codes and their parallel concatenation (Turbo signal codes) –  Mitran & Ochiai, “Parallel concatenated convolutional lattice codes with constrained states,” IEEE Trans. Commun., March 2015.

•  Some performance comparison •  Conclusions

Page 3: Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes · 2015-10-06 · Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes

g1 = cos30!( sin30!)T,

g2 = cos90!( sin90!)T

Lattice (1) •  Let g1 and g2 denote the n-dimensional (real-valued) vectors that are linearly independent. – g1 and g2 are called the basis vectors of the n (real) dimensional Euclidean space.

0 1

1g1!

g2!

g1 = 1( 0)T , g2 = 0( 1)Tn = 2

0 1

1g1!

g2!

Page 4: Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes · 2015-10-06 · Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes

Lattice (2) •  Two-dimensional lattice Λ is given by a set of real-valued points that are specified by linear combination of the basis vectors with integer coefficient.

Λ = λ = akgk : ak ∈ !k=1

2

∑$%&

'()

= λ =G a : a ∈ !2{ } where G = g1 g2( )

G is a generator matrix of lattice rank(G) = 2, det(G) ≠ 0Note that

Page 5: Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes · 2015-10-06 · Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes

Lattices and Sublattices •  For a given lattice Λ, its subset Λ’ ⊂ Λ is called sublattice.

Λ = Z2 Λ = 2Z2 Λ = 4Z2

Page 6: Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes · 2015-10-06 · Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes

Partition of Lattice •  Λ’ induces a partition of Λ, i.e., Λ / Λ’, into equivalent classes modulo Λ’ (quotient group).

•  Each equivalent class is called a coset of Λ’. •  The number of the cosets, |Λ / Λ’|, is called the order of the quotient group.

cosets of Λ’ for Z2/2Z2 Λ + (0,0)! Λ + (1,0)! Λ + (0,1)! Λ + (1,1)!

coset representative

Page 7: Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes · 2015-10-06 · Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes

A Practical Example of Lattice Codes •  Ungerboeck’s 2-D 64-QAM TCM (coset code):

rate-1/2 binary convolutional encoder

1 bit 2 bits

4 bits

select a coset

select a lattice point

| Z2/2Z2 | = 4

Page 8: Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes · 2015-10-06 · Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes

Coset Decomposition •  If we denote a set of coset representatives by [Λ/Λ’], then each lattice point λ of Λ is expressed with respect to the point λ’ of the sublattice Λ’ as

or alternatively

λ ∈ Λ, #λ ∈ #Λ ⇒ λ = #λ + c, c ∈ Λ / #Λ[ ]

Λ = "Λ + Λ / "Λ[ ]

!2 = 2!2 + (0, 0), (0,1), (1, 0), (1,1){ }

Page 9: Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes · 2015-10-06 · Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes

Signal Codes (1) •  Convolutional lattice codes (Shalvi 2011) •  Input: L2-QAM constellation (uncoded) •  For memory size P, constraint length K = P+1

DC Shift

ai� ai-1 ai-2

g1 g2

xi�xi�~

Trellis State

P = 2 L = 4

L2P�States

Re

Im

Page 10: Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes · 2015-10-06 · Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes

Signal Codes (2) •  Lattice structure

Λ = λ =G a : a ∈ ! L j[ ]( )3{ }

where

G =

1 0 0g1 1 0g2 g1 10 g2 g10 0 g2

!

"

#######

$

%

&&&&&&&

g1, g2 ∈ C

Example: P = 2, k = 3,!!n = k + P=5!

k

Page 11: Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes · 2015-10-06 · Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes

Signal Codes (3)

Pav = E !xi2{ }=1+ gk

2

k=1

2

∑Average Power:

G(z) = 1− z0z−1( )

P

z0 = −0.90ej0.12π , P = 2

※ Poles close to a unit circle yield high coding gain

FIR tap

Average power reduction by shaping is essential.

Pav = 6.9dB

Page 12: Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes · 2015-10-06 · Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes

Signal Codes (4)

The number of trellis states is unbounded!

Page 13: Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes · 2015-10-06 · Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes

DC Shift

xi-1 xi-2

h1 h2

xi�

xi�~

Trellis Stateai�

L bi�

bi ∈ ! j[ ]

P = 2

Recursive Convolutional Lattice Code (RCLC) •  Convolutional lattice codes with constrained states (Mitran 2015)

•  Recursive form with TH shaping forces the state bounded

L2NbvP states�

Re

Im

L2Nbv points�

L = 2

Re

Im

L2 points�

Re

Im

State is defined by the output symbol.

Page 14: Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes · 2015-10-06 · Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes

Constellation Design (1)

![ω] := a0 + a1ω + a2 ω2 +!+ an−1ω

n−1 : ak ∈ !{ }, ω = ejπn

We consider the following formal power series:

Since ejπ/2 = j, for even values of n = 2Nbv, we have ![ω] := a0+ b0 j + a1 + b1 j( )ω +!+ aNbv−1 + bNbv−1 j( )ω Nbv−1 : ak, bk ∈ !{ }

= c0+ c1ω +!+ cNbv−1ωNbv−1 : ck ∈ ![ j]{ }, ω = e jπ /2Nbv

α, β ∈ ![ω] ⇒ α +β ∈ ![ω],α β ∈ ![ω]

which has the following ring property (note: ωn = -ω)

Page 15: Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes · 2015-10-06 · Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes

Constellation Design (2) To limit the size of signal points, we further put a constraint that ak and bk are integer rings (i.e., coset leaders of the following quotient):

C L,Nbv( ) := ![ω] / L![ω]

= a0+ b0 j + a1 + b1 j( )ω +!+ aNbv−1 + bNbv−1 j( )ω Nbv−1 : ak, bk ∈ ! L{ }= c0 + c1ω +!+ cNbv−1ω

Nbv−1 : ck ∈ ! L[ j]{ }, ω = e jπ /2Nbv

C L,Nbv( )⊂ ! e jπ /2Nbv"# $%

Page 16: Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes · 2015-10-06 · Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes

Constellation Design (3)

C L, 1( )⊂C L, Nbv( )⊂C L +1, Nbv( )⊂ ! e jπ /2Nbv"# $%

In general, for Nbv > 1, we have

Page 17: Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes · 2015-10-06 · Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes

State-Constrained Signal Codes

DC Shift

xi-1 xi-2

h1 h2

xi�

xi�~

Trellis State

Re

Im ai�

L bi�bi ∈ ! j[ ]

Re

Im

C L, Nbv( )

C L, 1( )x’i�

!xi = ai + h1xi−1 + h2xi−2 ⊂ ! e jπ /2Nbv$% &'

xi−1, xi−2 ⊂C L, Nbv( )

h1,h2 ⊂C L, Nbv( )

xi = !xi + L bi ⊂C L, Nbv( )

Page 18: Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes · 2015-10-06 · Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes

Constrained Capacity

35302520151050

12

11

10

9

8

7

6

5

4

3

2

1

L = 2

L = 3L = 4

log2 C L, Nbv( ) = log2 L2Nbv = 2Nbv log2 L

Information rate (bits): Constellation size:

log2 C L, 1( ) = log2 L2 = 2 log2 L

Page 19: Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes · 2015-10-06 · Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes

Some Remarks •  The information rate is 2 log2 L bits per 2D. •  Code (tap) selection: Unlike the conventional lattice codes, it is difficult to analyze minimum Euclidean distance due to the lack of regularity, resorting to brute-force search

DC Shift

xi-1 xi-2

h1 h2

xi�

xi�~

Trellis Stateai�

L bi�

C L, 1( )C L, Nbv( )

h1,h2 ⊂C L, Nbv( )⊂ ! e jπ /2Nbv"# $%

L2-QAM�

Page 20: Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes · 2015-10-06 · Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes

Turbo Signal Codes •  By constraining the state size (L2NbvP states), trellis based decoding such as Viterbi algorithm can be now employed.

•  However, the performance may not be significant because it is a variant of recursive convolutional codes.

•  Due to the limited number of states, the BCJR decoding can be used.

•  Since the code is recursive, can we take an approach similar to binary turbo codes and perform MAP decoding?

Page 21: Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes · 2015-10-06 · Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes

Turbo Signal Codes DC Shift

xi-1 xi-2

h1 h2

xi�

ui�~

ai�

L bi�

C L, 1( )

C L, Nbv( )

π�

f0 f1 f2

ui�

RCLC 1

RCLC 2 ui�~

1

2

Page 22: Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes · 2015-10-06 · Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes

Comparison with Non-binary LDPC

2.502.252.001.751.501.251.000.750.500.250.00

Lattice: P = 1, L = 2, Nbv = 2

松峯, 落合, RCS研究会 (2015年8月)

LDPC: QPSK, rate = 1/2 (frame length 4096 bits)

Page 23: Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes · 2015-10-06 · Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes

Comparison of Decoding Complexity

5.04.54.03.53.02.52.01.51.00.50.0

30.027.525.022.520.017.515.012.510.07.55.02.50.0

松峯, 落合, RCS研究会 (2015年8月)

Page 24: Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes · 2015-10-06 · Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes

Conclusions •  We have considered application of lattice in an unconventional scenario: – Signal Codes – Turbo Signal Codes

•  Due to the lack of structure, optimal design of coding (filter taps) is challenging from a theoretical viewpoint

•  There are many issues unknown: – Performance analysis and code design – Extension to even higher constellation size – Complexity vs. performance trade-off – Puncturing for higher rate