β: This English translation is in beta — the Traditional-Chinese original is the authoritative version.
Rigorous Derivation of the Jitter Kernels: TIE, N-period, cycle-to-cycle
Prerequisites: psd_phase_noise_jitter · stochastic_noise_basics · dsp_view_of_phase_noise | Next: allan_variance · serdes_clocking_connection
psd_phase_noise_jitter already gave the "operational
versions" of the three jitter weighting kernels; this page derives them rigorously from first
principles, and answers the question that has been left hanging:
what exactly is the prefactor? Which 2 belongs to which convention? The answer is calibrated with three independent rulers:
(1) the step-by-step derivation, (2) exact agreement with the verified of [P2],
(3) Monte-Carlo time-domain measurement (simulations/lab_24_jitter_kernels.py) — all three agree to ~0.1%.
This page supersedes the earlier external-convention TODO: this site previously marked the prefactor of the period-jitter kernel in worked_examples Example C3 as "external literature, to be confirmed". This page has now derived it from first principles and verified it by Monte Carlo: under the "one-sided , " convention the prefactor is exactly (not — that 2 belongs to the two-sided-spectrum or bookkeeping; see the conversion table in Step 0). The kernel and constant used in Example C3 are correct; its value 27.6 fs is the closed-form 28.28 fs after truncating the band to – Hz (Section 7 of this page has markers reconciling each number).
Physical intuition (conclusion first): the three jitters are three ways of reading the same phase process — read it directly (TIE), read the difference beats apart (N-period), or read the difference of adjacent differences (cycle-to-cycle). In the frequency domain, "taking a difference" is multiplication by a deterministic filter; multiply by that filter's and integrate, and you get that jitter's variance. The kernel's shape decides "which part of the frequency axis of the phase noise gets counted": TIE eats the low end, period is a first-order high-pass, c2c is a second-order high-pass. Every 2 and 4 can be traced to its origin.
Step 0: declaration of the single convention (the foundation of every formula on this page)
This page uses exactly one convention: is the one-sided power spectral density of the excess phase, in , defined for ; all integrals are . Its relation to the variance is
No extra factor of 2 anywhere. Other conventions common in the literature convert as follows (same physical quantity, three bookkeepings; is the two-sided spectrum, is the small-angle SSB; see the derivation in psd_phase_noise_jitter):
| Quantity | One-sided (this page) | Two-sided (integrate ) | (small-angle) |
|---|---|---|---|
- All three columns yield exactly the same number — lab_24 computes the period jitter three times from the same white spectrum,
once per bookkeeping, and prints
0.1592 / 0.1592 / 0.1592 fs(see the Section 8 code). - In the versions written in the literature as , the is either a two-sided spectrum or is relabeled as ; plugging a one-sided spectrum into that formula overcounts the variance by 2× (jitter by ). That was exactly the sticking point behind Example C3's original TODO, and one more case of this site's factor-of-2 discipline (cf. the SSB vs time-domain note in Section 3 of the conventions).
- The column holds only at small angles ( rad), because is itself a small-angle approximation.
Step 1: edge timing error = a sample of the phase (time-domain starting point)
The total phase of the oscillator output is (the phase term of [P1] Eq.(1), p.181; is the excess phase, rad). The -th rising zero crossing is defined by "the total phase has completed full turns":
Solve for (treat as a small perturbation and expand to first order about ):
- Approximation used: first-order expansion; requires the effect of to be negligible, equivalent to (instantaneous frequency offset far below the carrier) and (jitter far smaller than the period). Practical oscillators have fs-level jitter with periods of hundreds of ps, so this holds easily.
- Failure conditions: cycle slips ( accumulating to rad within one correlation time), strong injection pulling, or non-negligible AM-PM conversion — then edges and phase are no longer one-to-one.
- Units: ✓.
So the timing error of the -th edge (TIE, time interval error, deviation from the ideal clock) is
The minus sign just says "phase leads = edge arrives early"; after taking the variance it affects nothing.
Step 2: three jitters = 0th/1st/2nd-order differences of the phase
Following the definitions of notation (conventions Section 2), rewritten entirely in the language of :
at is what is commonly called the period jitter; is the difference between two adjacent period lengths (the difference of the difference). All three are linear operations on , so the next step can process them all at once in the frequency domain.
Step 3: variance of a difference ← frequency-domain kernel (the core lemma, derived two ways)
What we need is (). Two mutually independent derivation routes follow; the second is mathematically stronger — it holds even when itself is a random walk (non-stationary).
Route A: assume wide-sense stationary (WSS), via the autocorrelation
Step 1: expand the square. Let be WSS and zero-mean, with autocorrelation :
Step 2: Wiener–Khinchin. The autocorrelation representation with the one-sided spectrum (as in stochastic_noise_basics; [P2] takes this same Khinchin route on p.803, its Eq.(46)–(48)):
Step 3: substitute back and use the half-angle identity. with :
That is the entire origin of the kernel: one factor of 2 comes from "variance of a difference ", the other 2 from the half-angle identity; the two 2's multiply to 4, with not a single factor to spare. Equivalently, in filter language: is LTI filtering with ,
and a WSS process through an LTI filter obeys (one-sided in, one-sided out); integrating gives the same formula.
Route B: no stationarity assumed for — only the "frequency noise" need be stationary (the rigorous version)
Under white FM, is a random walk and outright diverges, so strictly speaking Route A does not hold. But the increments are fine. Define the instantaneous frequency offset (rad/s), assume is WSS; its one-sided spectrum follows from the differentiation relation:
Step 1: write the difference as a windowed integral of .
i.e., passes through a boxcar (rectangular-window) filter of length .
Step 2: frequency response of the window.
Step 3: combine. , and the cancels exactly: