• No results found

This algorithm was proposed by Bahl Jelinek Cocke and Raviv (BCJR) to maximise the posterior decoding defined on the trellis structure of the convolutional code [47]. This is an iterative decoder based on the forward error correction code, and principally is a soft output algorithm used for Markov chain based structure. It is important to note that, convolutional code exhibits Markov chain since it’s a finite state machine. In Viterbi algorithm, the error probability is minimised between the transmitted and received code- word, while the aim in BCJR method is to minimise the bit error probability. It is very clear that, the latter algorithm gives better performance in terms of the error performance. The two vectors for the encoders are the input sequence signal to the encoder𝑋_𝑖, and the output signal sequence from the encoder𝑋_π‘œ. Considering the states of the encoder, there are a number of states for every encoder based on the memory registers of that particular encoder. While transmitting, the encoder transit from one state to another with every instant of time project three main statesπ‘†π‘π‘Ÿπ‘’π‘£,π‘†π‘π‘’π‘Ÿ, and 𝑆𝑛𝑒π‘₯ (π‘†π‘π‘Ÿπ‘’π‘£indicating the previous state, π‘†π‘π‘’π‘Ÿrefer to the current state, and 𝑆𝑛𝑒π‘₯indicating the next state

for the encoder). The encoder moves (jump) between states depending on the input source information sequence (the original voice or data sequence required for transmission). The posterior log likelihood ratio of the input signal

52

depending on observed finite and limited received signal could be defined as flows

𝐿(π‘₯_𝑖) = log {𝑃(π‘₯_𝑖 = 1|π‘Œ)

𝑃(π‘₯_𝑖 = 0|π‘Œ) } (2.7.1)

Therefore, the scheme could also be referred to as Maximum Posteriori Probability (MAP) decoder. However, since there is a convolutional encoder that applied to the input signal, then the output transmitted signal (x) will depends on the input signal and the states of the encoder. Including these states in the conditional formula would be as flow

𝐿(π‘₯_𝑖) = log {βˆ‘βˆ‘π‘’,𝑝;π‘₯_𝑖=1𝑃(π‘†π‘˜βˆ’1 = 𝑒, π‘†π‘˜ = 𝑝|π‘Œ) 𝑃(π‘†π‘˜βˆ’1 = 𝑒, π‘†π‘˜ = 𝑝|π‘Œ)

𝑒,𝑝;π‘₯_𝑖=0 } (2.7.2)

In the transition between the previous state (π‘†π‘˜βˆ’1) and the current state (π‘†π‘˜), all

the paths through the branches as result of an input one (π‘₯_𝑖 = 1) would be summed together in the numerator expression for the posterior likelihood (eq. 2.7.2), while all the state transitions from (u to p) as result of an input zero to the convolutional encoder (π‘₯_𝑖 = 0) would be summed in the denominator. Furthemore, the observed sequency (Y), could be divided into three segments, the past, current and the future (π‘Œπ‘¦<π‘˜, π‘Œπ‘¦=π‘˜, andπ‘Œπ‘¦>π‘˜,). The likelihood

expression could be segmented based on its probability components relating the encoder states. In the use of Bay’s theorem and Markov property, the

53

individual probabilities forming the expression could be expressed by certain quantities that needed to be calculated within the iterative process.

𝑃(π‘†π‘˜βˆ’1 = 𝑒, π‘†π‘˜ = 𝑝|π‘ŒΜ‚1,π‘˜) = 𝑃(π‘†π‘˜βˆ’1 = 𝑒|π‘ŒΜ‚1,π‘˜βˆ’1)𝑃(π‘†π‘˜= π‘˜, π‘ŒΜ‚π‘˜|π‘†π‘˜βˆ’1= 𝑒)𝑃(π‘ŒΜ‚π‘˜+1,π‘˜|π‘†π‘˜ = 𝑝) 𝑃(π‘†π‘˜βˆ’1= 𝑒, π‘†π‘˜ = 𝑝, π‘ŒΜ‚1,π‘˜) = 𝑃(π‘†π‘˜βˆ’1 = 𝑒, π‘ŒΜ‚1,π‘˜βˆ’1) 𝑃(π‘†π‘˜ = π‘˜, π‘ŒΜ‚π‘˜|π‘†π‘˜βˆ’1= 𝑒)𝑃(π‘ŒΜ‚π‘˜+1,π‘˜|π‘†π‘˜ = 𝑝) 𝑃(π‘†π‘˜βˆ’1 = 𝑒, π‘†π‘˜ = 𝑝, π‘ŒΜ‚1,π‘˜) = π›Όπ‘˜βˆ’1(𝑒) π›Ύπ‘˜(𝑒, 𝑝) π›½π‘˜(𝑝) (2.7.3) π›Όπ‘˜βˆ’1(𝑒) = 𝑃(π‘†π‘˜βˆ’1= 𝑒, π‘ŒΜ‚1,π‘˜βˆ’1) (2.7.4) π›Ύπ‘˜(𝑒, 𝑝) = 𝑃(π‘†π‘˜= 𝑝, π‘ŒΜ‚π‘˜|π‘†π‘˜βˆ’1= 𝑒) (2.7.5) π›½π‘˜(𝑝) = 𝑃(π‘ŒΜ‚π‘˜+1,π‘˜|π‘†π‘˜ = 𝑝) (2.7.6)

The forward calculation starting from the initial sate to the end involves (𝛼), and the backward path calculation involves (𝛽), while the transition between states related to (𝛾) labelled in figure (2.7.1). It is important to note, the reverse path (backward) only calculated recursively after the whole Y sequence had been received.

54

The MAP algorithm for the BCJR decoding steps as follows:

1- Initialising the forward and backward recursion for alphas and betas (𝛼0[𝑆], π›½π‘˜[𝑆])

2- Calculating the branch metrics Gammas π›Ύπ‘˜(𝑒, 𝑝) π›Ύπ‘˜(𝑒, 𝑝) = 𝑃(π‘†π‘˜ = 𝑝, π‘ŒΜ‚π‘˜|π‘†π‘˜βˆ’1 = 𝑒) = 𝑃(π‘†π‘˜ = 𝑝|π‘†π‘˜βˆ’1= 𝑒). 𝑃(π‘ŒΜ‚π‘˜|π‘†π‘˜βˆ’1 = 𝑒, π‘†π‘˜= 𝑝) π›Ύπ‘˜(𝑒, 𝑝) = 𝑃(𝑝|𝑒) 𝑃(π‘ŒΜ‚π‘˜|𝑒, 𝑝) = 𝑃(𝑋𝑖,π‘˜)𝑝(π‘ŒΜ‚π‘˜|π‘‹π‘œ,π‘˜) = 𝑃(𝑋𝑖,π‘˜) (√ 𝐸𝑠 πœ‹πœŽ2) 𝑒 βˆ’(β€–π‘ŒΜ‚π‘˜βˆ’π‘‹π‘œ,π‘˜β€– 2 𝜎2 )

It is important to note that for the BCJR algorithm, the noise variance

𝜎2corresponding to the specified branch should be calculated. In the other

hand, the noise variance was not required in the Viterbi scheme and that reduces the algorithm complexity.

3- Calculating the forward recursion in terms of alphas (𝛼)

π›Όπ‘˜(𝑝) = log {βˆ‘ βˆ‘ π›Όβˆ‘ 𝛼𝑒 π‘˜βˆ’1(𝑒).π›Ύπ‘˜(𝑒,𝑝)

π‘˜βˆ’1(𝑒).π›Ύπ‘˜(𝑒,𝑝) 𝑝

55

4- Calculating the backward recursion in term of betas

π›½π‘˜(𝑝) = log {βˆ‘ βˆ‘ π›Όβˆ‘ 𝛽𝑒 π‘˜+1(𝑒).π›Ύπ‘˜(𝑒,𝑝)

π‘˜(𝑒).π›Ύπ‘˜(𝑒,𝑝) 𝑝

𝑒 } (2.7.8)

5- Computing the likelihood of the input as follows

𝐿(π‘₯𝑖) = log {

βˆ‘π‘’,𝑝;π‘₯𝑖=1π›Όπ‘˜βˆ’1(𝑒).π›Ύπ‘˜(1,𝑒,𝑝).π›½π‘˜(𝑝)

βˆ‘π‘’,𝑝;π‘₯𝑖=0π›Όπ‘˜βˆ’1(𝑒).π›Ύπ‘˜(0,𝑒,𝑝).π›½π‘˜(𝑝) } (2.7.9)

56

Further approximation could be used to the BCJR algorithm in the name of Log-MAP and Max-Log-MAP, which make use of the logarithmic property to give an efficient implementation. The Max algorithm gives further reduction in the complexity by removing the exponential term in the Log-MAP method. Therefore, the latter algorithm gives an optimal computational performance in comparison to the original scheme. In conclusion, BCJR algorithm works in a recursion process by depending on joint events (previous, current, and expected future events), and therefore has a complexity issue as well as overhead cost. This is one of the major challenges in applying these non-linear algorithms in low cost wireless applications. This is because, for every observed received signal vector, there would a multiple computations regarding the states of the encoder with evaluation to the relation between the input signal vector, and the estimated trellis states. The numerical instability of underflow and overflow due to design errors in the iteration process makes this algorithm less favourable to be implemented in wireless indoor application.

57

Related documents