You are on page 1of 25

MAP decoding: The BCJR algorithm

Maximum a posteriori probability MAP! decoding Bahl"Coc#e"Jeline#"Ra$i$ BCJR! algorithm 1%&'! Baum"(elch algorithm 1%)*+!, -ecoder inputs: Recei$ed se.uence r so/t or hard! A priori L"$alues La ul! 0 ln P ul 0 1!1P ul 0 "1!! -ecoder outputs: A posteriori probability APP! L"$alues L ul! 0 ln P ul 0 12 r!1P ul 0 "12r!! 3 4: ul is most li#ely to be 1 5 4: ul is most li#ely to be "1
http://www.uib.no/personer/Eirik.Rosnes

BCJR cont7!

BCJR cont7!

BCJR cont7!

'

BCJR cont7!

A(9:
8

MAP algorithm
;nitiali<e /or=ard and bac#=ard recursions 4 s! and N s! Compute branch metrics >l s?@ s!A Carry out /or=ard recursion >lB1 s!A based on >l s!A Carry out bac#=ard recursion >l"1 s!A based on >l s!A Compute APP L"$alues Complexity: Approximately *xCiterbi Re.uires detailed #no=ledge o/ D:R Citerbi Eust maximi<es rv@ and does not re.uire exact #no=ledge o/ D:R
)

BCJR cont7!

;n/ormation bits

Termination bits
&

BCJR cont7!

BCJR cont7!

Gog"MAP algorithm
;nitiali<e /or=ard and bac#=ard recursions 4, s! and N, s! Compute branch metrics >l, s?@ s!A Carry out /or=ard recursion >lB1, s!A based on >l, s!A Carry out bac#=ard recursion >l"1, s!A based on >l, s!A Compute APP L"$alues Ad$antages o$er MAP algorithm: Hasier to implement :umerically more stable

14

Max"log"MAP algorithm

Replace max, by max@ i7e7@ remo$e table loo#"up correction term Ad$antage: Dimpler and much /aster Ior=ard and bac#=ard passes are e.ui$alent to a Citerbi decoder -isad$antage: Gess accurate@ but the correction term is limited in si<e by ln 6! Can impro$e accuracy by scaling =ith an D:R" in!dependent scaling /actor,

11

Hxample: log"MAP

16

Hxample: log"MAP
Assume Es1N4 0 11' 0 ")746 dB R 0 *1F@ so Eb1N4 0 61* 0 "17&)dB
4@'8 *@46 "4@&8
B4@'8 B4@&8

4@'' *@4)
B4@68

B1@'8 "4@*8

1@)4
17)4

"1@'8

"4@'8

"4@'8 *@''

"4@68

17*' 1@8%
B4@*8

1*

Hxample: log"MAP

+0.48 E 1N 0 11' 0+0.62 Assume ")746 dB s 4 R 0 *1F@ so Eb1N4 0 61* 0 "17&)dB
4@'8 *@46 "4@&8
B4@'8 B4@&8

-1,02

4@'' *@4)
B4@68

B1@'8 "4@*8

1@)4
17)4

"1@'8

"4@'8

"4@'8 *@''

"4@68

17*' 1@8%
B4@*8

1'

Hxample: Max"log"MAP
Assume Es1N4 0 11' 0 ")746 dB R 0 *1F@ so Eb1N4 0 61* 0 "17&)dB
4@'8 6@*'
B4@'8 "4@&8

"4@64 *@48
B4@68

B1@'8 "4@*8

1@)4
1@)4

B4@&8

"1@'8

"4@'8

"4@'8 *@*1

"4@68

1764 1@68
B4@*8

18

Hxample: Max"log"MAP
-0,07 E 1N 0 11' 0 ")746 +0,10 Assume dB s 4 R 0 *1F@ so Eb1N4 0 61* 0 "17&)dB
4@'8 6@*'
B4@'8 "4@&8

-0,40

"4@64 *@48
B4@68

B1@'8 "4@*8

1@)4
1@)4

B4@&8

"1@'8

"4@'8

"4@'8 *@*1

"4@68

1764 1@68
B4@*8

1)

Punctured con$olutional codes


Recall that an n,k! con$olutional code has a decoder trellis =ith 6k branches going into each state More complex decoding Dolutions: Bit"le$el encoders Dyndrome trellis decoding Riedel!, Punctured codes Dtart =ith lo="rate con$olutional mother code rate 11n+! Puncture delete! some code bits according to a predetermined pattern Punctured bits are not transmitted7 Jence@ the code rate is increased@ but the /ree distance o/ the code could be reduced -ecoder inserts dummy bits =ith neutral metrics contribution
1&

Hxample: Rate 61* punctured /rom rate 116

The punctured code is also a con$olutional code

d/ree 0 *
1F

Hxample: Rate *1' punctured /rom rate 116

d/ree 0 *
1%

More on punctured con$olutional codes


Rate"compatible punctured con$olutional RCPC! codes: Ksed /or applications that need to support se$eral code rates@ e7g7@ adapti$e coding or hybrid ARL De.uence o/ codes is obtained by repeated puncturing Ad$antage: Mne decoder can decode all codes in the /amily -isad$antage: Resulting codes may be sub"optimum Puncturing patterns: Ksually periodic puncturing patterns Iound by computer search Care must be exercised to a$oid catastrophic encoders

64

Best punctured codes

1 8 & * & 1& ' 8 )

14 6 & 6&

61

Purpose: A$oid the terminating tail rate loss! and maintain a uni/orm le$el o/ protection :ote: Cannot a$oid distance loss completely unless the length is not too short7 (hen the length gets larger@ the minimum distance approaches the /ree distance o/ the con$olutional code Code=ords can start in any state This gi$es 6 as many code=ords Jo=e$er@ each code=ord must end in the same state that it started /rom7 This gi$es 6" as many code=ords Thus@ the code rate is e.ual to the encoder rate Tailbiting codes are increasingly popular /or moderate length purposes Dome o/ the best #no=n linear bloc# codes are tailbiting codes Tables o/ optimum tailbiting codes are gi$en in the boo# 66 -CB: Turbo codes =ith tailbiting component codes

Tailbiting con$olutional codes

Hxample: Ieed/or=ard encoder

Ieed/or=ard encoder: Al=ays possible to /ind an in/ormation $ector that ends in the proper state inspect the last m k"bit input tuples! 6*

Hxample: Ieedbac# encoder


Ieedbac# encoder: :ot al=ays possible@ /or e$ery length@ to construct a tailbiting code Ior each u: Must /ind uni.ue starting state L, 0 ) not MN L, 0 8 MN ;n general@ L, should not ha$e the length o/ a <ero input"=eight cycle as a di$isor
6'

OCircularO trellis

-ecoding o/ tailbiting codes: Try all possible starting states multiplies complexity by 6 !@ i7e7@ run the Citerbi algorithm /or each o/ the 6 subcodes and compare the best paths /rom each subcode Duboptimum Citerbi: ;nitiali<e an arbitrary state at time 4 =ith <ero metric and /ind the best ending state7 Continue Oone roundO /rom there =ith the best subcode 68 MAP: Dimilar

You might also like