Date post: | 31-Mar-2015 |
Category: |
Documents |
Upload: | malachi-dowse |
View: | 226 times |
Download: | 0 times |
Name
Convolutional codes
Tomashevich Victor
Name - 2 -
Introduction
• Convolutional codes map information to code bits sequentially by convolving a sequence of information bits with “generator” sequences
• A convolutional encoder encodes K information bits to N>K code bits at one time step
• Convolutional codes can be regarded as block codes for which the encoder has a certain structure such that we can express the encoding operation as convolution
Name - 3 -
Properties of convolutional codes
Consider a convolutional encoder. Input to the encoder is ainformation bit sequence u (partitioned into blocks of length K):
),,( 10 uuu
),,,( )()2()1( Kiiii uuuu
The encoder output the code bit sequence x (partitioned into blocks
),,( 10 xxx
),,,( )()2()1( Niiii xxxx
N
KR
of length N)
Name - 4 -
Example: Consider a rate ½ convolutional code with K=1 and N=2 defined by the circuit:
iuix
The sequences ),,( )1(1
)1(0 xx , ),,( )2(
1)2(
0 xx are generated as follows:
ii ux )1( 1)2(
iii uuxand
Multiplexing between )1(ix and )2(
ix gives the code bit sequence
),,()),(),(( 10)2(
1)1(
1)2(
0)1(
0 xxxxxxx
Name - 5 -
• The convolutional code is linear
• The encoding mapping is bijective
• Code bits generated at time step i are affected by information bits up to M time steps i – 1, i – 2, …, i – M back in time. M is the maximal delay of information bits in the encoder
• Code memory is the (minimal) number of registers to construct an encoding circuit for the code.
• Constraint length is the overall number of information bits affecting code bits generated at time step i: =code memory + K=MK + K=(M + 1)K
• A convolutional code is systematic if the N code bits generated at time step i contain the K information bits
Name - 6 -
Example: The rate ½ code defined by the circuit
iuix
has delay M=1, memory 1, constraint length 2, and it is systematic
Example: the rate 2/3 code defined by the circuit
)1(iu
)2(iu
)1(ix
)2(ix)3(
ix
has delay M=1, memory 2, constraint length 4, and not systematic
Name - 7 -
Tree
A
A
A
B
B
A
0u 1u 2u
1
0
00
01
0000
0111
00
11
01
1010
11
10
11
Name - 8 -
Trellis
The tree graph can be contracted to a direct graph called trellisof the convolutional code having at most S nodes at distancei=0,1,… to the root
The contents of the (at most) MK encoder registers are assignedthe variables 1,,1,0),2()( KMjGFs j
i
The vector ),,( )1()1()0( KMiiii ssss
combibing all register contents at time step i is called state ofthe encoder at time step i.
The code bit blockix is clearly a function of is and
iu , only
Name - 9 -
Example:
The encoder of the rate ½ convolutional code has 221 Sdifferent states. The state is given by
iss The code bit block ix at time step i is computed from is and iu by
ii ux )1( and iii sux )2(
0iu1iu
A AAA
B BB
11 1111
00 0000
0101
1010
Name - 10 -
Example: Constructing a trellis section
iuix
ii ux )1( andiii sux )2(
Two equations are required:
(1) How does is depend on miu and possibly 0, ms mi
1 ii us(2) How does ix depend on is and iu
ii ux )1( andiii sux )2(
The branches are labeled with ii xu | called state transition
leading from a state is to a new state 1is
Name - 11 -
Trellis section:
0 0
1 1
0|00
0|01 1|11
1|10
00000
11111
0|000|000|00
1|101|101|10
0|010|010|01 1|111|111|11
0s 1s 2s 2Ls 1Ls
Name - 12 -
00000
1111
0|000|000|00
1|101|10
0|010|01 1|111|111|11
0s 1s 2s 2Ls 1Ls
Name - 13 -
State diagramExample: Trellis of the rate ½ convolutional code
ii ux )1( and iii sux )2(
0 0
1 1
00
01 11
10
0iu1iu
is 1is
State diagram:
0
1
00
0111
10
0iu1iu
Name - 14 -
Description with submatricesDefinition: A convolutional code is a set C of code bit sequences
),,,,,( 10 ixxxx
),,,( )()2()1( Niiii xxxx )2()( GFx j
i
partitioned into lenth N blocks
There exist many encoders mapping information bit sequences
),,( 10 uuu
),,,( )()2()1( Kiiii uuuu )2()( GFu j
i
(partitioned into length K<N blocks) to code bit sequences xfor the same code
Name - 15 -
Example: the following two encoding curcuits generate thesame set of code word sequences
)1(iu
)2(iu
)1(ix
)2(ix)3(
ix
)1(ix
)2(ix)3(
ix)1(
iu
)2(iu
Name - 16 -
Generator matrix
,Gux where
M
M
M
GGGG
GGGG
GGGG
G210
210
210
iGuxM
mmmii
,
0
The generated convolutional code has rate R=K/N, memoryK*M, and constraint length K*(M+1)
Name - 17 -
Example:
The rate ½ code is given by
ii ux )1( iii sux )2(and
0G governs howiu affects 11:)( 0
)2()1( Gxxx iii
1G governs how 1iu affects 10: 1 Gx i
,),,())(),(),(( 210)2(
2)1(
2)2(
1)1(
1)2(
0)1(
0 Guuuxxxxxx
where
11
0111
0111
G
Name - 18 -
Description with polynomials
)()()(
)()()(
)()()(
)(
)()2()1(
)(2
)2(2
)1(2
)(1
)2(1
)1(1
DgDgDg
DgDgDg
DgDgDg
DG
NKKK
N
N
)2(,)( )(,
)(,
2)(2,
1)(1,
)(0,
)( GFgDgDgDggDg jmi
MjMi
ji
ji
ji
ji
))(),(),(()( )()2()1( DuDuDuDu K
where
,,,2,1,)( )()(1
)(0
)( KjDuDuuDu iji
jjj ))(,),(),(()( )()2()1( DxDxDxDx N
where
NjDxDxxDx iji
jjj ,,2,1,)( )()(1
)(0
)(
)()()( DGDuDx
,,,0,,,1,,,1),,()(, MmNjKijiGg mjmi
NjKiDgM ji
ji,,1,,,1)),(deg(max )(
,
Name - 19 -
Example:
The rate ½ code is given by
ii ux )1( iii sux )2(and
)()1(1 Dg and )()2(1 Dg ))()(()( )2(1
)1(1 DgDgDG
From M=1 follows that 1)))(deg(( )( Dg ji
The polynomial )()1(1 Dg governs how ,1,0, mu ml affects
101)(: )1(1
)1( DDgxlThe polynomial )()2(1 Dg governs how ,1,0, mu ml
affects
111)(: )2(1
)2( DDDgxlDDuu 1)(),0,1,1(
,Gux yielding ),00,01,10,11( x)()()( DGDuDx yielding 211)( DDDx
Name - 20 -
Punctured convolutional codes
A sequence of code bits is punctured by deleting some of thebits in the sequence according to a fixed rule
In general, the the puncturing of a rate K/N convolutionalcode is defined using N puncturing tables, one for any codebit ,,,1,)( Njx j
i in a block ix
Each table contains p bits, where p is the puncturing period. Ifa bit is 1, the corresponding code bit is part of the puncturedcode, if the bit is 0, the corresponding code bit is not part of thepunctured code
For a sequence of code bit blocks ,,1,0, ix i the puncturingtables are applied periodically. N puncturing tables are combined
in a pN puncturing matrixP
Name - 21 -
Example:
The encoder circuit of rate ½ convolutional code given by
22 11)( DDDDG
)0,0,1,0,0(u )11,01,11,00,00(NPxThe sequence NPx is punctured using two different puncturing
matrices:
,1001
01111
P
1011
01112P
The puncturing period p is 4. Using 1P , 3 out of 4 code bits)1(
ixand 2 out of 4 code bits )2(
ix of the mother code bits are used, theothers are discarded
5/4)23/()44(2/1 Rand u is encoded to )11,1,1,0,00()11,1,1,0,00( XXXx
Name - 22 -
Using ,2P the rate of the punctured code is
3/2)33/()44(2/1 R and u is encoded to
)11,1,1,00,00()11,1,1,00,00( XXx
)1(ix
)2(ix
1 1 1 0
1 0 0 1
1 1 1 0
1 1 0 11P
2PPuncturing tables
Pucturing period p=4
1 2 3 4
10|
1|
1|
0|
00
)2(4
)1(4
)2(3
)1(2
)1(1
)2(0
)1(0 xxxxxxx
0010043210 uuuuu
Encoder of a rate ½ code punctured to a rate 4/5 (top puncturingtables) or a rate 2/3 code (bottom puncturing tables)
Name - 23 -
The rate R of a punctured code obtained from a rate NKR /0 mother code using the pN puncturing matrix P is given as
Pinof
pK
Pinof
pNRR
1#1#0
With puncturing we can easily construct convolutional codeswith arbitrary rational rate. However, punctured codes of rateR=K/N obtained from an optimized “good” mother code ofmemory m usually perform worse than unpunctured rate K/N,memory m optimized codes given by a NK generator matrix
)(DG
This performance gap increases with the number of puncturedbits. The advantage of puncturing is that the decodingcomplexity is not altered, since the original trellis of the mothercode can be used
Name - 24 -
Consider a rate 1/3, memory 4 mother code given by the submatrices
)101(),011(),010(),111( 3210 GGGG and
),111(4 G
code# rate punc. tablefd fdc
91/3
8/24
8
7
6
5
4/118/12
4/108/20
4/98/18
1/28/16
11
9
8
7
7
8
10
2
2
32
1111 11111111 11111111 11111111 11111111 11111110 11101111 11111111 11111100 11001111 11111111 11111000 10001111 11111111 11110000 0000
code# ratepunc. table fd fdc
44/7
8/14
3
2
1
2/38/12
4/58/10
8/98/9
5
4
3
2
8
4
42
2
1111 11111110 11100000 00001111 11111010 10100000 00001111 11111000 10000000 00001111 01111000 10000000 0000
Name - 25 -
Decoding of convolutional codesThe Viterbi algorithm
jujx1
jx2js1 js2
)1,1,1,1,1,1,1( u)1,1(),( 2010 ss
)11,11,11,11,11,11,11( x
Name - 26 -
+1+1 +1+1
-1-1
-1+1
+1-1 +1-1
-1+1
-1-1jj ss 21 , jj xx 21 , 1211 , jj ss
+1/+1+1
-1/-1-1
+1/+1+1
-1/-1+1
-1/-1+1
+1/+1-1
+1/+1-1
-1/-1-1
Name - 27 -
Hard decisions
y
jmjj
mj
mj yxyx 2
)(21
)(1
)(
+1+1 +1+1+1+1+1+1+1+1+1+1-1+1
+1+1
0 -2
+2
0
0
-2
+2
0
-2
0
0
0
+2
-2
+2
j=0 j=6j=5j=4j=3j=2j=1 j=7
+2
-4
+8+6+4
+12+10+8+6
+20+2
+4+2
-2
0 +6
+6
+4+20+2
+4+2+4+2
(+1+1,-1+1,+1+1,+1+1,+1+1,+1+1,+1+1)
Name - 28 -
+1+1 +1+1+1+1+1+1+1+1+1+1-1+1
+1+1
0 -2
+2
0
0
-2
+2
0
-2
0
0
0
+2
-2
+2
j=0 j=6j=5j=4j=3j=2j=1 j=7
+2
-4
+8+6+4
+12+10+8+6
+20+2
+4+2
-2
0 +6
+6
+4+20+2
+4+2+4+2
ju +1 +1 +1 +1 +1 +1 +1 - No error
Name - 29 -
Hard decisions
y
jmjj
mj
mj yxyx 2
)(21
)(1
)(
+1+1 +1+1+1+1+1+1+1+1+1-1-1+1
+1+1
0 -2
+2
0
0
0
0
-2
+2
+2
0
-2
+2
-2
+2
-2
+2
0
0
00
-2+20
j=0 j=6j=5j=4j=3j=2j=1 j=7
+2
-4
+6+4+2
+10+8+6+4
+4+2+2
+2+2
-2
0 +4
+4
+2+4+20
+6+4+2+4
(+1+1,-1+1,+1-1,+1+1,+1+1,+1+1,+1+1)
Name - 30 -
+1+1 +1+1+1+1+1+1+1+1+1-1-1+1
+1+1
0 -2
+2
0
0
0
0
-2
+2
+2
0
-2
+2
-2
+2
-2
+2+2
0
0
00
-2+20
j=0 j=6j=5j=4j=3j=2j=1 j=7
+2
-4
+6
+10+8+6+4
+4+2+2
+2+2
-2
0 +4
+4
+20
+2+4
ju +1 +1 +1 +1 +1 +1 +1 - No error
Name - 31 -
Hard decisions
y
jmjj
mj
mj yxyx 2
)(21
)(1
)(
+1+1 +1+1+1+1+1+1+1+1-1+1-1-1
+1+1
0 -2
+2
0
0
+2
-2
-2
+2
-2
0
+2
-2
+2
0
0
0
0
00
-2+20
j=0 j=6j=5j=4j=3j=2j=1 j=7
+2
-2
+8+6+8
+12+10+8+2
+20+4
00
-2
-2 +6
+10
+8+4+6
+8+6+8+2
(+1+1,-1-1,-1+1,+1+1,+1+1,+1+1,+1+1)
Name - 32 -
+1+1 +1+1+1+1+1+1+1+1-1+1-1-1
+1+1
0
+2
-2
+2
0
0
+2
-2
-2
+2
-2
0
+2
-2
+2
0
0
+2
-2
0
0
00
0
-2-2+20 +2
j=0 j=6j=5j=4j=3j=2j=1 j=7
+2
-2
+8+6
+12+10+8+2
+20+4
00
-2
-2 +6
+10
+8+4+6
+8+8+2
ju +1 -1 -1 +1 +1 +1 +1 - 2 decoding errors
Name - 33 -
Soft decisions
,,2
,,2/1
,,2/1
,2
)(
)(
)(,
)(
ijmij
ijmij
ijmij
ijmij
ij
yx
yx
yx
yx
l
GOOD channel
BAD channel
GOOD channel
BAD channel
jjjjjjmj ylxylx 222111)(
CSI values ((G,B),(B,B),(G,G),(G,B),(B,B),(G,G),(G,G))
y (+1+1,-1-1,-1+1,+1+1,+1+1,+1+1,+1+1)
Name - 34 -
+1+1 +1+1+1+1+1+1+1+1-1+1-1-1
+1+1
0
+1
-2.5
+2.5
-4
+4
-1
+1
-2.5
+2.5
0
-4
0
0
0
0
0
-4
+4
-4
+4
-1
0
0
0
0
0
0
0
0
00
00
00
00
-4-4-1-2.5+1
+2.5+4 +4 +4
j=0 j=6j=5j=4j=3j=2j=1 j=7
+2.5
-2.5
+10+7+9
+18+14+11+10
+5-0.5+1.5
+7.5+3.5
-2.5
-2.5 +7
+13
+9+5-0.5+1.5
+9+5+4+1.5
G B G GG GB BG G G BB B
+2 +0.5 +2 +2+2 +2+0.5 +0.5+2 +0.5-2 +2-0.5-0.5
Name - 35 -
+1+1 +1+1+1+1+1+1+1+1-1+1-1-1
+1+1
0
+1
-2.5
+2.5
-4
+4
-1
+1
-2.5
+2.5
0
-4
0
0
0
0
0
+4+4
0
0
00
-2.5
+2.5+4
j=0 j=6j=5j=4j=3j=2j=1 j=7
+2.5
-2.5
+10
+18+14+11+10
-0.5+1.5
+7.5+3.5
-2.5
-2.5 +7
+13
+1.5
+1.5
G B G GG GB BG G G BB B
+2 +0.5 +2 +2+2 +2+0.5 +0.5+2 +0.5-2 +2-0.5-0.5
ju +1 +1 +1 +1 +1 +1 +1 - No error