application of lattice to convolutional codes: signal codes and turbo signal codes ·...
TRANSCRIPT
Application of Lattice to Convolutional Codes: Signal Codes and Turbo Signal Codes
(格子の畳込み符号への応用)
横浜国立大学 (YNU) 落合 秀樹 (Hideki Ochiai)
電子情報通信学会ソサイエティ大会 2015年9月11日
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
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!
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
Lattices and Sublattices • For a given lattice Λ, its subset Λ’ ⊂ Λ is called sublattice.
Λ = Z2 Λ = 2Z2 Λ = 4Z2
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
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
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){ }
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
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
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
Signal Codes (4)
The number of trellis states is unbounded!
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.
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 = -ω)
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"# $%
Constellation Design (3)
C L, 1( )⊂C L, Nbv( )⊂C L +1, Nbv( )⊂ ! e jπ /2Nbv"# $%
In general, for Nbv > 1, we have
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( )
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
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�
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?
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
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)
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月)
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