Digital Communications

Concatenation

/kon-kat-uh-NAY-shun/
Cascading two error-correcting codes in series is the core idea behind concatenation: an outer block code, classically Reed-Solomon, wraps around an inner code (usually a Viterbi-decoded convolutional code), with an interleaver between them. The inner code knocks down random bit errors at low signal-to-noise ratio, and because Viterbi failures emerge as short bursts, the symbol-oriented outer code cleans up the residue. The result is a form of forward error correction that reaches output bit error rates near 1×10-10 at modest Eb/N0. The CCSDS deep-space standard, RS(255,223) over a rate-1/2 constraint-length-7 convolutional code, powered the Voyager, Galileo, and Cassini downlinks and the first generation of DVB-S broadcast.
Category: Digital Communications
Typical Coding Gain: 7 to 9 dB
CCSDS Code Rate: ≈ 0.437

How Serial Code Cascading Defeats Burst Errors

The concatenated-code construction was introduced by G. David Forney in his 1966 doctoral thesis as a way to build very long, powerful codes that remain practical to decode. Rather than designing a single enormous code with an intractable decoder, concatenation splits the work between two simpler codes operating on different alphabets. The inner code works on individual bits or short symbols and is decoded with a maximum-likelihood Viterbi algorithm; the outer code works on larger symbols (bytes) over a Galois field and is decoded algebraically. Because each stage is independently decodable, the combined system inherits a minimum distance close to the product of the two component distances while keeping decoder complexity additive rather than multiplicative.

The division of labor is what makes the pairing so effective. A rate-1/2, constraint-length-7 convolutional code decoded by a soft-decision Viterbi processor gives roughly 5 dB of gain on its own, but its output errors are correlated: when the trellis search chooses the wrong survivor path it produces a run of several to a few dozen wrong bytes. A Reed-Solomon outer code is indifferent to how many bits inside a symbol are corrupted, so it treats each Viterbi burst as a handful of symbol errors. RS(255,223) corrects up to t = 16 symbol errors per 255-byte codeword, which is more than enough to absorb the residual bursts once the interleaver has spread them out.

Modern systems often replace the classic pairing with iterative schemes. Turbo codes use parallel concatenation of two recursive convolutional codes joined by an interleaver and decoded iteratively, and LDPC codes approach the Shannon limit with belief-propagation decoding. DVB-S2 retains the concatenated philosophy by pairing an outer BCH code with an inner LDPC code. The serial Reed-Solomon plus convolutional arrangement nevertheless remains in service wherever a proven, low-complexity, standards-frozen link is preferred over the last fraction of a decibel.

Code Rate and Coding Gain

Overall code rate (serial concatenation):
Rcc = Router × Rinner = (k/n)out × (k/n)in

CCSDS example:
Rcc = (223 / 255) × (1 / 2) ≈ 0.874 × 0.5 ≈ 0.437

Reed-Solomon correction capacity:
t = (n − k) / 2 = (255 − 223) / 2 = 16 symbols per codeword

Asymptotic coding gain:
G ≈ 10·log10(Rcc × dmin / 2)  dB

Where R = code rate, n = block length, k = information length, dmin = minimum Hamming distance. The interleaver of depth I divides any Viterbi burst length L into ceil(L / I) errors per RS codeword.

Concatenated Coding Standards

SystemOuter CodeInner CodeInterleaverOverall RateBER Target
CCSDS deep spaceRS(255,223)Conv. rate-1/2, K=7Byte, depth 2 to 8≈ 0.4371×10-10
DVB-S (1994)RS(204,188)Conv. rate-1/2 to 7/8Convolutional, I=120.41 to 0.811×10-11 (QEF)
DVB-S2BCH (t = 8 to 12)LDPC, rate 1/4 to 9/10Bit, block0.25 to 0.901×10-7
Turbo (3GPP)(parallel concat.)2 × RSC, K=4Internal, QPP1/3 base1×10-6
GSM GMSKBlock (Fire/CRC)Conv. rate-1/2, K=5Block, diagonal≈ 0.451×10-3
Common Questions

Frequently Asked Questions

Why does a concatenated code place Reed-Solomon outside and convolutional inside?

The inner Viterbi-decoded convolutional code excels at random bit errors but fails in short bursts. Reed-Solomon works on m-bit symbols (usually bytes) and counts one corrupted symbol regardless of how many of its bits are wrong, so placing it outside lets it absorb the bursty residue. The CCSDS standard pairs outer RS(255,223) over GF(256) with an inner rate-1/2, K=7 convolutional code and a depth-2-to-8 byte interleaver between them.

How much coding gain does a concatenated Reed-Solomon plus convolutional code provide?

The CCSDS scheme delivers roughly 7 to 9 dB of gain at an output BER of 1×10-5, hitting that target near Eb/N0 of about 2.5 dB. The inner code alone contributes about 5 dB; the outer RS code adds 2 to 3 dB by clearing residual bursts. Combined rate is 0.5 × 0.874 ≈ 0.437, so bandwidth expansion is about 2.3×.

Why is an interleaver required between the inner and outer codes?

A Viterbi decoder emits runs of consecutive byte errors. RS(255,223) corrects only t = 16 symbols per codeword, so an entire burst landing in one codeword could be uncorrectable. A symbol interleaver of depth I spreads consecutive Viterbi bytes across I different RS codewords, dividing each burst by I. CCSDS uses depth 2 to 8; depth 5 keeps bursts up to about 80 bytes survivable.

Link Budget Engineering

Build a Cleaner Downlink

Concatenated coding only pays off when the front end preserves every decibel. RF Essentials supplies low-noise millimeter-wave amplifiers and frequency converters that protect your Eb/N0 margin all the way to the demodulator.

Get in Touch