---
title: Partial Unit-Memory MDP Codes
url: https://www.emergentmind.com/topics/partial-unit-memory-mdp-codes
type: topic
---

# Partial Unit-Memory MDP Codes

Partial unit-memory maximum distance profile codes are memory-\(1\) convolutional codes whose delayed generator part has rank strictly smaller than the input dimension and whose column distances attain the largest admissible values for as long as the degree permits. In the recent memory-\(1\) formulation, a partial unit-memory code has generator matrix \(G(z)=G_0+G_1z\) with \(\operatorname{rk}(G_1)<k\); in the regime \(k>n-k=\delta\), one has \(L=1\), so MDP-ness is equivalent to \(d_1^c(\mathcal C)=2(n-k)+1\) and, equivalently, to the nonvanishing of all nontrivial full-size minors of \(G_1^c=\begin{bmatrix}G_0&G_1\\0&G_0\end{bmatrix}\) [2507.10417]. More generally, for a PUM code with memory \(1\) and \(\delta<k\), the MDP horizon simplifies to \(L=\left\lfloor \delta/(n-k)\right\rfloor\), so the subject is fundamentally about optimal finite-window distance growth, sliding-window erasure recovery, and the algebraic design of sparse or superregular memory-\(1\) polynomial matrices [1006.3156][2604.21544].

## 1. Code model and the PUM specialization

In the standard generator description of a memory-\(1\) convolutional code, the encoded blocks satisfy
\[
c_t=i_tG_0+i_{t-1}G_1.
\]
A unit-memory code has \(\operatorname{rank}(G_1)=k\), whereas a partial unit-memory code has \(\operatorname{rank}(G_1)=k_1<k\); in the \((n,k\mid k_1)\) notation, only a \(k_1\)-dimensional part of the previous information block affects the current code block [1202.1692]. The same distinction is used in the recent matrix-completion literature: a convolutional code with \(\mu=1\) is unit-memory if \(\operatorname{rk}(G_1)=k\) and partial unit-memory if \(\operatorname{rk}(G_1)<k\) [2604.21544].

A complementary block-code-based formulation writes
\[
G_0=\begin{bmatrix}G_0^\ast\\ G_0^\diamond\end{bmatrix},\qquad
G_1=\begin{bmatrix}G_1^\ast\\ 0\end{bmatrix},
\]
with associated constituent block codes \(\mathcal C_\alpha,\mathcal C_0,\mathcal C_1,\mathcal C_{01}\). In that framework, PUM decoding is organized around direct decoding in \(\mathcal C_\alpha\), one-sided propagation through \(\mathcal C_0\) and \(\mathcal C_1\), and two-sided reconstruction through \(\mathcal C_{01}\) [1705.08652]. This viewpoint does not define MDP, but it makes explicit the local, neighboring-block recovery mechanism that MDP theory later optimizes.

For the MDP specialization, the important parameter is the code degree \(\delta\). In the standard memory-\(1\) specialization, each column degree is \(0\) or \(1\), so \(\delta<k\) is the characteristic PUM regime; in the recent sparse constructions one further imposes \(k>n-k=\delta\), which forces \(L=1\) and makes the first nontrivial sliding matrix decisive [1006.3156][2507.10417].

## 2. Column distances and the MDP property

For a codeword \(v(z)=v_0+v_1z+\cdots\), the \(j\)-th column distance is
\[
d_j^c(\mathcal C)=\min\left\{\sum_{t=0}^{j}\operatorname{wt}(v_t)\ \middle|\ v(z)\in\mathcal C,\ v_0\neq 0\right\},
\]
and the free distance satisfies
\[
d_{\mathrm{free}}(\mathcal C)=\lim_{j\to\infty} d_j^c(\mathcal C).
\]
For every \(j\),
\[
d_j^c(\mathcal C)\le (n-k)(j+1)+1.
\]
An \((n,k,\delta)\) convolutional code is MDP if
\[
d_j^c(\mathcal C)=(n-k)(j+1)+1,\qquad j=0,\dots,L,
\]
where
\[
L=\left\lfloor \frac{\delta}{k}\right\rfloor+\left\lfloor \frac{\delta}{n-k}\right\rfloor .
\]
Thus MDP means maximal column-distance growth for as long as the general bound allows [0903.3004][1006.3156].

For PUM codes, the memory-\(1\) condition simplifies the horizon. Since typically \(\delta<k\),
\[
\left\lfloor \frac{\delta}{k}\right\rfloor=0,\qquad
L=\left\lfloor \frac{\delta}{n-k}\right\rfloor .
\]
Hence a PUM code is MDP exactly when its early column distances satisfy
\[
d_j^c=(j+1)(n-k)+1,\qquad 0\le j\le \left\lfloor \frac{\delta}{n-k}\right\rfloor .
\]
This is the central finite-window optimality statement for PUM MDP codes [1006.3156].

In the particularly important sparse PUM regime
\[
k>n-k=\delta,
\]
one gets
\[
L=\left\lfloor \frac{\delta}{k}\right\rfloor+\left\lfloor \frac{\delta}{n-k}\right\rfloor=1.
\]
Then the MDP condition reduces to
\[
d_1^c(\mathcal C)=2(n-k)+1.
\]
In that setting, the recent construction papers also note that the generalized Singleton bound equals \(2(n-k)+1\), so
\[
d_1^c=d_L^c=d_{\mathrm{free}}.
\]
This makes the memory-\(1\) PUM MDP problem a first-window design problem on \(G_1^c\) [2507.10417].

## 3. Sliding-window erasure decoding

The operational value of the MDP property is clearest on the erasure channel. There the receiver knows the erased positions, and decoding reduces to solving linear systems obtained from the parity-check equations in sliding windows. If
\[
H(z)=H_0+H_1z+\cdots+H_\nu z^\nu,
\]
then the truncated sliding parity-check matrix is
\[
\mathcal H_j=
\begin{bmatrix}
H_0 &        &        & 0\\
H_1 & H_0    &        & \\
\vdots & \vdots & \ddots & \\
H_j & H_{j-1} & \cdots & H_0
\end{bmatrix}.
\]
The MDP criterion is that the admissible full-size minors of \(\mathcal H_j\) be nonzero; equivalently, the relevant erasure-location submatrices have full rank [0903.3004].

The fundamental decoding theorem is window-local. If \(\mathcal C\) is an \((n,k,\delta)\) MDP convolutional code and in any sliding window of length \((L+1)n\) there are at most
\[
(L+1)(n-k)
\]
erasures, then the whole sequence can be recovered. More generally, because
\[
d_j^c=(n-k)(j+1)+1 \quad \text{for every } j\le L,
\]
in any sliding window of size \((j+1)n\) one can recover up to
\[
(j+1)(n-k)
\]
erasures, provided the previous symbols are already known [1006.3156][0903.3004].

This theorem specializes directly to PUM MDP codes. If the code is memory \(1\) and MDP, then the same formulas hold with
\[
L=\left\lfloor \frac{\delta}{n-k}\right\rfloor .
\]
Thus the PUM MDP property is not merely a global free-distance statement; it is a deterministic guarantee of optimal local erasure correction in streaming windows [1006.3156].

The comparison with MDS block codes is one of the classical motivations. In a window of length \((L+1)n\), an MDP convolutional code corrects the same fraction
\[
\frac{(L+1)(n-k)}{(L+1)n}=\frac{n-k}{n}
\]
as an MDS block code of the same rate, but the convolutional decoder can slide the window and adapt to burst structure. The illustrative example in the erasure-decoding paper compares a \((2,1,50)\) MDP convolutional code with a \([200,100]\) MDS block code: both correct roughly \(50\%\) erasures, but the convolutional code succeeds on two bursts of \(60\) erasures separated by \(80\) clean symbols because it can decode them in different windows, whereas the fixed \([200,100]\) block fails on \(120>100\) erasures inside one block [0903.3004].

On complexity, the erasure-channel papers emphasize that decoding is computationally easy: one solves linear systems over the base field, and in the MDP case each erasure group requires inversion of a matrix of size at most \((L+1)(n-k)\), with complexity
\[
\mathcal O\!\left(L^3(n-k)^3\right).
\]
For PUM codes, \(L\) is often small, so the sliding systems remain modest [1006.3156].

## 4. Reverse-MDP, complete-MDP, and bounded-delay refinements

The MDP property is only the first level of the erasure-decoding hierarchy. A code is reverse MDP if the code and its reverse are both MDP, so the same maximal window guarantees hold in both time directions [1006.3156]. Complete MDP strengthens this further: its defining object is the partial parity-check matrix
\[
\mathfrak H=
\begin{bmatrix}
H_\nu & \cdots & H_0 &        &        & 0\\
      & \ddots &     & \ddots &        & \\
0     &        & H_\nu & \cdots & H_0
\end{bmatrix}\in \mathbb F^{(L+1)(n-k)\times (\nu+L+1)n},
\]
and the code is complete MDP when every full-size minor of \(\mathfrak H\) that is not trivially zero is nonzero [1712.08767].

The hierarchy and its operational meaning are summarized below.

| Property | Defining feature | Operational consequence |
|---|---|---|
| MDP | Maximal \(d_j^c\) for \(0\le j\le L\) | Optimal forward sliding-window recovery |
| Reverse-MDP | Code and reverse code are both MDP | Forward and backward decoding |
| Complete-MDP | Nontrivial full-size minors of \(\mathfrak H\) are nonzero | Reduced waiting time after bad bursts |
| Complete \(j\)-MDP | Truncated complete-MDP condition to depth \(j\) | Optimal sequential decoding with delay \(T=j\) |

Every complete MDP code is reverse MDP, and complete MDP codes exist over sufficiently large fields iff
\[
(n-k)\mid \delta .
\]
The complete-MDP existence theorem is generic: for all parameters satisfying that divisibility condition, complete MDP codes form a generic subset of the variety of non-catastrophic convolutional codes [1712.08767].

The bounded-delay refinement is the complete \(j\)-MDP notion. For
\[
j=0,\dots,L,
\]
a code is complete \(j\)-MDP if the truncated matrix used in the bounded-delay decoding equations has all nontrivial full-size minors nonzero. When \(j=L\), this recovers complete MDP. The key optimality statement is that complete \(j\)-MDP convolutional codes are optimal for sequential erasure decoding with maximal delay \(T=j\) using the paper’s algorithm; if an erasure pattern cannot be corrected within delay \(j\) by a complete \(j\)-MDP code, then no other convolutional code with the same parameters can correct it within delay \(j\) [1912.00184].

For memory-\(1\) codes, the complete \(j\)-MDP machinery specializes cleanly. If one takes
\[
H(z)=H_0+H_1 z,
\]
then the complete \(j\)-MDP matrix becomes a banded block matrix with only two nonzero block diagonals. The paper does not develop a separate PUM theory, but it states that the complete \(j\)-MDP definitions, bounded-delay decoding theorem, and parity-check minor criteria are immediately relevant to memory-\(1\) studies [1912.00184].

Field-size issues for MDP and complete MDP were analyzed systematically later. Upper bounds on the necessary field size and lower bounds on the probability that a random code is MDP or complete MDP were derived, and these bounds improve earlier ones in many parameter regimes [1808.03074].

## 5. Algebraic characterizations and constructions for PUM MDP codes

The classical structural criterion is given by admissible minors of sliding Toeplitz matrices. On the parity-check side, MDP is characterized by nonvanishing admissible full-size minors of \(\mathcal H_j\); on the generator side, by nonvanishing admissible full-size minors of
\[
\mathcal G_j=
\begin{bmatrix}
G_0 & G_1 & \cdots & G_j\\
    & G_0 & \cdots & G_{j-1}\\
    &     & \ddots & \vdots\\
    &     &        & G_0
\end{bmatrix}.
\]
For PUM codes this criterion is unchanged; only the memory-\(1\) structure makes the sliding matrices smaller [1006.3156].

A general older construction route uses superregular lower block triangular Toeplitz matrices. When
\[
(n-k)\mid \delta,
\]
superregularity of the relevant Toeplitz matrix yields an MDP code, and the paper “A new class of superregular matrices and MDP convolutional codes” provides such matrices over sufficiently large finite fields of arbitrary characteristic [1303.3807]. In the memory-\(1\) subclass one has
\[
\delta=n-k,
\]
so this construction directly covers that degree regime. This suggests a parity-check-side route to memory-\(1\) MDP and reverse-MDP designs whenever the degree matches the redundancy.

The most direct PUM-MDP constructions are recent and explicitly phrased as matrix completion. The paper “A Matrix Completion Approach for the Construction of MDP Convolutional Codes” studies the specific PUM regime
\[
k>n-k=\delta
\]
and imposes
\[
G(z)=G_0+G_1 z,\qquad G_1=(X\ \mathbf 0_{k\times k}),
\]
with \(G_0\) chosen as a structured superregular matrix, typically Cauchy, and \(X\) chosen to complete the sliding generator matrix
\[
G_1^c=\begin{bmatrix}G_0&G_1\\0&G_0\end{bmatrix}.
\]
The explicit sparse choice is
\[
X=
\begin{pmatrix}
\alpha & 0 & \cdots & 0\\
0 & \alpha^2 & \cdots & 0\\
\vdots & & \ddots & \vdots\\
0 & \cdots & 0 & \alpha^{n-k}\\
0 & \cdots & \cdots & 0\\
\vdots & & & \vdots\\
0 & \cdots & \cdots & 0
\end{pmatrix},
\]
so \(G_1\) has exactly \(n-k\) nonzero entries and
\[
\operatorname{rk}(G_1)=n-k.
\]
With extension degree
\[
d=\left\lceil\frac{\delta^2-1}{4}\right\rceil+1,
\]
the resulting code is MDP. The same paper proves that any generator matrix with optimal first column distance must satisfy
\[
\operatorname{rk}(G_1)\ge n-k,
\]
so the sparse construction attains the minimum possible rank of the delayed term compatible with \(L\ge 1\) MDP behavior [2507.10417].

The follow-up paper “Design of MDP Convolutional Codes and Maximally Recoverable Codes Through the Lens of Matrix Completion” restricts its convolutional-code section entirely to the memory-\(1\) or \(L=1\) regime and gives several concrete PUM-MDP constructions. Besides the general superregular-\(G_0\) plus diagonal-\(X\) template, it gives Vandermonde-based families for
\[
(n,n-2,2)\quad\text{over }\mathbb F_{q^2}
\]
and
\[
(n,n-3,3)\quad\text{over }\mathbb F_{q^3},
\]
with
\[
G_1=[\hat X\ 0_{k\times k}]
\]
and \(\hat X\) a small lower-triangular Toeplitz block placed in the last rows. These constructions replace full superregularity by a Vandermonde base matrix \(G_0\), while keeping the extension-field support confined to a small sparse block [2604.21544].

Encoding complexity is a stated design objective in the recent PUM-MDP work. With \(G_0\) chosen as a Cauchy matrix and \(G_1\) extremely sparse, the 2025 paper gives per-time-step encoding complexity
\[
\mathcal O\!\big(d[\,n\log^2 n+(n-k)\,]\mathcal M(q)\big)
=
\mathcal O\!\big(d\,n\log^2 n\,\mathcal M(q)\big),
\]
and argues that this reduces encoding complexity compared to previous structured MDP constructions [2507.10417].

Several adjacent construction literatures are relevant but not explicitly PUM. Unit-memory MDS and strongly-MDS convolutional codes with maximum distance profile were constructed by parity-check splitting of block MDS codes; this suggests a nearby algebraic template for memory-\(1\) PUM adaptations, but the paper itself treats UM rather than PUM [1511.07233]. Over finite chain rings, MDP and reverse-MDP codes admit analogous generator-matrix characterizations, lifting theorems from the residue field, and generalized superregular constructions; this suggests chain-ring analogues of memory-\(1\) PUM MDP codes when the usual extra rank restrictions are imposed [2104.09486].

## 6. Related notions, terminology, and common distinctions

A common misconception is to identify “PUM” with “MDP.” The PUM condition only fixes a memory-\(1\) rank profile; the MDP condition is an additional statement about column distances or, equivalently, admissible minors of sliding matrices. The PUM decoding papers based on constituent block codes and reduced trellises do not use MDP terminology, even though they analyze local window behavior and extended column or row distances [1202.1692][1705.08652].

This distinction is explicit in the probabilistic PUM literature. For memoryless channels, the success probability of decoding a PUM block can be written in terms of the probabilities
\[
p_a,\ p_b,\ p_c,\ p_d
\]
for direct decoding, one-sided propagation, two-sided recovery, and failure, respectively, and the resulting formulas quantify how neighboring blocks improve recovery. This is complementary to MDP theory: it analyzes stochastic block recovery rather than deterministic maximal column distances [1705.08652].

A second adjacent direction is rank-metric or sum-rank PUM coding. Gabidulin-based PUM constructions optimize free rank distance and slope in the sum-rank metric and provide explicit parity-check constructions with dual memory \(m_H=1\), but they do not establish Hamming-metric MDP behavior or maximize finite-window column distances in the classical MDP sense [1102.2700].

A third source of terminological confusion is the phrase “partial MDP.” In locally repairable convolutional codes, “partial \(j\)-MDS” and “partial MDP” mean that after puncturing away \(\partial-1\) symbols per local group, the restricted code is \(j\)-MDS or MDP up to the largest admissible \(L\). That is the convolutional analogue of partial-MDS or maximally recoverable locality, and it is conceptually distinct from “partial unit-memory MDP codes,” even though the unit-memory specialization is possible by taking memory \(\mu=1\) [1901.02073].

Taken together, the literature identifies partial unit-memory MDP codes as a narrow but technically rich intersection: the memory-\(1\) algebraic structure of PUM codes, the finite-window optimality of MDP column distances, the erasure-decoding hierarchy MDP \(\subset\) reverse-MDP \(\subset\) complete-MDP, and the recent matrix-completion program that makes sparse, structured, low-complexity PUM MDP constructions explicit [2604.21544].

Source: https://www.emergentmind.com/topics/partial-unit-memory-mdp-codes