Forney's Coset Code Framework
Putting Code and Lattice Together
Here is Forney's framework. Fix a lattice partition of index — so there are cosets, which we can label by bits. A coset code is the result of plugging a binary code of rate into these label bits and using the output bits to pick a coset; the transmitter then sends any point in the chosen coset (typically the one closest to some shaping boundary). The minimum distance of the resulting constellation is
where is the minimum distance of the sublattice and is the intra-coset distance at the first partition step. This is the same bounding argument as in TCM (Ch. 2): the coded distance is the minimum of two competing error events — the binary code failing (inter-coset error), and a lattice error within the correctly chosen coset (intra-coset error).
Notice what the framework achieves. Coding gain now appears in a single clean formula. Rate (the index and the code rate ) and distance (the lattice distances and ) are cleanly separated. And — crucially — because we work with lattices rather than finite constellations, we have unlimited flexibility to enlarge the constellation without changing the coding design. The shaping operation that will come next can pick out any bounded region we like.
Definition: Forney Coset Code
Forney Coset Code
Let be a lattice partition of index and let be a binary code of length and dimension . A Forney coset code is the set of sequences of lattice points in such that, writing each in the form with a fixed coset-representative and , the concatenated coset-label string (with labelling the coset of ) belongs to .
Informally: use a binary code to select cosets; once the cosets are chosen, the encoder is free to pick any point in each coset.
The definition looks abstract but is mechanical to implement: partition each signalling interval into levels via the partition chain, run a binary code on the label bits, and decode level-by-level (multistage) or jointly. When is a trellis code, we recover Ungerboeck TCM. When is an LDPC code and multiple levels are coded, we recover multilevel coding.
Theorem: Minimum Distance of a Coset Code
Let be a coset code with partition of index (binary partition) and binary code of minimum Hamming distance . Its minimum squared Euclidean distance is
where is the minimum squared distance of , and is the minimum squared distance between two cosets of in .
Two distinct codewords differ in at least one coset label or zero coset labels. If zero — the same coset sequence — they are both sequences of points in the same shifts, so they differ by a distance at least . If they differ in or more coset labels, the contribution from those positions is at least .
Partition error events by how many coset labels differ.
Zero-label-difference events live in at each position.
Nonzero-label-difference events contribute at least per differing position.
Two cases
Consider two distinct codewords and . Let be the set of positions where their coset labels differ. Then .
Case $|S| = 0$
Both codewords use the same coset sequence, so for all and the codewords differ at least at one (they are distinct). The squared Euclidean distance contribution at that is at least .
Case $|S| \ge d_H$
At every the points and lie in different cosets of , so . The total squared distance is at least .
Conclude
The codeword-wise minimum is the smaller of the two cases, which is the stated expression.
Definition: Fundamental Coding Gain
Fundamental Coding Gain
The fundamental coding gain of a coset code with respect to a baseline uncoded lattice (typically or the rate-matched uncoded reference) is the ratio of the normalised minimum squared distance to the baseline's, expressed in dB:
The normalisation by the -th power of the volume cancels the effect of trivial rescaling — we compare constellations at the same point density. The fundamental coding gain measures the lattice-level contribution to the gap to capacity; it ignores error multiplicity (kissing number) and pre-factor effects.
The lattice has a fundamental coding gain of dB over ; the Leech lattice has dB over . These are purely geometric numbers, achievable without any time-sequencing code — the lattice alone does the work. Adding a convolutional or LDPC code on top of the lattice partitions can push further.
Example: The Coset Code
Use the partition of index with the single-parity-check code as the binary code . Write out the resulting coset code and compute its fundamental coding gain over the uncoded baseline.
Partition parameters
has minimum squared distance (e.g., ) and fundamental volume . The partition has index ; the intra-coset distance is (just the nearest-neighbour spacing of ).
Binary code
The single-parity-check code has minimum Hamming distance . Plugging it into the coset-code distance formula: So the coded constellation has the same as the sublattice itself — the code and the lattice are balanced.
Fundamental coding gain
The coded lattice has fundamental volume equal to per two bits of label rate information (because we are sending one of two cosets with three bits of information per four dimensions, instead of four bits). Per unit volume, the squared minimum distance is , vs for the uncoded baseline. Hence , i.e.\ about dB.
Rate and complexity
The rate is information bits per dimensions ( bits/dim), and the decoder is trivial: pick the coset whose parity matches the received bit pattern, then snap to the closest point within it. Three decibels for essentially no complexity — a classic low-cost construction.
TCM Is a Coset Code
Here is the single most important unification in this chapter. Ungerboeck's TCM from Ch. 2 is nothing more than a coset code over a specific partition chain of . The Ungerboeck 8-PSK chain (where is the "rotation-scaling" operator) provides the cosets; the TCM trellis code is the binary code on the partition label bits. Calderbank and Sloane (1987) made this observation precise and went on to construct many new TCM schemes by swapping for better binary codes.
This is not a coincidence of notation — it is a claim about the structure of coded modulation. Every practical coded-modulation scheme with a finite state space is a lattice coset code for some partition chain and some binary code. Multilevel coding (Ch. 3) is the same framework with one binary code per level. BICM (Ch. 5) is the same framework with an independent "bit-channel" view of each level. The coset-code framework is the common parent.
Coset Code BER: Coding Gain + Shaping Gain
High-SNR approximation of the BER of a coset-coded constellation on an AWGN channel, plotted against an uncoded QAM reference. The coding gain shifts the curve left; the shaping gain shifts it left by a further amount. The reader can sweep up to dB (an -class code) and up to dB (the ultimate sphere limit) to see how the total gain decomposes.
Parameters
V.34 Modem: 4D Coset Code with Shaping
The V.34 voice-band modem standard (ITU-T Rec. V.34, 1998 — the last analogue dial-up standard before DSL) used a -dimensional coset code based on the partition (four-level binary chain) with a - or -state convolutional code on the top two levels. The fundamental coding gain of the code was about dB, and it combined with a -dimensional shell-mapping shaper (Section 5) providing about dB of shaping gain — a total of dB over uncoded QAM, which pushed the achievable rate from kb/s (uncoded limit) to kb/s on a -kHz voice-band channel.
- •
Complexity limit: 4D lattice decoding in real time on 1990s-era DSPs
- •
Shaping overhead: extra bit per 4D symbol for shell mapping
- •
Robustness: the coset code must tolerate non-ideal line conditions (echo, phase jitter)
Common Mistake: Fundamental Coding Gain Ignores Kissing Number
Mistake:
Quoting a large fundamental coding gain without mentioning the kissing number, and claiming this is the full dB advantage at the target error rate.
Correction:
The union-bound pre-factor subtracts roughly dB of effective gain at finite error rates. For the kissing number is , contributing about – dB of effective loss at BER , so the true usable gain is closer to dB than the nominal dB. Always report both and together.
Coset code
A constellation obtained by selecting cosets of a sublattice via a binary code on the partition labels. Due to Forney (1988).
Related: Lattice in , TCM Is a Coset Code, Partition Chain of a Constellation
Coding gain
The dB advantage in normalised minimum squared distance of a coded constellation over an uncoded reference at the same rate. Decomposes into a fundamental (lattice-only) part and a pre-factor (kissing-number) part.
Related: Fundamental Coding Gain, Kissing Number
Quick Check
A coset code uses the partition (index ) and a binary code of minimum Hamming distance . What is the coset code's minimum squared Euclidean distance?
squared equals
Cannot be determined without more information
We have and (coset representatives differ by one integer step). The coset-code distance is . The code and lattice are balanced.
Key Takeaway
Forney's coset-code framework is the common parent of TCM, MLC, and BICM. Fix a partition and a binary code . The coded constellation has minimum squared distance , balancing the sublattice and code contributions. The fundamental coding gain is a purely geometric number determined by the lattice; the binary code then shifts the balance. Once we have the coding side under control, the remaining gap to capacity is the shaping problem of the next section.