/ˈtɜːrboʊ koʊdz/
noun … “Iterative error-correcting codes approaching channel capacity.”
Turbo Codes are a class of high-performance Forward Error Correction codes that approach the Shannon Limit for noisy communication channels. They use parallel concatenation of simple convolutional codes with interleaving and iterative decoding to achieve excellent error correction. Introduced in the 1990s, Turbo Codes revolutionized digital communications by enabling reliable data transmission at rates previously considered impossible.
Key characteristics of Turbo Codes include:
- Parallel concatenation: combines two or more simple convolutional codes to create a powerful composite code.
- Interleaving: permutes input bits to spread errors, enhancing decoder performance.
- Iterative decoding: uses repeated probabilistic message passing between decoders to converge on the most likely transmitted sequence.
- Near-capacity performance: allows operation close to the theoretical channel limit defined by the Shannon Limit.
- Applications: widely used in 3G/4G/5G cellular networks, deep-space communications, and satellite systems.
Workflow example: In a satellite communication system, a data stream is encoded with Turbo Codes before transmission. At the receiver, iterative decoding processes the received symbols multiple times, exchanging soft information between decoders to correct errors introduced by noise, interference, or fading.
-- Simplified pseudocode for Turbo encoding
dataBits = [1,0,1,1,0,1]
interleavedBits = interleave(dataBits)
encoded1 = convolutionalEncode(dataBits)
encoded2 = convolutionalEncode(interleavedBits)
codeword = concatenate(encoded1, encoded2)
transmit(codeword)Conceptually, Turbo Codes are like two proofreaders reviewing a document in parallel, each with a slightly different perspective. By iteratively comparing notes and exchanging insights, they catch almost every error, producing a near-perfect final copy despite a noisy environment.
See FEC, LDPC, Shannon Limit, Information Theory.