Skip to content

Convolutional code

A convolutional code maps a stream of input symbols to redundant output symbols through a finite-memory convolutional encoder, so each output depends on the current input and a bounded history and can be decoded from trellis structure.

Version
v1 · 2026-09-28 · History
Domain-specific #
8710
Domain group
Formal Sciences
Origin domain
Information Theory
Subdomain
Coding Theory → Information Theory

Core Idea

A convolutional code is an error-correcting code in which a finite-state encoder continuously maps input symbols to redundant output symbols using the current input and a bounded memory of previous inputs. Generator polynomials specify the modulo-two combinations produced at each step. A rate k/n encoder consumes k input bits and emits n coded bits per step; its constraint length or memory determines how many preceding inputs influence the output and how many encoder states the decoder must distinguish. Because the same transition rule repeats over time, possible state sequences form a time-invariant trellis.

How would you explain it like I'm…

Mixed-In Message Helper

When you send a message over a crackly walkie-talkie, some bits get lost. A convolutional code spreads each piece of your message across several sounds you send, mixing it with the pieces just before it. Then, even if a few sounds get garbled, the listener can figure out what you meant by looking at the whole pattern.

Memory-Mixing Error Fixer

When computers send information, noise can flip some bits (the 0s and 1s). A convolutional code protects the message by adding extra bits. The sender's encoder remembers the last few input bits, and at each step it mixes the new bit with those remembered bits to produce a few output bits. That way, each input bit affects several outputs spread across time. The receiver looks at the whole stream of bits and figures out the most likely original message, fixing mistakes along the way. Remembering more makes the code stronger but makes decoding slower and harder.

Sliding-Memory Error-Correcting Code

A convolutional code is an error-correcting code in which the encoder has a small memory: at each step, it combines the current input bits with a fixed number of previous input bits to produce extra, redundant output bits. The combinations are set by 'generator polynomials', which list which bits get added together modulo two. A rate k/n encoder takes in k bits and puts out n bits per step. Because the encoder behaves like a machine with a limited number of states, all possible state sequences can be drawn as a trellis, a grid of states over time. The receiver decodes by finding the most likely path through the trellis; the Viterbi algorithm does this efficiently. Unlike a block code, which encodes chunks separately with no memory, a convolutional code spreads each input bit across several outputs over time. It is not the same as numerical convolution or encryption. More memory improves error correction but makes decoding more complex and slower.

 

A convolutional code is an error-correcting code produced by a finite-state encoder that continuously maps input symbols to redundant output symbols using the current input and a bounded memory of previous inputs. Generator polynomials specify the modulo-two combinations formed at each step; a rate k/n encoder consumes k bits and emits n per step, and the constraint length (memory) determines how many past inputs influence each output and how many states the decoder must track. Because the transition rule is time-invariant, state sequences form a trellis, and decoding means finding likely trellis paths. The Viterbi algorithm gives maximum-likelihood sequence decoding with cost exponential in memory but linear in message length, while BCJR computes symbol-wise posterior probabilities; soft-decision inputs, which keep reliability information, generally outperform hard decisions. Finite messages are terminated with tail bits, tail-biting, or a known-state convention, and puncturing deletes selected coded symbols to reach higher rates from a lower-rate mother code. Recursive systematic convolutional encoders are the components of turbo codes. More memory can improve distance properties at the cost of trellis complexity and decoding delay, and catastrophic generators, where an infinite-weight input can yield a finite-weight output, must be avoided. It is not numerical convolution, encryption, or a memoryless block code.

Scope of Application

  • Communication links. Generator polynomials and trellis decoding protect noisy radio, modem, and wired channels.

  • Spacecraft telemetry. Long streams use well-characterized codes, puncturing, interleaving, and soft decisions.

  • Broadcasting. Rate-compatible families trade redundancy against throughput under standardized channel assumptions.

  • Storage systems. Sequence decoding exploits state continuity across locally corrupted symbols.

  • Punctured-code design. A lower-rate mother code yields higher rates by deleting a declared output pattern.

Clarity

Convolutional code names a finite-state error-correcting scheme whose repeated generator rule maps each input block and bounded memory of prior inputs to redundant outputs. Rate, generator polynomials, constraint length, termination, puncturing, and channel model define the actual code. The term distinguishes streaming state dependence from block codes that map independent fixed messages.

Manages Complexity

A convolutional code compresses a streaming redundancy rule into rate, generator polynomials, encoder memory, state, and termination. All possible messages become paths through a repeated trellis rather than separate codebooks. The decoder tracks path metrics and survivor states; free distance summarizes protection, while constraint length predicts complexity. Punctured, recursive, systematic, tail-biting, and terminated branches alter rate and boundary behavior.

Abstract Reasoning

State move. Feed message symbols and encoder memory through generator polynomials to produce a redundant output stream. Trellis move. Represent encoder states and transitions so decoding becomes a path problem rather than independent symbol correction. Likelihood move. Use received evidence to select the most likely path with Viterbi, BCJR, or sequential methods under the channel model. Distance move. Relate free distance and constraint length to error performance and computational cost. Termination move. Account for tail bits, puncturing, and rate changes. Boundary move.

Knowledge Transfer

Within the home domain. Convolutional codes transfer across radio, satellite, deep-space, mobile, and storage communications when a finite-state encoder produces redundant output from current and prior input symbols and a trellis decoder estimates the path. Generator polynomials, constraint length, rate, distance, puncturing, and termination retain exact roles. Beyond the home domain (C — coding method). They apply literally to any channel system implementing the code, not to generic convolution in signal processing. Their boundary is conditional: redundancy does not ensure correction beyond distance and decoder assumptions, and correlated noise, synchronization, or poor termination can dominate performance.

Relationships to Other Abstractions

Local relationship map for Convolutional codeParents appear above the current abstraction, mutual partners to the right, and children below. Node labels state whether each abstraction is prime or domain-specific; colors identify relation types.Convolutional codeDOMAINPrime abstraction: Redundancy — presupposesRedundancyPRIME

Current abstraction Convolutional code Domain-specific

Parents (1) — more general patterns this builds on

  • Convolutional code presupposes Redundancy Prime

    Convolutional code structurally presupposes Redundancy rather than being a subtype of it.

Hierarchy paths (12) — routes to 8 parentless roots

Neighborhood in Abstraction Space

Convolutional code sits in a sparse region of the domain-specific corpus (77th percentile for distinctiveness): few abstractions share its structure, so a faithful description tends to retrieve it precisely.

Family — Unclustered & Miscellaneous (2551 abstractions)

Nearest neighbors

Computed from structural-signature embeddings · 2026-10-08