The Multilevel Coding Framework
A Different Way to Marry Code and Modulation
Ungerboeck's TCM builds a single trellis code that walks through a partitioned constellation and uses the expanded Euclidean distance of the partition to pay for the rate expansion. That is one answer to the coded-modulation question. Here is a different one, proposed a full five years earlier by Imai and Hirasawa: instead of one code over the whole constellation, use one binary code per level of the partition tree and combine them by the partition labelling.
The appeal of this idea is modularity. Each level sees a binary channel whose noise level depends on the intra-subset Euclidean distance at that level. Since those distances grow very rapidly as we descend the partition chain (by factors of in squared distance per level for the Ungerboeck chains), the levels are very asymmetric: level 0 is a noisy BPSK-like channel, while the bottom level is essentially noise-free. A code of low rate on the noisy level and a code of nearly full rate on the clean level matches the effort exactly where it is needed.
The construction is called multilevel coding (MLC). Its natural receiver is multistage decoding (MSD), which we treat in the next section but one. The two combine into a framework that we will see is, from an information-theoretic point of view, as good as the constellation itself — no coded-modulation scheme can do better.
Definition: Partition Chain of a Constellation
Partition Chain of a Constellation
A partition chain of a constellation with is a sequence of refinements
where each is obtained from by partitioning each coset of into two cosets of . Equivalently, each refinement halves the number of points per coset while (typically) doubling the squared intra-subset distance. Write for the coset of labelled by the history .
For Ungerboeck's 8-PSK chain the intra-subset squared distances are , , and , giving a geometric factor of roughly between consecutive levels. That is the asymmetry MLC exploits.
Definition: Multilevel Code (MLC) Encoder
Multilevel Code (MLC) Encoder
Fix a partition chain of of length . A multilevel code is specified by binary component codes (one per level) of rates and a labelling map that sends the binary label to the unique constellation point in .
Encoding rule. At each of time steps, information bits enter level at rate , are encoded by into a binary sequence , and the bit streams are then combined column-by-column by :
The aggregate rate is bits per channel use.
The only coupling between levels is through . Inside a level, the code is ordinary binary coding — convolutional, LDPC, polar, whatever is available. This is what makes MLC modular.
MLC Encoder Block Diagram
Binary Sub-Channel Capacities at Each Level
Each level of the partition chain defines a binary sub-channel. Its capacity depends on the intra-subset minimum distance at that level and on the operating SNR. The plot shows for at a chosen SNR, for three standard constellations. Notice how much higher the deeper-level capacities are: the bottom level is typically near bit while the top level is often well below.
Parameters
Definition: Partition-Based (Ungerboeck) Labelling
Partition-Based (Ungerboeck) Labelling
A labelling is partition-based (or Ungerboeck) if for every prefix , the preimage
— that is, the first label bits exactly index the level- coset. This is the labelling obtained by walking the set-partitioning tree from root to leaf and reading off the binary branch chosen at each node. It is not Gray labelling: adjacent label vectors may be at the minimum distance from each other, not maximally separated.
Partition-based labelling is the natural choice for MLC because it makes the first decoded bits pick out the level- coset, which is exactly what a genie-aided decoder of level needs. Gray labelling, by contrast, is the natural choice for BICM — we will revisit this in s04.
Theorem: Coset Decoding from the First Bits
Under partition-based labelling, knowledge of the bits uniquely determines the level- coset , and the remaining label bits index the points inside that coset. Consequently, after the first levels have been decoded correctly, the problem at level is a binary detection problem over a signal set with intra-set minimum distance (the level- partition distance).
The partition tree is a binary tree of depth ; the first decoded bits tell us which sub-tree of depth the transmitted point lies in. Inside that sub-tree, the nearest-neighbour spacing is the level- distance , which is strictly larger than .
The partition chain is a nested sequence of cosets. Map the first label bits to the coset at depth .
Count the remaining points: each node at depth has descendants at the leaves.
The minimum distance within a depth- coset is , by construction of the partition chain.
Coset identification
By the defining property of partition-based labelling (def-partition-labelling), the preimage under of the coset is exactly . So knowing the first label bits identifies the coset uniquely. There are points inside it, indexed by the remaining bits.
Binary sub-problem at level $i$
Among the points, the further partition at level splits them into two equal halves. The label bit picks one half. The two halves are at intra-subset distance from one another by definition of the level- partition distance. So the level- decision is a binary decision with minimum distance , corrupted by the same AWGN that corrupts the original channel.
Example: Partition-Based Labelling for 8-PSK
Consider 8-PSK with points , . Construct the Ungerboeck partition chain and write out the partition-based label for each point. Compute the intra-subset squared distance at each level.
Top level: all 8 points
. Minimum squared distance is at unit .
Level 1 partition: QPSK sub-constellations
Split by even-odd index: (a QPSK rotated by ) and (a QPSK rotated by ). Intra-subset squared distance is .
Level 2 partition: BPSK sub-constellations
Inside split by diagonal: and . Each is an antipodal pair with squared distance . Similarly for .
Level 3: individual points
At level each coset is a singleton. The third label bit picks one of the two antipodal points inside a level-2 coset.
Label table
Reading the partition tree root-to-leaf gives labels , , , , , , , . Note that the labels on the right half of the tree () correspond to the odd-indexed points — a labelling very different from Gray.
TCM and MLC — Two Answers to the Same Question
It is worth pausing to compare TCM (Chapter 2) and MLC (this chapter) side by side. Both schemes use the same partition chain and the same signal set. The difference is the code:
- TCM uses a single convolutional (or trellis) code over the levels that need protection (typically the lowest levels), and the remaining levels are uncoded. The code lives in the super-alphabet of subsets, not on any individual binary channel.
- MLC uses separate binary codes, one per level. Each code operates over its own binary channel at its own rate.
Both schemes realise the coding-gain criterion by trading rate at lower levels for distance. The difference in the receiver is equally sharp: TCM uses a single Viterbi decoder over the joint trellis; MLC uses separate decoders, one per level, in sequence. This is multistage decoding, to which we turn in s03.
Common Mistake: The levels are independent at the encoder, not at the decoder
Mistake:
Asserting that MLC is " independent binary codes running in parallel" and therefore that its performance is determined by the worst binary code.
Correction:
The encoders are indeed independent — each level sees a separate binary code. But the decoders are not independent: multistage decoding (which achieves the capacity rule) decodes the levels sequentially, and each stage conditions on the previously decoded bits. If the decoding were done independently level by level, the receiver would see the unconditional mutual information at each level, which is exactly the BICM capacity — strictly less than the CM capacity in general. The conditioning is precisely what closes the CM vs BICM gap.
Multilevel coding (MLC)
A coded-modulation construction in which binary codes, one per level of a partition chain of the constellation, are concatenated with a partition-based labelling map. Due to Imai and Hirasawa (1977).
Related: Partition Chain of a Constellation, MSD Achieves the CM Capacity, The Capacity Rule for MLC
Partition chain
A nested sequence of refinements of a constellation in which each step halves the number of points per coset while increasing the intra-subset minimum distance. The Ungerboeck chain is the canonical example.
Related: Multilevel Code (MLC) Encoder, Set Partitioning, TCM and MLC — Two Answers to the Same Question
Quick Check
For the Ungerboeck partition chain of 8-PSK at unit , what is the ratio between the level-2 and level-0 intra-subset squared distances?
about 2
about 3.4
about 6.8
exactly 4
We have and . Their ratio is , i.e.\ about dB. This large asymmetry is what drives the rate-allocation story: level 2 is essentially antipodal BPSK, while level 0 is severely noise-limited.
Key Takeaway
MLC is a modular coded-modulation construction. Each of the levels of a partition chain gets its own binary code. The encoder combines the code streams column-by-column via a partition-based labelling map, producing a stream of constellation symbols. The construction is flexible — any binary codes can be plugged in — and makes the asymmetry of the binary sub-channels (noisy at the top, near-noise-free at the bottom) available for exploitation by the rate-allocation rule of the next section.