# Minimum-Phase Systems — K-K in Discrete Time

*The discrete counterpart of the Kramers–Kronig relations: for a causal, stable, minimum-phase discrete-time system, log-magnitude and phase on the unit circle are a Hilbert-transform pair.*

## From the upper half-plane to the unit disk

The continuous K–K argument rests on analyticity of χ(ω) in the upper
half-plane. In discrete time the natural frequency variable is z ∈ ℂ, and
the analogue of "upper half-plane" is "outside the unit disk". A
causal, stable LTI sequence h[n] (with h[n] = 0 for n < 0 and h ∈ ℓ¹)
has a z-transform

```
H(z) = Σ_{n=0}^{∞} h[n] z^{−n}
```

that is analytic for |z| > R, with R ≤ 1 by stability. Evaluated on the
unit circle z = e^{jω}, H(e^{jω}) is the DTFT, the discrete counterpart
of χ(ω). Causality alone constrains H(z) to be analytic outside the unit
disk — but that is a constraint on H, not yet on log H.

## Minimum-phase: moving the constraint onto log H

A stable causal system is called **minimum-phase** when *both* H(z) and
1/H(z) are analytic for |z| > 1. Equivalently, all poles *and* all zeros
of H(z) lie strictly inside the unit disk. Under that stronger
condition, log H(z) itself is analytic outside the unit disk (no branch
points are picked up crossing a zero that would otherwise sit on or
outside the unit circle). One can then run the Hilbert-transform
argument on log H instead of H, exactly as in the continuous case one
runs it on log χ once zeros in the UHP are excluded (Chapter 18).

Writing log H(e^{jω}) = ln|H(e^{jω})| + j·∠H(e^{jω}), the real and
imaginary parts on the unit circle become a Hilbert-transform pair.

## The discrete Hilbert transform on the circle

The explicit inversion formula, sometimes called the discrete Hilbert
transform on the circle or the "circular Hilbert transform", is

```
∠H(e^{jω}) = −(1/2π) P ∫_{−π}^{π}  ln|H(e^{jω′})| · cot((ω′ − ω)/2) dω′
```

with the inverse relation recovering ln|H| from ∠H up to an additive
constant (the constant corresponds to a pure gain and is not fixed by
phase alone). The kernel cot((ω′ − ω)/2) replaces the continuous-time
1/(ω′ − ω); it is the Poisson-conjugate kernel of the unit disk and is
the object that makes the argument "periodic K–K". The principal value
is required because cot has a simple pole at ω′ = ω.

A clean way to derive this is to note that for a minimum-phase H, the
sequence

```
ĥ[n] = log H(z) ↔ (cepstrum, see below)
```

is causal: its inverse z-transform lives on n ≥ 0. The
Hilbert-transform relation between ln|H| and ∠H is then the unit-circle
restatement of "causal ⇒ even and odd parts are a Hilbert pair", the
same logic used for continuous χ on the real line.

## Allpass decomposition

Any stable causal H(z) can be factored uniquely as

```
H(z) = H_min(z) · H_ap(z)
```

where H_min is minimum-phase (all zeros inside the unit disk) and
H_ap is an **allpass** filter: |H_ap(e^{jω})| = 1 for all ω, so H_ap
contributes only phase, not magnitude. The allpass factor accounts for
every zero of H(z) that lies *outside* the unit disk, by pairing it with
a reflected pole inside. The magnitude response |H(e^{jω})| is carried
entirely by H_min, while the excess phase (the phase that is *not*
determined by |H|) is carried by H_ap.

This is the discrete parallel of the Blaschke-product decomposition used
in continuous time (Chapter 18). Practically:

- K–K on the unit circle determines ∠H_min from ln|H|.
- Any measured phase in excess of that prediction is attributed to an
  allpass factor — dispersion without absorption, group-delay ripple
  with flat magnitude, etc.

A minimum-phase system is, in a precise sense, the "least delay" system
consistent with a given magnitude response: its energy is concentrated
as early in time as possible, and its group delay is the smallest
non-negative group delay realisable for that |H|.

## Connection to the complex cepstrum

The **complex cepstrum** of a sequence h[n] is defined by

```
ĥ[n] = Z^{−1}{ log H(z) }
```

i.e. the inverse z-transform of log H(z), sampled on the unit circle.
For a minimum-phase sequence, log H(z) is analytic outside the unit
disk, so its inverse z-transform is one-sided: ĥ[n] = 0 for n < 0. The
complex cepstrum of a minimum-phase sequence is **causal**.

Conversely, a maximum-phase sequence (all zeros outside the unit disk)
has an anticausal cepstrum, ĥ[n] = 0 for n > 0. A general mixed-phase
sequence has a two-sided cepstrum, and the minimum/maximum/allpass
decomposition can be read off directly by splitting ĥ[n] into its
causal, anticausal, and even parts.

This is the theoretical basis for **homomorphic deconvolution** (Oppenheim,
1965): convolution becomes addition in the cepstral domain, and
separating excitation from filter — e.g. glottal source from vocal tract
— reduces to a windowing operation on ĥ[n].

## Practical consequences

- In audio and control, given a measured magnitude response |H(e^{jω})|,
  the K–K-consistent minimum-phase reconstruction gives the
  shortest-latency filter realising that magnitude.
- Loudspeaker and room equalisation distinguishes a minimum-phase part
  (correctable by inverse filtering) from an allpass part (can only be
  compensated with delay).
- Non-minimum-phase plants in control (right-half-plane zeros) limit
  achievable bandwidth; the discrete K–K quantifies the phase penalty.

See the companion repo **MinimumMaximumPhaseFilters** for worked
examples, including FIR factorisation and cepstral separation.

## See also

- [10_causality_LTI.md](10_causality_LTI.md)
- [20_bode_gain_phase.md](20_bode_gain_phase.md)
- [BrendanJamesLynskey/MinimumMaximumPhaseFilters](https://github.com/BrendanJamesLynskey/MinimumMaximumPhaseFilters)

## References

- A. V. Oppenheim and R. W. Schafer, *Discrete-Time Signal Processing*,
  3rd ed., Pearson, 2010 — Chs. 5 (minimum-phase) and 13 (cepstrum).
- J. G. Proakis and D. G. Manolakis, *Digital Signal Processing*, 4th
  ed., Pearson, 2007.
- [Wikipedia: Minimum phase](https://en.wikipedia.org/wiki/Minimum_phase)
- [Wikipedia: Cepstrum](https://en.wikipedia.org/wiki/Cepstrum)
