Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Turbo code
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==The decoder== The decoder is built in a similar way to the above encoder. Two elementary decoders are interconnected to each other, but in series, not in parallel. The <math>\textstyle DEC_1</math> decoder operates on lower speed (i.e., <math>\textstyle R_1</math>), thus, it is intended for the <math>\textstyle C_1</math> encoder, and <math>\textstyle DEC_2</math> is for <math>\textstyle C_2</math> correspondingly. <math>\textstyle DEC_1</math> yields a [[Turbo code#Soft decision approach|soft decision]] which causes <math>\textstyle L_1</math> delay. The same delay is caused by the delay line in the encoder. The <math>\textstyle DEC_2</math>'s operation causes <math>\textstyle L_2</math> delay. [[File:turbo decoder.svg]] An interleaver installed between the two decoders is used here to scatter error bursts coming from <math>\textstyle DEC_1</math> output. ''DI'' block is a demultiplexing and insertion module. It works as a switch, redirecting input bits to <math>\textstyle DEC_1</math> at one moment and to <math>\textstyle DEC_2</math> at another. In OFF state, it feeds both <math>\textstyle y_{1k}</math> and <math>\textstyle y_{2k}</math> inputs with padding bits (zeros). Consider a memoryless [[additive white Gaussian noise|AWGN]] channel, and assume that at ''k''-th iteration, the decoder receives a pair of random variables: :<math>\begin{align} ~x_k &= (2d_k - 1) + a_k\\ ~y_k &= 2( Y_k - 1) + b_k \end{align}</math> where <math>\textstyle a_k</math> and <math>\textstyle b_k</math> are independent noise components having the same variance <math>\textstyle \sigma^2</math>. <math>\textstyle Y_k</math> is a ''k''-th bit from <math>\textstyle y_k</math> encoder output. Redundant information is demultiplexed and sent through ''DI'' to <math>\textstyle DEC_1</math> (when <math>\textstyle y_k = y_{1k}</math>) and to <math>\textstyle DEC_2</math> (when <math>\textstyle y_k = y_{2k}</math>). <math>\textstyle DEC_1</math> yields a soft decision; i.e.: :<math>\Lambda(d_k) = \log\frac{p(d_k = 1)}{p(d_k = 0)}</math> and delivers it to <math>\textstyle DEC_2</math>. <math>\textstyle \Lambda(d_k)</math> is called the ''logarithm of the likelihood ratio'' (LLR). <math>\textstyle p(d_k = i),\, i \in \{0, 1\}</math> is the ''a posteriori probability'' (APP) of the <math>\textstyle d_k</math> data bit which shows the probability of interpreting a received <math>\textstyle d_k</math> bit as <math>\textstyle i</math>. Taking the ''LLR'' into account, <math>\textstyle DEC_2</math> yields a hard decision; i.e., a decoded bit. It is known that the [[Viterbi algorithm]] is unable to calculate APP, thus it cannot be used in <math>\textstyle DEC_1</math>. Instead of that, a modified [[BCJR algorithm]] is used. For <math>\textstyle DEC_2</math>, the [[Viterbi algorithm]] is an appropriate one. However, the depicted structure is not an optimal one, because <math>\textstyle DEC_1</math> uses only a proper fraction of the available redundant information. In order to improve the structure, a feedback loop is used (see the dotted line on the figure).
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)