Papers
Topics
Authors
Recent
Search
2000 character limit reached

Polar Subcodes

Updated 9 July 2026
  • Polar subcodes are linear subcodes of polar codes that replace static frozen symbols with dynamic ones to satisfy extra linear constraints and improve minimum distances.
  • They are constructed by embedding a polar code within a stronger parent code, such as extended BCH, to boost finite-length error performance.
  • Decoding methods like SC, directed-search, block sequential, and iterative techniques efficiently incorporate the causal dynamic freezing constraints.

Polar subcodes are polar-transform-based codes in which some frozen symbols are replaced by dynamic frozen symbols, so that the admissible input vectors satisfy additional linear constraints and the resulting code is a proper subcode of a larger polar-style code or of a stronger parent algebraic code such as an extended BCH code. In the classical formulation, a codeword is written as c=uAc=uA, with A=Bl,mFlmA=B_{l,m}F_l^{\otimes m}, and the constrained symbols satisfy equations of the form uji=s=0ji1usVi,su_{j_i}=\sum_{s=0}^{j_i-1}u_sV_{i,s}, which preserves compatibility with successive-cancellation-type decoding because each constrained symbol depends only on previously processed symbols (Trifonov et al., 2015). In the literature, the term also has a second, distinct usage in fast decoding, where “polar subcodes” denotes constituent substructures in the SC tree rather than algebraic subcodes in the dynamic-freezing sense; that terminological split is essential for precise reading of the field (Condo et al., 2018).

1. Definition and algebraic formulation

In ordinary polar coding, frozen symbols are static and satisfy

ui=0,iF.u_i=0,\qquad i\in\mathcal F.

Polar subcodes generalize this by allowing some constrained symbols to be linear functions of earlier symbols. In the binary Arıkan setting, the standard polar transform is

$c_0^{n-1}=u_0^{n-1}A_m,\qquad A_m=B_mF^{\otimes m},\qquad F=\begin{pmatrix}1&0\1&1\end{pmatrix},$

and the dynamic frozen relations are written as

uj=tSjut,jF,u_j=\sum_{t\in S_j}u_t,\qquad j\in\mathcal F,

or, more generally,

uji=s=0ji1usVi,s.u_{j_i}=\sum_{s=0}^{j_i-1}u_sV_{i,s}.

The SC decision rule is therefore modified only at frozen coordinates: instead of inserting zero, the decoder inserts the prescribed linear combination of already processed symbols (Trifonov et al., 2013).

A central algebraic viewpoint is obtained by starting from a linear parent code with parity-check matrix HH. Since the polar transform is invertible and satisfies AA=IAA=I, a vector c=uAc=uA belongs to the parent code if and only if

A=Bl,mFlmA=B_{l,m}F_l^{\otimes m}0

Defining

A=Bl,mFlmA=B_{l,m}F_l^{\otimes m}1

one gets

A=Bl,mFlmA=B_{l,m}F_l^{\otimes m}2

and after row operations each row of A=Bl,mFlmA=B_{l,m}F_l^{\otimes m}3 yields one frozen-symbol equation with a distinct rightmost pivot. This is the basic mechanism by which parity checks of a parent code are pulled back into the polar-input domain and become dynamic freezing constraints (Trifonov et al., 2013).

A complementary formulation uses a precoding matrix. The code can be written as

A=Bl,mFlmA=B_{l,m}F_l^{\otimes m}4

with A=Bl,mFlmA=B_{l,m}F_l^{\otimes m}5, so that A=Bl,mFlmA=B_{l,m}F_l^{\otimes m}6 produces a valid constrained vector A=Bl,mFlmA=B_{l,m}F_l^{\otimes m}7 before the polar transform. This viewpoint makes clear that CRC-aided polar codes and related precoded constructions are special cases of the same general mechanism, although the literature uses different names for different constraint families (Trifonov et al., 2015).

2. Construction from parent codes and distance motivation

The main historical motivation for polar subcodes is finite-length distance improvement. Conventional polar codes designed by density evolution or Gaussian approximation optimize SC reliability, but their minimum distance can be small. For the classical binary case,

A=Bl,mFlmA=B_{l,m}F_l^{\otimes m}8

where A=Bl,mFlmA=B_{l,m}F_l^{\otimes m}9 is the Hamming weight of the binary expansion of uji=s=0ji1usVi,su_{j_i}=\sum_{s=0}^{j_i-1}u_sV_{i,s}0 (Trifonov et al., 2013).

The standard construction therefore embeds the polar code into a stronger parent code, most prominently an extended BCH code. The resulting polar subcode is a subcode of that parent, so its minimum distance is at least that of the chosen parent code, or at minimum is designed to respect that parent-code distance target (Trifonov et al., 2013). A representative example in the literature contrasts a uji=s=0ji1usVi,su_{j_i}=\sum_{s=0}^{j_i-1}u_sV_{i,s}1 polar code optimized for AWGN at uji=s=0ji1usVi,su_{j_i}=\sum_{s=0}^{j_i-1}u_sV_{i,s}2 dB, whose minimum distance is uji=s=0ji1usVi,su_{j_i}=\sum_{s=0}^{j_i-1}u_sV_{i,s}3, with a uji=s=0ji1usVi,su_{j_i}=\sum_{s=0}^{j_i-1}u_sV_{i,s}4 polar subcode obtained from a uji=s=0ji1usVi,su_{j_i}=\sum_{s=0}^{j_i-1}u_sV_{i,s}5 e-BCH parent (Trifonov et al., 2013). In the later “Polar Subcodes” formulation, the same idea is generalized to uji=s=0ji1usVi,su_{j_i}=\sum_{s=0}^{j_i-1}u_sV_{i,s}6 subcodes of a parent uji=s=0ji1usVi,su_{j_i}=\sum_{s=0}^{j_i-1}u_sV_{i,s}7 code, with additional freezing of the worst remaining polarized subchannels (Trifonov et al., 2015).

This distance-oriented interpretation also clarifies the relation to Reed–Muller structure. Reed–Muller codes can be viewed as polar codes with frozen set

uji=s=0ji1usVi,su_{j_i}=\sum_{s=0}^{j_i-1}u_sV_{i,s}8

and BCH-type supercodes naturally induce freezing of low-uji=s=0ji1usVi,su_{j_i}=\sum_{s=0}^{j_i-1}u_sV_{i,s}9 indices, which are often poor SC subchannels (Trifonov et al., 2013). In the Arıkan-kernel setting, this alignment is especially useful because BCH-derived dynamic frozen positions tend to occur at low-weight indices, while larger ui=0,iF.u_i=0,\qquad i\in\mathcal F.0 usually corresponds to much better subchannel reliability (Trifonov et al., 2015).

The same subcoding principle extends beyond the ui=0,iF.u_i=0,\qquad i\in\mathcal F.1 kernel. The literature considers Arıkan, extended BCH, and Reed–Solomon kernels (Trifonov et al., 2015). For non-Arıkan kernels, the construction is unchanged in concept: derive the parent-code constraints in the transform domain, then add extra static freezing according to subchannel reliability. The coding objective remains the same: combine stronger minimum distance with SC-compatible structure (Trifonov et al., 2015).

3. Randomized and decoder-aware constructions

After the original e-BCH-based construction, an important line of work introduced randomized polar subcodes. In that framework, a ui=0,iF.u_i=0,\qquad i\in\mathcal F.2 code is constructed as a random ui=0,iF.u_i=0,\qquad i\in\mathcal F.3-dimensional subspace of a ui=0,iF.u_i=0,\qquad i\in\mathcal F.4 base polar code, motivated by the estimate

ui=0,iF.u_i=0,\qquad i\in\mathcal F.5

for the expected number of weight-ui=0,iF.u_i=0,\qquad i\in\mathcal F.6 codewords in the subcode (Trifonov et al., 2017). The practical construction, however, is not uniform random subspace selection: it uses two classes of dynamic freezing constraints.

Type-A constraints target low-weight codewords by forcing non-frozen symbols with the smallest possible index weights to participate in random dynamic constraints. Type-B constraints are chosen among very reliable frozen positions and are intended to make incorrect list or sequential decoding paths lose score faster (Trifonov et al., 2017). This distinction is one of the defining contributions of the randomized-construction literature: type-A is distance-oriented, while type-B is decoder-oriented.

A later nested construction places a low-rate randomized PSC inside a high-rate polar code in order to serve Wyner–Ziv coding and key agreement from physical identifiers. In that setting, the low-rate code is a PSC and the high-rate code remains a conventional PC, because the reported experiments found PSCs and PCs to have essentially similar VQ performance (Günlü et al., 2020). The nested constraint matrix is explicitly partitioned into inherited static rows, additional static rows, type-B rows, and type-A rows, while preserving the nesting relation required for lossy compression with side information (Günlü et al., 2020).

A further generalization appears in convolutional polar subcodes, where the underlying transform is the convolutional polarizing transformation ui=0,iF.u_i=0,\qquad i\in\mathcal F.7 rather than ui=0,iF.u_i=0,\qquad i\in\mathcal F.8. There the vulnerable positions are identified not by row weights, but by quantities ui=0,iF.u_i=0,\qquad i\in\mathcal F.9 obtained from minimum weights of generalized cosets. The construction then mirrors classical randomized polar subcodes: start from a parent $c_0^{n-1}=u_0^{n-1}A_m,\qquad A_m=B_mF^{\otimes m},\qquad F=\begin{pmatrix}1&0\1&1\end{pmatrix},$0 convolutional polar code, choose $c_0^{n-1}=u_0^{n-1}A_m,\qquad A_m=B_mF^{\otimes m},\qquad F=\begin{pmatrix}1&0\1&1\end{pmatrix},$1 positions with smallest $c_0^{n-1}=u_0^{n-1}A_m,\qquad A_m=B_mF^{\otimes m},\qquad F=\begin{pmatrix}1&0\1&1\end{pmatrix},$2, and impose random dynamic freezing constraints on them (Morozov et al., 2019).

These developments also show that polar subcodes are not limited to one design philosophy. Some constructions are algebraic and parent-code-driven; others are randomized and decoder-aware; still others modify the polarizing transform itself while preserving the dynamic-freezing principle.

4. Decoding methods

Because dynamic frozen symbols are causal, SC decoding remains directly applicable. For a frozen coordinate, the decoder simply inserts the deterministic value prescribed by the constraint instead of branching on $c_0^{n-1}=u_0^{n-1}A_m,\qquad A_m=B_mF^{\otimes m},\qquad F=\begin{pmatrix}1&0\1&1\end{pmatrix},$3 or $c_0^{n-1}=u_0^{n-1}A_m,\qquad A_m=B_mF^{\otimes m},\qquad F=\begin{pmatrix}1&0\1&1\end{pmatrix},$4 (Trifonov et al., 2013). This is why the original papers emphasize that polar subcodes can still be efficiently decoded using the successive cancellation algorithm and its extensions (Trifonov et al., 2015).

The first major decoding extension paired with polar subcodes was directed-search stack decoding. Its key heuristic is based on the factorization

$c_0^{n-1}=u_0^{n-1}A_m,\qquad A_m=B_mF^{\otimes m},\qquad F=\begin{pmatrix}1&0\1&1\end{pmatrix},$5

and the replacement of the unknown suffix factor by

$c_0^{n-1}=u_0^{n-1}A_m,\qquad A_m=B_mF^{\otimes m},\qquad F=\begin{pmatrix}1&0\1&1\end{pmatrix},$6

where $c_0^{n-1}=u_0^{n-1}A_m,\qquad A_m=B_mF^{\otimes m},\qquad F=\begin{pmatrix}1&0\1&1\end{pmatrix},$7 is the error probability of the $c_0^{n-1}=u_0^{n-1}A_m,\qquad A_m=B_mF^{\otimes m},\qquad F=\begin{pmatrix}1&0\1&1\end{pmatrix},$8-th bit-subchannel under SC assuming previous bits are correct (Trifonov et al., 2013). The decoder prioritizes partial paths by

$c_0^{n-1}=u_0^{n-1}A_m,\qquad A_m=B_mF^{\otimes m},\qquad F=\begin{pmatrix}1&0\1&1\end{pmatrix},$9

which greatly reduces the number of iterations in the reported experiments while preserving the same error-rate performance as list decoding with the same list size (Trifonov et al., 2013).

A second major development is block sequential decoding. Rather than extending a path bit by bit, BSDA decomposes the code into outer codes through Plotkin decomposition and extends paths blockwise. The fundamental identity is that the cumulative SC penalty over a block equals the ellipsoidal weight of the corresponding outer-code codeword under the intermediate LLR vector (Trofimiuk et al., 2018). For polar subcodes, dynamic frozen symbols enter this framework as path-dependent coset shifts of outer codes: the decoder computes a DFS-induced coset representative, flips the signs of the relevant LLRs, decodes the outer code, and then adds the coset representative back to the returned codeword (Trofimiuk et al., 2018).

Iterative decoding has also absorbed the polar-subcode viewpoint. In belief-propagation list decoding, permuted or relaxed versions of CRC-aided polar codes are reinterpreted as equivalent polar subcodes with transformed dynamic-freezing matrices

uj=tSjut,jF,u_j=\sum_{t\in S_j}u_t,\qquad j\in\mathcal F,0

and, for relaxed graphs,

uj=tSjut,jF,u_j=\sum_{t\in S_j}u_t,\qquad j\in\mathcal F,1

This allows permutations to be used even for pre-transformed polar codes that lack useful automorphisms in the usual sense (Geiselhart et al., 2022).

More recently, subcode ensemble decoding has been extended to polar codes by expressing polar subcodes through suitable pre-transformations. In that framework, a parent code uj=tSjut,jF,u_j=\sum_{t\in S_j}u_t,\qquad j\in\mathcal F,2 and a transformed code uj=tSjut,jF,u_j=\sum_{t\in S_j}u_t,\qquad j\in\mathcal F,3 are related by a pre-transformation stage

uj=tSjut,jF,u_j=\sum_{t\in S_j}u_t,\qquad j\in\mathcal F,4

and different choices of uj=tSjut,jF,u_j=\sum_{t\in S_j}u_t,\qquad j\in\mathcal F,5 define different subcodes that can be decoded in parallel (Lulei et al., 24 Apr 2025). This line of work explicitly positions subcode ensemble decoding as a more general alternative to automorphism ensemble decoding, since it does not require symmetry-based design constraints (Lulei et al., 24 Apr 2025).

Polar subcodes have been extended into several neighboring research directions. In product coding, precoded polar product codes use component codes with dynamic frozen-bit constraints, described in that paper as precoded polar codes. The component generator is written as

uj=tSjut,jF,u_j=\sum_{t\in S_j}u_t,\qquad j\in\mathcal F,6

with uj=tSjut,jF,u_j=\sum_{t\in S_j}u_t,\qquad j\in\mathcal F,7 SC-aimed, and the resulting component codes are explicitly linked to the dynamic-frozen constructions associated with the polar-subcode tradition (Coşkun, 2024). The same work shows that the full product code itself can be written as a precoded polar code with Kronecker-structured precoder

uj=tSjut,jF,u_j=\sum_{t\in S_j}u_t,\qquad j\in\mathcal F,8

(Coşkun, 2024).

In coded MIMO, polar subcodes have been adapted to joint detection and decoding by introducing cross-antenna dynamic freezing constraints. The construction treats the uj=tSjut,jF,u_j=\sum_{t\in S_j}u_t,\qquad j\in\mathcal F,9 per-antenna polar codes as one long polar subcode of length uji=s=0ji1usVi,s.u_{j_i}=\sum_{s=0}^{j_i-1}u_sV_{i,s}.0, then selects type-A and type-B DFS positions according to detector-dependent reliability and reverse SIC order (Karakchieva et al., 28 Aug 2025). This is paired with joint list metrics for QR-based V-BLAST and MMSE-SIC, where the dominant term is a correlation-discrepancy expression of min-sum type (Karakchieva et al., 28 Aug 2025).

A different, decoder-side use of subcodes appears in hierarchical subcode ensemble decoding for BP on polar-code parity-check graphs. There the transmitted code remains the original polar code, but the decoder augments the PCM with additional rows to form many stricter linear subcodes whose union covers the original code: uji=s=0ji1usVi,s.u_{j_i}=\sum_{s=0}^{j_i-1}u_sV_{i,s}.1 This is a true subcode ensemble in the linear-algebraic sense, but it is not a classical dynamic-frozen transmitted code family; it is a decoder architecture over multiple subcodes of a fixed polar code (Jo et al., 9 Feb 2026).

Alongside these direct descendants, there are closely related but distinct lines of work. One such line redesigns the information set of a standard polar code to improve the low-weight spectrum without adding pre-transformations or dynamic freezing. The proposed weight-contribution partial order in that literature is therefore best read as adjacent to polar-subcode research rather than part of the core subcode definition (Rowshan et al., 18 Jun 2025).

6. Terminology, performance claims, and persistent distinctions

The term polar subcode is used in two incompatible ways across the literature. In the classical coding-theoretic sense, it denotes a code with dynamic frozen symbols, usually built as a subcode of a parent code such as e-BCH, and decoded by SC-based or related algorithms (Trifonov et al., 2015). In fast decoding, by contrast, “polar subcodes” may denote constituent decoder-tree patterns such as Rep, SPC, G-Rep, or G-PC, which are local substructures of the SC tree rather than transmitted linear subcodes (Condo et al., 2018). Conflating these two usages obscures both the algebraic and the implementation-oriented literature.

Within the classical sense, a second common misconception is that polar subcodes are merely CRC-aided polar codes under another name. The literature is more precise. CRC-aided polar codes do define a subcode of a polar code, but the defining novelty of classical polar subcodes is that the additional constraints are chosen from a parent algebraic code such as e-BCH, so the resulting code has a controlled, larger minimum distance (Trifonov et al., 2013). Later work explicitly notes that CRC-aided polar coding is a special case of the broader precoding picture, but not the canonical construction from the polar-subcode literature (Trifonov et al., 2015).

Performance claims in the literature are consistently tied to finite-length gains under practical decoding. The original dynamic-freezing paper reports that the code with design minimum distance uji=s=0ji1usVi,s.u_{j_i}=\sum_{s=0}^{j_i-1}u_sV_{i,s}.2 outperforms both polar-CRC and LDPC in the experiments shown, while the directed-search decoder achieves exactly the same performance as list decoding with the same list size uji=s=0ji1usVi,s.u_{j_i}=\sum_{s=0}^{j_i-1}u_sV_{i,s}.3 (Trifonov et al., 2013). The later “Polar Subcodes” paper reports that the proposed codes are shown to outperform LDPC and turbo codes, as well as polar codes with CRC (Trifonov et al., 2015). Randomized polar subcodes are reported to outperform LDPC and turbo codes in simulations, with up to about uji=s=0ji1usVi,s.u_{j_i}=\sum_{s=0}^{j_i-1}u_sV_{i,s}.4 dB gain in some settings and up to uji=s=0ji1usVi,s.u_{j_i}=\sum_{s=0}^{j_i-1}u_sV_{i,s}.5 dB gain specifically attributable to type-B constraints (Trifonov et al., 2017). Convolutional polar subcodes are reported to achieve FER below uji=s=0ji1usVi,s.u_{j_i}=\sum_{s=0}^{j_i-1}u_sV_{i,s}.6 with list size uji=s=0ji1usVi,s.u_{j_i}=\sum_{s=0}^{j_i-1}u_sV_{i,s}.7 versus uji=s=0ji1usVi,s.u_{j_i}=\sum_{s=0}^{j_i-1}u_sV_{i,s}.8 for a classical polar subcode in the cited uji=s=0ji1usVi,s.u_{j_i}=\sum_{s=0}^{j_i-1}u_sV_{i,s}.9 AWGN experiment (Morozov et al., 2019).

At the same time, the tradeoffs are explicit. Stronger parent-code constraints improve minimum distance and high-SNR behavior, but they may freeze too many good bit-channels and degrade low-SNR performance (Trifonov et al., 2013). Randomized constructions are heuristic, and the choice of parameters such as the numbers of type-A and type-B constraints is empirical rather than analytically optimal (Trifonov et al., 2017). Decoder-side ensemble methods can lower latency or improve BP convergence, but often at a substantial increase in aggregate computation or hardware footprint (Geiselhart et al., 2022).

Polar subcodes therefore occupy a specific technical niche. They are not merely polar codes with extra parity bits, nor simply a synonym for CRC-aided polar coding, nor only a fast-decoding constituent-node notion. In their classical and still dominant sense, they are polar-transform-based linear subcodes defined by dynamic frozen symbols, designed to improve finite-length distance properties while preserving SC-compatible recursive decoding.

Topic to Video (Beta)

No one has generated a video about this topic yet.

Whiteboard

No one has generated a whiteboard explanation for this topic yet.

Follow Topic

Get notified by email when new papers are published related to Polar Subcodes.