Near shannon limit error correcting coding and decoding turbo codes

A new class of convolutional codes called turbo-codes, whose performances in terms of bit error rate (BER) are close to the Shannon limit, is discussed. A new class of convolutional codes called turbo-codes, whose performances in terms of bit error rate (BER) are close to the Shannon limit, is discussed. The turbo-code encoder is built using a parallel concatenation of two recursive systematic convolutional codes, and the associated decoder, using a feedback decoding rule, is implemented as P pipelined identical elementary decoders.<>

Near optimum error correcting coding and decoding: turbo-codes

  • Computer Science

    IEEE Trans. Commun.

  • 1996

A new family of convolutional codes, nicknamed turbo-codes, built from a particular concatenation of two recursive systematic codes, linked together by nonuniform interleaving appears to be close to the theoretical limit predicted by Shannon.

An IC for turbo-codes encoding and decoding

  • C. BerrouP. CombellesP. PenardB. Talibart
  • Computer Science

    Proceedings ISSCC ’95 — International Solid-State Circuits Conference

  • 1995

A turbo-code is the parallel concatenation of two recursive systematic convolutional codes separated by a non-uniform interleaving, made up of 2 soft-output Viterbi algorithm decoders, interleaved modules, some delay lines, and a synchronization block that also features supervision functions.

Factor graphs based iterative decoding of turbo codes

  • Lianxiang ZhuJifeng WangShi-zhong Yang
  • Computer Science

    IEEE 2002 International Conference on Communications, Circuits and Systems and West Sino Expositions

  • 2002

A new scheme based on factor graphs and sum-product algorithm is developed that can reduce the decoding complexity of turbo codes greatly, and also has some guides in the designing of interleaver and the choosing of recursive systematic convolutional (RSC) constituent codes.

Threshold decoding of turbo-codes

  • Y. V. SviridSebastian Riedel
  • Computer Science

    Proceedings of 1995 IEEE International Symposium on Information Theory

  • 1995

The idea of iterative decoding of two-dimensional systematic convolutional codes-so-called turbo-codes-is extended to threshold decoding, which is presented in «soft-in/soft-out» form. The

Combining variable length codes and turbo codes

  • K. LakovicJ. Villasenor
  • Computer Science

    Vehicular Technology Conference. IEEE 55th Vehicular Technology Conference. VTC Spring 2002 (Cat. No.02CH37367)

  • 2002

An iterative joint source-channel decoder is designed, which exhibits decoding convergence at a low signal-to-noise ratio (SNR) and exhibits superior performance at all SNR levels, relative to a standard system that involves turbo codes and Huffman codes.

Turbo decoding of linear block codes

  • Dian-Wu YueE. Shwedyk
  • Computer Science

    2001 IEEE Pacific Rim Conference on Communications, Computers and Signal Processing (IEEE Cat. No.01CH37233)

  • 2001

This work considers how to use the turbo decoding principle to decode a general linear block code, and presents two decoding strategies, and gives an open problem.

IEEE Account

  • Change Username/Password
  • Update Address

Purchase Details

  • Payment Options
  • Order History
  • View Purchased Documents

Profile Information

  • Communications Preferences
  • Profession and Education
  • Technical Interests

Need Help?

  • US & Canada: +1 800 678 4333
  • Worldwide: +1 732 981 0060
  • Contact & Support

  • About IEEE Xplore
  • Contact Us
  • Help
  • Accessibility
  • Terms of Use
  • Nondiscrimination Policy
  • Sitemap
  • Privacy & Opting Out of Cookies

A not-for-profit organization, IEEE is the world’s largest technical professional organization dedicated to advancing technology for the benefit of humanity.
© Copyright 2023 IEEE — All rights reserved. Use of this web site signifies your agreement to the terms and conditions.

23 May 1993Vol. 2, pp 1064-1070

TL;DR: In this article, a new class of convolutional codes called turbo-codes, whose performances in terms of bit error rate (BER) are close to the Shannon limit, is discussed.

Abstract: A new class of convolutional codes called turbo-codes, whose performances in terms of bit error rate (BER) are close to the Shannon limit, is discussed. The turbo-code encoder is built using a parallel concatenation of two recursive systematic convolutional codes, and the associated decoder, using a feedback decoding rule, is implemented as P pipelined identical elementary decoders. >

…read more


Citations

PDF

Open Access

More filters

Journal ArticleDOI

TL;DR: In this article, the authors examined the performance of using multi-element array (MEA) technology to improve the bit-rate of digital wireless communications and showed that with high probability extraordinary capacity is available.

…read moreread less

Abstract: This paper is motivated by the need for fundamental understanding of ultimate limits of bandwidth efficient delivery of higher bit-rates in digital wireless communications and to also begin to look into how these limits might be approached. We examine exploitation of multi-element array (MEA) technology, that is processing the spatial dimension (not just the time dimension) to improve wireless capacities in certain applications. Specifically, we present some basic information theory results that promise great advantages of using MEAs in wireless LANs and building to building wireless communication links. We explore the important case when the channel characteristic is not available at the transmitter but the receiver knows (tracks) the characteristic which is subject to Rayleigh fading. Fixing the overall transmitted power, we express the capacity offered by MEA technology and we see how the capacity scales with increasing SNR for a large but practical number, n, of antenna elements at both transmitter and receiver.

We investigate the case of independent Rayleigh faded paths between antenna elements and find that with high probability extraordinary capacity is available. Compared to the baseline n = 1 case, which by Shannon‘s classical formula scales as one more bit/cycle for every 3 dB of signal-to-noise ratio (SNR) increase, remarkably with MEAs, the scaling is almost like n more bits/cycle for each 3 dB increase in SNR. To illustrate how great this capacity is, even for small n, take the cases n = 2, 4 and 16 at an average received SNR of 21 dB. For over 99% of the channels the capacity is about 7, 19 and 88 bits/cycle respectively, while if n = 1 there is only about 1.2 bit/cycle at the 99% level. For say a symbol rate equal to the channel bandwith, since it is the bits/symbol/dimension that is relevant for signal constellations, these higher capacities are not unreasonable. The 19 bits/cycle for n = 4 amounts to 4.75 bits/symbol/dimension while 88 bits/cycle for n = 16 amounts to 5.5 bits/symbol/dimension. Standard approaches such as selection and optimum combining are seen to be deficient when compared to what will ultimately be possible. New codecs need to be invented to realize a hefty portion of the great capacity promised.

…read moreread less

Journal ArticleDOI

TL;DR: A generic message-passing algorithm, the sum-product algorithm, that operates in a factor graph, that computes-either exactly or approximately-various marginal functions derived from the global function.

…read moreread less

Abstract: Algorithms that must deal with complicated global functions of many variables often exploit the manner in which the given functions factor as a product of «local» functions, each of which depends on a subset of the variables. Such a factorization can be visualized with a bipartite graph that we call a factor graph, In this tutorial paper, we present a generic message-passing algorithm, the sum-product algorithm, that operates in a factor graph. Following a single, simple computational rule, the sum-product algorithm computes-either exactly or approximately-various marginal functions derived from the global function. A wide variety of algorithms developed in artificial intelligence, signal processing, and digital communications can be derived as specific instances of the sum-product algorithm, including the forward/backward algorithm, the Viterbi algorithm, the iterative «turbo» decoding algorithm, Pearl’s (1988) belief propagation algorithm for Bayesian networks, the Kalman filter, and certain fast Fourier transform (FFT) algorithms.

…read moreread less

Journal ArticleDOI

29 Jun 1997

TL;DR: It is proved that sequences of codes exist which, when optimally decoded, achieve information rates up to the Shannon limit, and experimental results for binary-symmetric channels and Gaussian channels demonstrate that practical performance substantially better than that of standard convolutional and concatenated codes can be achieved.

…read moreread less

Abstract: We study two families of error-correcting codes defined in terms of very sparse matrices «MN» (MacKay-Neal (1995)) codes are recently invented, and «Gallager codes» were first investigated in 1962, but appear to have been largely forgotten, in spite of their excellent properties The decoding of both codes can be tackled with a practical sum-product algorithm We prove that these codes are «very good», in that sequences of codes exist which, when optimally decoded, achieve information rates up to the Shannon limit This result holds not only for the binary-symmetric channel but also for any channel with symmetric stationary ergodic noise We give experimental results for binary-symmetric channels and Gaussian channels demonstrating that practical performance substantially better than that of standard convolutional and concatenated codes can be achieved; indeed, the performance of Gallager codes is almost as close to the Shannon limit as that of turbo codes

…read moreread less

Journal ArticleDOI

TL;DR: This work designs low-density parity-check codes that perform at rates extremely close to the Shannon capacity and proves a stability condition which implies an upper bound on the fraction of errors that a belief-propagation decoder can correct when applied to a code induced from a bipartite graph with a given degree distribution.

…read moreread less

Abstract: We design low-density parity-check (LDPC) codes that perform at rates extremely close to the Shannon capacity. The codes are built from highly irregular bipartite graphs with carefully chosen degree patterns on both sides. Our theoretical analysis of the codes is based on the work of Richardson and Urbanke (see ibid., vol.47, no.2, p.599-618, 2000). Assuming that the underlying communication channel is symmetric, we prove that the probability densities at the message nodes of the graph possess a certain symmetry. Using this symmetry property we then show that, under the assumption of no cycles, the message densities always converge as the number of iterations tends to infinity. Furthermore, we prove a stability condition which implies an upper bound on the fraction of errors that a belief-propagation decoder can correct when applied to a code induced from a bipartite graph with a given degree distribution. Our codes are found by optimizing the degree structure of the underlying graphs. We develop several strategies to perform this optimization. We also present some simulation results for the codes found which show that the performance of the codes is very close to the asymptotic theoretical bounds.

…read moreread less

Journal ArticleDOI

TL;DR: The results are based on the observation that the concentration of the performance of the decoder around its average performance, as observed by Luby et al. in the case of a binary-symmetric channel and a binary message-passing algorithm, is a general phenomenon.

…read moreread less

Abstract: We present a general method for determining the capacity of low-density parity-check (LDPC) codes under message-passing decoding when used over any binary-input memoryless channel with discrete or continuous output alphabets. Transmitting at rates below this capacity, a randomly chosen element of the given ensemble will achieve an arbitrarily small target probability of error with a probability that approaches one exponentially fast in the length of the code. (By concatenating with an appropriate outer code one can achieve a probability of error that approaches zero exponentially fast in the length of the code with arbitrarily small loss in rate.) Conversely, transmitting at rates above this capacity the probability of error is bounded away from zero by a strictly positive constant which is independent of the length of the code and of the number of iterations performed. Our results are based on the observation that the concentration of the performance of the decoder around its average performance, as observed by Luby et al. in the case of a binary-symmetric channel and a binary message-passing algorithm, is a general phenomenon. For the particularly important case of belief-propagation decoders, we provide an effective algorithm to determine the corresponding capacity to any desired degree of accuracy. The ideas presented in this paper are broadly applicable and extensions of the general method to low-density parity-check codes over larger alphabets, turbo codes, and other concatenated coding schemes are outlined.

…read moreread less


References

PDF

Open Access

More filters

Journal ArticleDOI

TL;DR: The general problem of estimating the a posteriori probabilities of the states and transitions of a Markov source observed through a discrete memoryless channel is considered and an optimal decoding algorithm is derived.

…read moreread less

Abstract: The general problem of estimating the a posteriori probabilities of the states and transitions of a Markov source observed through a discrete memoryless channel is considered. The decoding of linear block and convolutional codes to minimize symbol error probability is shown to be a special case of this problem. An optimal decoding algorithm is derived.

…read moreread less

Proceedings ArticleDOI

23 May 1993

TL;DR: A means to adapt the classical architecture of a Viterbi decoder to make it able to provide soft (weighted) decisions is presented and an application to the decoding of concatenated convolutional codes, with the proposed soft-output decoder as the inner decoder is examined.

…read moreread less

Abstract: A means to adapt the classical architecture of a Viterbi decoder to make it able to provide soft (weighted) decisions is presented. After a theoretical justification of the proposed method, based on Battail or Hagenauer-Hoeher algorithms, the new architecture is detailed. It leads to a real-time circuit, the size of which is roughly twice the size of the classical Viterbi decoder. In order to appreciate the quality of the weighting method, an application to the decoding of concatenated convolutional codes, with the proposed soft-output decoder as the inner decoder, is examined. >

…read moreread less


Related Papers (5)

IEEE Transactions on Communications

Low-Complexity Soft Decoding of Huffman Codes and Iterative Joint Source Channel Decoding

2012 •

Amin Zribi

View PDF

PERFORMANCE OF TURBO CODED OFDM IN WIRELESS APPLICATION

balaji naik

View PDF

A Non-Binary Turbo Trellis — Raad H. Thaher

IASET US

View PDF

Turbo Coded OFDM system for Video Terrestrial Broadcasting

Renzo Posega

View PDF

Implementation of a parallel turbo decoder with dividable interleaver

2003 •

park jaeyoung

View PDF

On Superposition Coding for Wireless Broadcast Channels

Vaibhav Singh

View PDF

Performance Analysis of Turbo Coded OFDM System

IJERA Journal

View PDF

Maximum a Posteriori Decoding of Turbo Codes

tam nguyen

View PDF

Noise Correlation-Aided Iterative Decoding for Magnetic Recording Channels

2006 •

Lunchakorn Wuttisittikulkij

View PDF

Performance of Parallel Concatenated Convolutional Codes (PCCC) with BPSK in Nakagami Multipath M-Fading Channel

Mohamed Mowad

View PDF

2004 IEEE International Symposium on Circuits and Systems (IEEE Cat. No.04CH37512)

A practical algorithm for turbo-decoding enhancement

2004 •

Denis Spasov

View PDF

IJIRAE::A Review on Performance Analysis on LOG-MAP & SOVA DECODER

IJIRAE — International Journal of Innovative Research in Advanced Engineering

View PDF

A Concept Paper on‘Complexity and Performance Trade-offs of SISO Turbo Decoders’

NEERAJ MARWAHA

View PDF

Extrinsic information in turbo decoding: A unified view

1999 •

Gianluigi Ferrari

View PDF

IEEE Transactions on Instrumentation and Measurement

An Improved Max-Log-MAP Algorithm for Turbo Decoding and Turbo Equalization

2000 •

Majid Ahmadi

View PDF

IEEE Transactions on Communications

Joint Source-Channel Decoding of Variable-Length Codes for Convolutional Codes and Turbo Codes

2005 •

Christine Guillemot

View PDF

EURASIP Journal on Advances in Signal Processing

Tribute for Professor Alain Glavieux

2005 •

Luc Vandendorpe

View PDF

HERMIS-mu-pi International Journal of Computer …

Message passing algorithm for iterative decoding of channel codes

2006 •

Muhammad Imran

View PDF

International Journal of Communication Systems

Performance of multilevel-turbo codes with blind/non-blind equalization over WSSUS multipath channels

2006 •

Niyazi Odabasioglu

View PDF

Iee Proceedings-communications

Performance of multilevel turbo codes with group partitioning over satellite channels

2005 •

Niyazi Odabasioglu

View PDF

ICC 2001. IEEE International Conference on Communications. Conference Record (Cat. No.01CH37240)

Noncoherent iterative decoding of spectrally efficient coded modulations

2001 •

Giulio Colavolpe

View PDF

Detection and Decoding for 2D Magnetic Recording Channels with 2D Intersymbol Interference

Michael Carosino

View PDF

Performance Analysis of Turbo Codes Over AWGN Channel

Rajdeep Singh

View PDF

IEICE Transactions on Communications

An Iterative Decoding Method of Updating Redundant Likelihood Information

2005 •

Masayuki Ariyoshi

View PDF

2008 IEEE Wireless Communications and Networking Conference

PHY 40-2 — Combined User Multiplexing and Data Modulation Through Non-Binary Turbo Codes for UWB

2008 •

Tadeusz Wysocki

View PDF

2008 IEEE 19th International Symposium on Personal, Indoor and Mobile Radio Communications

Truncated hyperbolic mapping for non-binary turbo coding in UWB

2008 •

Tadeusz Wysocki

View PDF

IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences

Space-Time-Frequency Turbo Code over Time-Varying and Frequency-Selective Fading Channel

2005 •

Ryuji Kohno

View PDF

EURASIP Journal on Advances in Signal Processing

Joint Source-Channel Decoding of Variable-Length Codes with Soft Information: A Survey

2005 •

Pierre Siohan

View PDF

Turbo Decoding Performance Evaluation for 3GPP Long Term Evolution

Mohamed Moussaoui

View PDF

Computer Communications

Modeling the bit-level stochastic correlation for turbo decoding

2006 •

Tsan-jieh Chen

View PDF

Performance optimization and parallelization of turbo decoding for software-defined radio

2009 •

Subramania Sudharsanan

View PDF

2005 IEEE 16th International Symposium on Personal, Indoor and Mobile Radio Communications

CDMA and IDMA: Iterative Multiuser Detections for Near-Far Asynchronous Communications

2005 •

Katsutoshi Kusume

View PDF

The Minimum Likelihood APP Based Early Stopping Criterion for Multi-Binary Turbo Codes

2000 •

Catherine Douillard

View PDF

Bit-Interleaved Coded Modulation

Alireza MohammadZadeh Zavieh

View PDF

2012 16th IEEE Mediterranean Electrotechnical Conference

A stopping criteria for turbo decoding based on the LLR histogram

2012 •

Nadir Derouiche

View PDF

IEEE Transactions on Wireless Communications

Turbo Detection of Precoded Sphere Packing Modulation Using Four Transmit Antennas for Differential Space-Time Spreading

2000 •

Soon Ng

View PDF

New Hybrid Concatenated Codes

Engineering Journal Publication of Research work

View PDF

IEE Proceedings — Communications

Coded modulation schemes based on partial Gray mapping and unpunctured high rate turbo codes

2006 •

marco ferrari

View PDF

Multi-Fold Turbo Codes for the 2-User Binary Adder Channel

2012 •

Hassan M . Ahmed

View PDF

Performance comparisons of capacity approaching QC- LDPC and Code-Matched Interlearver based Turbo codes in single relay cooperation

Urd Sher Qaisrani

View PDF

From Wikipedia, the free encyclopedia

In information theory, turbo codes (originally in French Turbocodes) are a class of high-performance forward error correction (FEC) codes developed around 1990–91, but first published in 1993. They were the first practical codes to closely approach the maximum channel capacity or Shannon limit, a theoretical maximum for the code rate at which reliable communication is still possible given a specific noise level. Turbo codes are used in 3G/4G mobile communications (e.g., in UMTS and LTE) and in (deep space) satellite communications as well as other applications where designers seek to achieve reliable information transfer over bandwidth- or latency-constrained communication links in the presence of data-corrupting noise. Turbo codes compete with low-density parity-check (LDPC) codes, which provide similar performance.

The name «turbo code» arose from the feedback loop used during normal turbo code decoding, which was analogized to the exhaust feedback used for engine turbocharging. Hagenauer has argued the term turbo code is a misnomer since there is no feedback involved in the encoding process.[1]

History[edit]

The fundamental patent application for turbo codes was filed on 23 April 1991. The patent application lists Claude Berrou as the sole inventor of turbo codes. The patent filing resulted in several patents including US Patent 5,446,747, which expired 29 August 2013.

The first public paper on turbo codes was «Near Shannon Limit Error-correcting Coding and Decoding: Turbo-codes«.[2] This paper was published 1993 in the Proceedings of IEEE International Communications Conference. The 1993 paper was formed from three separate submissions that were combined due to space constraints. The merger caused the paper to list three authors: Berrou, Glavieux, and Thitimajshima (from Télécom Bretagne, former ENST Bretagne, France). However, it is clear from the original patent filing that Berrou is the sole inventor of turbo codes and that the other authors of the paper contributed material other than the core concepts.[improper synthesis]

Turbo codes were so revolutionary at the time of their introduction that many experts in the field of coding did not believe the reported results. When the performance was confirmed a small revolution in the world of coding took place that led to the investigation of many other types of iterative signal processing.

The first class of turbo code was the parallel concatenated convolutional code (PCCC). Since the introduction of the original parallel turbo codes in 1993, many other classes of turbo code have been discovered, including serial versions serial concatenated convolutional codes and repeat-accumulate codes. Iterative turbo decoding methods have also been applied to more conventional FEC systems, including Reed–Solomon corrected convolutional codes, although these systems are too complex for practical implementations of iterative decoders. Turbo equalization also flowed from the concept of turbo coding.

In addition to turbo codes, Berrou also invented recursive systematic convolutional (RSC) codes, which are used in the example implementation of turbo codes described in the patent. Turbo codes that use RSC codes seem to perform better than turbo codes that do not use RSC codes.

Prior to turbo codes, the best constructions were serial concatenated codes based on an outer Reed–Solomon error correction code combined with an inner Viterbi-decoded short constraint length convolutional code, also known as RSV codes.

In a later paper, Berrou gave credit to the intuition of «G. Battail, J. Hagenauer and P. Hoeher, who, in the late 80s, highlighted the interest of probabilistic processing.» He adds «R. Gallager and M. Tanner had already imagined coding and decoding techniques whose general principles are closely related,» although the necessary calculations were impractical at that time.[3]

An example encoder[edit]

There are many different instances of turbo codes, using different component encoders, input/output ratios, interleavers, and puncturing patterns. This example encoder implementation describes a classic turbo encoder, and demonstrates the general design of parallel turbo codes.

This encoder implementation sends three sub-blocks of bits. The first sub-block is the m-bit block of payload data. The second sub-block is n/2 parity bits for the payload data, computed using a recursive systematic convolutional code (RSC code). The third sub-block is n/2 parity bits for a known permutation of the payload data, again computed using an RSC code. Thus, two redundant but different sub-blocks of parity bits are sent with the payload. The complete block has m + n bits of data with a code rate of m/(m + n). The permutation of the payload data is carried out by a device called an interleaver.

Hardware-wise, this turbo code encoder consists of two identical RSC coders, C1 and C2, as depicted in the figure, which are connected to each other using a concatenation scheme, called parallel concatenation:

Turbo encoder.svg

In the figure, M is a memory register. The delay line and interleaver force input bits dk to appear in different sequences.
At first iteration, the input sequence dk appears at both outputs of the encoder, xk and y1k or y2k due to the encoder’s systematic nature. If the encoders C1 and C2 are used in n1 and n2 iterations, their rates are respectively equal to

{begin{aligned}~R_{1}&={frac {n_{1}+n_{2}}{2n_{1}+n_{2}}}\~R_{2}&={frac {n_{1}+n_{2}}{n_{1}+2n_{2}}}end{aligned}}

The decoder[edit]

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 {displaystyle textstyle DEC_{1}} decoder operates on lower speed (i.e., {displaystyle textstyle R_{1}}), thus, it is intended for the {displaystyle textstyle C_{1}} encoder, and {displaystyle textstyle DEC_{2}} is for {displaystyle textstyle C_{2}} correspondingly. {displaystyle textstyle DEC_{1}} yields a soft decision which causes {displaystyle textstyle L_{1}} delay. The same delay is caused by the delay line in the encoder. The {displaystyle textstyle DEC_{2}}‘s operation causes {displaystyle textstyle L_{2}} delay.

Turbo decoder.svg

An interleaver installed between the two decoders is used here to scatter error bursts coming from {displaystyle textstyle DEC_{1}} output. DI block is a demultiplexing and insertion module. It works as a switch, redirecting input bits to {displaystyle textstyle DEC_{1}} at one moment and to {displaystyle textstyle DEC_{2}} at another. In OFF state, it feeds both {displaystyle textstyle y_{1k}} and {displaystyle textstyle y_{2k}} inputs with padding bits (zeros).

Consider a memoryless AWGN channel, and assume that at k-th iteration, the decoder receives a pair of random variables:

{begin{aligned}~x_{k}&=(2d_{k}-1)+a_{k}\~y_{k}&=2(Y_{k}-1)+b_{k}end{aligned}}

where {displaystyle textstyle a_{k}} and {displaystyle textstyle b_{k}} are independent noise components having the same variance {displaystyle textstyle sigma ^{2}}. {displaystyle textstyle Y_{k}} is a k-th bit from {displaystyle textstyle y_{k}} encoder output.

Redundant information is demultiplexed and sent through DI to {displaystyle textstyle DEC_{1}} (when {displaystyle textstyle y_{k}=y_{1k}}) and to {displaystyle textstyle DEC_{2}} (when {displaystyle textstyle y_{k}=y_{2k}}).

{displaystyle textstyle DEC_{1}} yields a soft decision; i.e.:

Lambda (d_{k})=log {frac {p(d_{k}=1)}{p(d_{k}=0)}}

and delivers it to {displaystyle textstyle DEC_{2}}. {displaystyle textstyle Lambda (d_{k})} is called the logarithm of the likelihood ratio (LLR). {displaystyle textstyle p(d_{k}=i),,iin {0,1}} is the a posteriori probability (APP) of the {displaystyle textstyle d_{k}} data bit which shows the probability of interpreting a received {displaystyle textstyle d_{k}} bit as textstyle i. Taking the LLR into account, {displaystyle textstyle DEC_{2}} 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 {displaystyle textstyle DEC_{1}}. Instead of that, a modified BCJR algorithm is used. For {displaystyle textstyle DEC_{2}}, the Viterbi algorithm is an appropriate one.

However, the depicted structure is not an optimal one, because {displaystyle textstyle DEC_{1}} 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).

Soft decision approach[edit]

The decoder front-end produces an integer for each bit in the data stream. This integer is a measure of how likely it is that the bit is a 0 or 1 and is also called soft bit. The integer could be drawn from the range [−127, 127], where:

  • −127 means «certainly 0»
  • −100 means «very likely 0»
  • 0 means «it could be either 0 or 1»
  • 100 means «very likely 1»
  • 127 means «certainly 1»

This introduces a probabilistic aspect to the data-stream from the front end, but it conveys more information about each bit than just 0 or 1.

For example, for each bit, the front end of a traditional wireless-receiver has to decide if an internal analog voltage is above or below a given threshold voltage level. For a turbo code decoder, the front end would provide an integer measure of how far the internal voltage is from the given threshold.

To decode the m + n-bit block of data, the decoder front-end creates a block of likelihood measures, with one likelihood measure for each bit in the data stream. There are two parallel decoders, one for each of the n2-bit parity sub-blocks. Both decoders use the sub-block of m likelihoods for the payload data. The decoder working on the second parity sub-block knows the permutation that the coder used for this sub-block.

Solving hypotheses to find bits[edit]

The key innovation of turbo codes is how they use the likelihood data to reconcile differences between the two decoders. Each of the two convolutional decoders generates a hypothesis (with derived likelihoods) for the pattern of m bits in the payload sub-block. The hypothesis bit-patterns are compared, and if they differ, the decoders exchange the derived likelihoods they have for each bit in the hypotheses. Each decoder incorporates the derived likelihood estimates from the other decoder to generate a new hypothesis for the bits in the payload. Then they compare these new hypotheses. This iterative process continues until the two decoders come up with the same hypothesis for the m-bit pattern of the payload, typically in 15 to 18 cycles.

An analogy can be drawn between this process and that of solving cross-reference puzzles like crossword or sudoku. Consider a partially completed, possibly garbled crossword puzzle. Two puzzle solvers (decoders) are trying to solve it: one possessing only the «down» clues (parity bits), and the other possessing only the «across» clues. To start, both solvers guess the answers (hypotheses) to their own clues, noting down how confident they are in each letter (payload bit). Then, they compare notes, by exchanging answers and confidence ratings with each other, noticing where and how they differ. Based on this new knowledge, they both come up with updated answers and confidence ratings, repeating the whole process until they converge to the same solution.

Performance[edit]

Turbo codes perform well due to the attractive combination of the code’s random appearance on the channel together with the physically realisable decoding structure. Turbo codes are affected by an error floor.

Practical applications using turbo codes[edit]

Telecommunications:

  • Turbo codes are used extensively in 3G and 4G mobile telephony standards; e.g., in HSPA, EV-DO and LTE.
  • MediaFLO, terrestrial mobile television system from Qualcomm.
  • The interaction channel of satellite communication systems, such as DVB-RCS[4] and DVB-RCS2.
  • Recent NASA missions such as Mars Reconnaissance Orbiter use turbo codes as an alternative to Reed–Solomon error correction-Viterbi decoder codes.
  • IEEE 802.16 (WiMAX), a wireless metropolitan network standard, uses block turbo coding and convolutional turbo coding.

Bayesian formulation[edit]

From an artificial intelligence viewpoint, turbo codes can be considered as an instance of loopy belief propagation in Bayesian networks.[5]

See also[edit]

  • Convolutional code
  • Viterbi algorithm
  • Soft-decision decoding
  • Interleaver
  • BCJR algorithm
  • Low-density parity-check code
  • Serial concatenated convolutional codes
  • Turbo equalizer
  • Forward error correction

References[edit]

  1. ^ Joachim Hagenauer, Joachim; et al. «Iterative Decoding of Binary Block and Convolutional Codes» (PDF). Archived from the original (PDF) on 11 June 2013. Retrieved 20 March 2014.
  2. ^ Berrou, Claude; Glavieux, Alain; Thitimajshima, Punya, Near Shannon Limit Error – Correcting, retrieved 11 February 2010
  3. ^ Berrou, Claude, The ten-year-old turbo codes are entering into service, Bretagne, France, retrieved 11 February 2010
  4. ^ Digital Video Broadcasting (DVB); Interaction channel for Satellite Distribution Systems, ETSI EN 301 790, V1.5.1, May 2009.
  5. ^ McEliece, Robert J.; MacKay, David J. C.; Cheng, Jung-Fu (1998), «Turbo decoding as an instance of Pearl’s «belief propagation» algorithm» (PDF), IEEE Journal on Selected Areas in Communications, 16 (2): 140–152, doi:10.1109/49.661103, ISSN 0733-8716.

Further reading[edit]

Publications[edit]

  • Battail, Gérard. «A conceptual framework for understanding turbo codes.» IEEE Journal on Selected Areas in Communications 16.2 (1998): 245–254.
  • Brejza, Matthew F., et al. «20 years of turbo coding and energy-aware design guidelines for energy-constrained wireless applications.» IEEE Communications Surveys & Tutorials 18.1 (2016): 8–28.
  • Garzón-Bohórquez, Ronald, Charbel Abdel Nour, and Catherine Douillard. «Improving Turbo codes for 5G with parity puncture-constrained interleavers.» Turbo Codes and Iterative Information Processing (ISTC), 2016 9th International Symposium on. IEEE, 2016.

External links[edit]

  • «Closing In On The Perfect Code», IEEE Spectrum, March 2004
  • «The UMTS Turbo Code and an Efficient Decoder Implementation Suitable for Software-Defined Radios» (International Journal of Wireless Information Networks)
  • Dana Mackenzie (2005), «Take it to the limit», New Scientist, 187 (2507): 38–41, ISSN 0262-4079. (preview, copy)
  • «Pushing the Limit», a Science News feature about the development and genesis of turbo codes
  • International Symposium On Turbo Codes
  • Coded Modulation Library, an open source library for simulating turbo codes in matlab
  • «Turbo Equalization: Principles and New Results», an IEEE Transactions on Communications article about using convolutional codes jointly with channel equalization.
  • IT++ Home Page The IT++ is a powerful C++ library which in particular supports turbo codes
  • Turbo codes publications by David MacKay
  • AFF3CT Home Page (A Fast Forward Error Correction Toolbox) for high speed turbo codes simulations in software
  • Turbo code by Dr. Sylvie Kerouédan and Dr. Claude Berrou (scholarpedia.org).
  • 3GPP LTE Turbo Reference Design.
  • Estimate Turbo Code BER Performance in AWGN (MatLab).
  • Parallel Concatenated Convolutional Coding: Turbo Codes (MatLab Simulink)

Турбо-код состоит из каскада параллельно соединённых систематических кодов. Эти составляющие называются компонентными кодами. В качестве компонентных кодов могут использоваться свёрточные коды, коды Хемминга, Рида — Соломона,  Боуза — Чоудхури — Хоквингема и другие. В зависимости от выбора компонентного кода турбо-коды делятся на свёрточные турбо-коды (англ. Turbo Convolutional Codes, ТСС) и блоковые коды-произведения (англ. Turbo Product Codes, TPC). Согласно последним исследованиям и разработкам, наилучшие практические результаты достигаются при использовании турбокодов на основе кодов Хэмминга или кодов Боуза-Чоудх-ури-Хоквингема.

Энергетический выигрыш, получаемый при использовании турбокодирования в канале с белым гауссовским шумом, составляет от 2 до 4 дБ по сравнению с другими распространенными методами (например, по сравнению с каскадным кодом)

Очевидно, что при энергетическом выигрыше в 3 дБ мощность передатчика может быть уменьшена в 2 раза при прочих равных условиях, либо допустимый коэффициент шума приемника может быть увеличен на 3 дБ

Энергетический выигрыш в 3 дБ позволяет увеличить дальность связи на 40%, либо сократить размеры приемной или передающей антенны на 30%, поскольку коэффициент усиления и эффективная площадь антенны связаны следующим соотношением

Турбо-коды были предложены К. Берроу (C. Berrou), А. Главьё (A. Glavieux) и П. Ситимашимой (P. Thitimajshima) (англ. Ecole Nationale Superieure des Telecommunications de Bretagne (ENST), Высшая национальная школа телекоммуникаций Бретани (Франция)) в 1993 году в статье «Кодирование и декодирование с исправлением ошибок вблизи предела Шеннона: турбо-коды» (англ. «Near Shannon Limit Error-correcting Coding and Decoding: Turbo-code»

Отмечу преимущества и недостатки  турбо-кодов.  Основное их замечательное свойство состоит в том, что среди всех практически используемых современных методов коррекции ошибок турбо-коды наиболее близко подходят к границе Шеннона теоретическому пределу максимальной пропускной способности зашумленного канала (так же достаточно близко к ней подходят и коды с низкой плотностью проверок на чётность, но их в данной теме рассматривать я не буду).  Другие их преимущества состоят в том, что турбо-коды позволяют увеличить скорость передачи информации, не требуя увеличения мощности передатчика, или они могут быть использованы для уменьшения требуемой мощности при передаче с заданной скоростью. Важным преимуществом турбо-кодов является независимость сложности декодирования от длины информационного блока, что позволяет снизить вероятность ошибки декодирования путём увеличения его длины.

Рис.1.Теоритическая взаимосвязь по Шеннону максимальной пропускной способности канала с ОСШ #

Из недостатков основным является относительно высокая сложность декодирования и большая задержка, которые делают их неудобными для некоторых применений. Но, например, для использования в спутниковых каналах этот недостаток не является определяющим, так как длина канала связи сама по себе вносит задержку, вызванную конечностью скорости света.Ещё один важный недостаток турбо-кодов — сравнительно небольшое кодовое расстояние (то есть минимальное расстояние между двумя кодовыми словами в смысле выбранной метрики). Это приводит к тому, что, хотя при большой входной вероятности ошибки (то есть в плохом канале) эффективность турбо-кода высока, при малой входной вероятности ошибки эффективность турбо-кода крайне ограничена. Поэтому в хороших каналах для дальнейшего уменьшения вероятности ошибки применяют не турбо-коды, а LDPC-коды.

Главный принцип турбо-кодирования – использование двух параллельно работающих элементарных кодеров. При этом информационный блок кодируется дважды, причем второй раз — после предварительного случайного перемежения (перемешивания, перетасовывания и т.п.).

При декодировании кодированный блок можно «расщепить» на два кодовых блока. Это обстоятельство позволяет использовать два декодера, каждый из которых производит декодирование своего кодового блока. Декодированная информация с выхода первого (второго) декодера используется в качестве априорной информации для второго (первого) декодера с целью уточнения результата декодирования. Подобную операцию можно производить многократно. В этом состоит принцип турбо- или итеративного декодирования. 

Турбокоды используют «мягкий вход»-«мягкий выход». Это означает что, чем информационнее последовательность для второго кодирующего устройства, тем более некоррелированный информационный обмен между декодерами. Это позволяет осуществить непрерывное усовершенствование способности кода к исправлению ошибок, процесс декодирования повторяется, чтобы передать больше информации от выхода одного декодера к входу следующего.

Кодер

Рис.2. Кодер #

Один из вариантов построения кодера приведен на рис.2, и, как видно, он представляет собой параллельное соединение двух рекурсивных систематических сверточных кодеров (Recursive Systematic Convolutional Codes — RSC). Оба кодера работают со скоростью равной 1/2. Это означает, что на информационный бит на входе RSC кодер откликается двумя битами на выходе. Значение бита на систематическом выходе верхнего кодера совпадает со значением входного бита, а на втором выходе формируется проверочный бит. На вход второго кодера с выхода перемежителя поступает бит, номер которого j зависит от номера i на входе перемежителя по псевдослучайному закону (i,j=1,..k). (Для этого блок из k информационных символов предварительно перед операцией кодирования должен быть записан в память.) У нижнего кодера систематический выход не используется, а на втором выходе формируется второй проверочный бит. С выхода всего турбо-кодера на модулятор сначала поступает бит с систематического выхода верхнего кодера, а затем два проверочных бита: сначала с верхнего кодера, затем – с нижнего. В результате кодовая скорость r всего турбо-кодера в целом оказывается равной 1/3. В любом случае благодаря использованию систематических сверточных кодеров в кодовом блоке можно явно выделить систематическую и проверочные части. Более того, можно считать, что в канал связи передаются два кодовых блока: первый кодовый блок, состоящий из информационной части и проверочной части верхнего кодера, и второй кодовый блок, состоящий из перемешанной информационной части и проверочной части нижнего кодера. Структура перемежителя сравнительно слабо влияет на его эффективность.

Декодер

Рис. 3. Турбо-декодер. Три итерации (Q=3) #

Рис. 4. Турбо-декодер. Одна итерация #

Из рассмотрения принципа кодирования ясно, что при декодировании блок можно «расщепить» на два кодовых блока, причем информационные части этих двух блоков в силу систематического кодирования и с учетом перемежения идентичны. Значит можно использовать два декодера, каждый из которых производит декодирование своего кодового блока. Информационные части каждого из двух кодовых блоков идентичны, декодированную информацию первого (второго) декодера c учетом перемежения можно использовать в качестве априорной информации для второго (первого) декодера с целью уточнения результата декодирования, тем самым как бы замыкая обратную связь между декодерами двух кодовых блоков. Подобную операцию можно производить многократно. В этом и состоит принцип турбо- или итеративного декодирования. Оптимальный декодер должен быть построен на основе критерия минимума вероятности ошибочного декодирования. Однако построение такого декодера из-за наличия перемежителя встречает трудности. Идея итеративного под-оптимального декодирования оказалась исключительно эффективна.

Вариант построения итеративного декодера представлен на рис. 3 и 4. Декодер для каждой итерации (рис. 4) представляет собой каскадное соединение двух элементарных декодеров: первого и второго. Каждый из этих декодеров выносит решение о переданном символе на основе критерия максимальной апостериорной вероятности (Maximum A Posteriori — MAP), чем обеспечивается минимум вероятности ошибочного декодирования каждым элементарным декодером. На первой итерации от демодулятора на вход первого декодера поступают оценки («мягкие» решения) символов от демодулятора систематической и первой проверочной частей первого кодового блока. На выходе первого декодера формируется оценка («мягкое» решение) информационного символа, которая затем используется в качестве априорной информации о нем для второго декодера. Этот декодер производит оценку символа с выхода перемежителя на основе проверочной части второго кодового слова. На второй и последующих итерациях (рис. 3) декодирования эта оценка обновляется и используется как априорная информация о переданном символе для первого декодера. Таким образом, на вход каждого из двух элементарных декодеров поступают «мягкие» решения, результат декодирования на выходе элементарного декодера – также «мягкое» решение. По этой причине такие схемы получили название декодеров с мягким входом и мягким выходом (Soft Input Soft Output — SISO)4. Окончательное принятие решения о переданном информационном символе выносится нижним декодером. Окончание процесса декодирования происходит либо после выполнения заданного количества Q итерационных циклов, либо после того, как величина поправки результата декодирования достигнет установленного порога.

Вычислительная сложность турбо-декодера в расчете на один информационный бит не зависит от длины информационного блока и сравнима со сложностью декодера Витерби для сверточного кода.

Перемежение в турбо-кодах

 В перемежителях по псевдослучайному закону происходит перемешивание поступающих бит. В турбо-кодах используется перемежение отдельных битов, которое подобно случайным перестановкам. Причём впоследствии, при операциях декодирования этот закон перемежения будет считаться известным. Полученные последовательности поступают на входы кодеров.

Задача перемежителя — преобразовать входную последовательность так, чтобы комбинации бит X0, соответствующие кодовым словам с низким весом (весом называется число ненулевых бит кодового слова) на выходе первого кодера, были преобразованы в комбинации, дающие кодовые слова с высоким весом на выходах остальных кодеров. Таким образом кодеры получают на выходе кодовые слова с различными весами. При кодировании формируются кодовые слова так, чтобы получалось максимально возможное среднее расстояние между ними (расстоянием между двумя кодовыми словами называется число бит, в которых они различаются). Из-за того что кодовые блоки формируются из почти независимых частей, на выходе турбо-кодера среднее расстояние между кодовыми словами больше, чем минимальное расстояние для каждого компонентного кодера, а следовательно растёт эффективность кодирования.

Перестановка для каждой указанной длины блока k задается определенным переупорядочиванием целых чисел 1,2…,k как предусмотрено следующим алгоритмом (ECSS-E-ST-50-01C). k = 8 * k0, где k0 = одному из следующих значений : 223, 223 * 2, 223 * 4, 223 * 5, в зависимости от необходимой глубины перемежителя

Применение

Компаниями France Telecom и Telediffusion de France запатентован широкий класс ТК. Более того, ТК утверждены для помехоустойчивого кодирования несколькими cтандартами космической связи, а также мобильной связи третьего поколения.

Схема кодирования с кодерами на 16 состояний (K=5), максимальной длиной перемежения 16384 и кодовыми скоростями r=1/2,1/3,1/4,1/6 утверждена в 1999 г. американским комитетом CCSDS (Consultative Committee for Space Data Systems) в стандарте передачи телеметрической информации с космических аппаратов. В феврале 2000 г. консорциум DVB утвердил ТК в стандарте DVB-RCS для передачи информации по обратному спутниковому каналу (Return Channel for Satellite — RCS), т.е. в направлении от спутника к абоненту. ТК формируются на основе циклического рекурсивного систематического сверточного кодера (Circular Recursive Systematic Convolutional — CRSC). Использование стандарта совместно с вещательным стандартом DVB-S позволяет проектировать полноценную широкополосную систему спутникового интерактивного цифрового телевидения. Компанией TurboConcept в партнерстве с европейским спутниковым оператором Eutelsat разработан турбо-декодер TC1000 в соответствии со стандартом DVB-RCS. Использование ТК принято также в новом стандарте спутниковой системы связи Inmarsat.

В нарождающихся универсальных мобильных системах (IMT-2000) третьего поколения (3G), предназначенных для передачи и приема мультимедийной информации, ТК также получили широкое применение. В стандарте cdma2000 для высокоскоростного режима передачи информации (больше 14.4 кбит/с) как к абоненту (forward link), так и от абонента (reverse link) используется ТК с 8-ю состояниями (K=4) и кодовыми скоростями r=1/2,1/3,1/4 [15]. В стандарте UMTS для высокоскоростного режима передачи информации (больше 32 кбит/с) и приема с высоким качеством (BER около 10-6) используется ТК с 8-ю состояниями (K=4) и двумя кодовыми скоростями r=1/2 и 1/3 (рис. 5).

Рис. 5. Турбо-кодер, используемый в стандарте UMTS для мобильных систем третьего поколения #

Список источников.

  1. http://www.ebiblioteka.lt/resursai/Uzsienio%20leidiniai/Voronezh/mat/2004-02/mat0402_02.pdf
  2. http://www.telemultimedia.ru/art.php?id=77
  3. http://www.wireless-e.ru/articles/technologies/2006_1_63.php
  4. http://ru.wikipedia.org/wiki/%D0%A2%D1%83%D1%80%D0%B1%D0%BE-%D0%BA%D0%BE%D0%B4
  5. http://jre.cplire.ru/iso/oct09/1/text.html

Эта статья является первой моей работой на данную тему. Надеюсь, сведения, представленные в ней помогут вам понять, что же такое турбо-коды и для чего они используются

З.Ы. С удовольствием учту пожелания по поводу статьи, вдруг кто-то захочет получить какую-то более конкретную информацию

Понравилась статья? Поделить с друзьями:
  • Ne is inaccessible since the communication is abnormal error code 98321
  • Ndis sys синий экран windows 7 как исправить
  • Ndis sys latencymon как исправить
  • Ndis 10400 как исправить
  • Nd3d11server unable to find any valid adapter on the system как исправить