# VNA Measurements, Passivity, and K-K Enforcement

*Measured S-parameters are complex functions of frequency over a finite
band — and real hardware routinely produces data that violates causality
or passivity. Kramers–Kronig enforcement is how behavioural models are
rescued into something an SI/PI simulator can actually integrate.*

This chapter uses the **engineering convention** `e^{+jωt}` throughout,
since it is the universal choice in microwave/SI literature. The causal
transfer function is analytic for Re s ≥ 0, i.e. in the *lower* half of
the ω-plane (see Chapter 16). Every K-K sign below is the engineering
one; the physics form is obtained by `j → −i`.

## What a vector network analyser actually measures

A vector network analyser (VNA) stimulates a device under test (DUT)
with a swept sinusoid at frequencies ω_k and measures the complex
amplitude and phase of the incident, reflected, and transmitted waves at
its ports. From these it computes the scattering parameters

```
S_ij(ω_k) = b_i(ω_k) / a_j(ω_k)     (other ports match-terminated)
```

delivered as a table — typically a Touchstone `.s2p` or `.s4p` file —
of complex S_ij over a finite band [ω_min, ω_max] on a discrete grid.
For a two-port, S_11 and S_22 are reflection coefficients, S_21 and
S_12 are transmission coefficients; for an N-port, S is an N×N matrix.

The hardware reality diverges from the ideal in several ways:

- **Finite bandwidth.** The VNA covers, say, 10 MHz–50 GHz. Data below
  and above that is simply missing.
- **Calibration residuals.** SOLT / TRL calibration corrects systematic
  errors but leaves random noise and small residuals, especially at
  band edges and at ports with large mismatch.
- **Trace noise and IF-bandwidth trade-offs.** Lower IF bandwidth
  averages noise down but lengthens the sweep.
- **Cable flex, connector repeatability, temperature drift.** These
  introduce small uncorrelated phase errors.
- **Fixturing and de-embedding errors.** Launching onto a PCB through a
  connector is never perfect; the de-embedding model is approximate.

## Why raw data can violate causality

A physical passive linear network must have a causal impulse response:
taking the inverse Fourier transform of S_ij(ω) should give s_ij(t)
that is zero for t < 0 and bounded in energy. Raw measured data rarely
satisfies this, for three reasons:

1. **Truncation.** The K-K integrals require data from 0 to ∞; missing
   bands bias the reconstructed time-domain response.
2. **Noise.** Random real and imaginary parts have no causality
   relationship — their inverse transform is two-sided.
3. **Calibration and de-embedding residuals.** Small phase errors at
   high frequency produce large t < 0 artefacts because the inverse
   transform is exponentially sensitive to phase near the band edge.

The visible symptoms in time-domain reflectometry (TDR) derived from
the measured S-parameters are:

- **Pre-ringing** — non-zero response for t < 0, which is physically
  impossible.
- **Non-monotonic energy accumulation** — the step response overshoots
  in ways inconsistent with a passive network.
- **|S_ij(ω)| > 1** for a passive DUT — passivity violation, typically
  after interpolation or de-embedding.

A behavioural model fitted to such data is unstable: an SI/PI simulator
(HSPICE, ADS, Sigrity) driving the macromodel in transient will see
its time-stepper blow up.

## K-K enforcement: causality correction

The K-K relations tell us that for a causal response, real and imaginary
parts are not independent — each determines the other up to a real
constant and asymptotic subtractions. The engineering form for a
(suitably subtracted) scalar S(ω) = S′(ω) + jS″(ω) is

```
S′(ω) = S′(∞) − (1/π) P ∫_{−∞}^{∞}  S″(ω′) / (ω′ − ω) dω′
S″(ω) =           (1/π) P ∫_{−∞}^{∞}  S′(ω′) / (ω′ − ω) dω′
```

Causality correction re-derives one part from the other over the
measured band, explicitly accounting for:

- **Extrapolation to DC.** S_21(0) for a passive interconnect is real
  and finite; S_11(0) is a real DC reflection. These anchor the low-ω
  tail.
- **Extrapolation to ω → ∞.** Physical interconnects have high-frequency
  roll-off (skin effect, dielectric loss, radiation) that forces
  S → 0 with a known power law; this supplies the integrand tail.
- **Truncation subtractions.** The missing-band contribution is modelled
  as a correction term rather than ignored.

Passivity enforcement is a related but distinct step: the S-matrix is
constrained so that I − S^H S ≥ 0 on the band, which ensures no
energy is generated. The typical workflow is:

1. Fit measured S to a rational (vector-fitting) macromodel.
2. Enforce causality via K-K on each element.
3. Perturb pole–residue pairs minimally to restore passivity.
4. Hand the passivity-corrected rational model to the SI/PI simulator.

## Applications

Causality- and passivity-enforced S-parameter models underlie almost
every modern high-speed link analysis:

- **IBIS-AMI** — behavioural models of SERDES transmitter/receiver
  linear parts rely on K-K-compliant S-parameter files for the channel.
- **S2P / S4P → Spice-like macromodels** — vector fitting with
  passivity enforcement generates SPICE-compatible pole–residue
  subcircuits used in PCIe, DDR, and 400/800 GbE channel simulations.
- **Power integrity** — PDN impedance profiles measured on a VNA are
  K-K-enforced before being used in decoupling optimisation.

The definitive review is Triverio, Grivet-Talocia, Nakhla, Canavero,
Achar, *"Stability, Causality, and Passivity in Electrical Interconnect
Models"*, IEEE Transactions on Advanced Packaging, 2007, which
catalogues the checks (time-domain zero-for-t<0 tests, Hilbert-pair
consistency, positive-real tests) and the enforcement algorithms.

## Practical checks

Before trusting a measured S-parameter file:

- **Time-domain causality check.** IFFT to s_ij(t); the energy in
  t < 0 should be a small fraction of the total. Anything above a few
  percent indicates bad data or bad extrapolation.
- **Hilbert-pair residual.** Compute Im from Re via K-K on the measured
  band; compare with measured Im. The residual is a one-number causality
  figure of merit.
- **Singular-value passivity.** Check σ_max(S(ω)) ≤ 1 at every sample.

These three diagnostics catch the vast majority of problems before the
model goes near a simulator.

## See also

- [10_causality_LTI.md](10_causality_LTI.md)
- [16_sign_conventions.md](16_sign_conventions.md)
- [19_minimum_phase_DSP.md](19_minimum_phase_DSP.md)
- [30_pitfalls_limitations.md](30_pitfalls_limitations.md)

## References

- P. Triverio, S. Grivet-Talocia, M. S. Nakhla, F. G. Canavero,
  R. Achar, *"Stability, Causality, and Passivity in Electrical
  Interconnect Models"*, IEEE Trans. Advanced Packaging, vol. 30,
  no. 4, pp. 795–808, 2007.
- D. M. Pozar, *Microwave Engineering*, 4th ed., Wiley, 2011.
