The rms ISF and the Parseval Relation
β: This English translation is in beta — the Traditional-Chinese original is the authoritative version.
Prerequisites: fourier_series_of_isf (the coefficients of ), stochastic_noise_basics (Parseval / power spectra), convolution_derivation (the phase integral).
The previous page, fourier_series_of_isf, decomposed the ISF into a set of Fourier coefficients and showed that each folds the noise near back onto the carrier. This page answers:
When the device noise is flat white noise and the contributions of all bands must be summed, can a single number describe the entire ISF's contribution to phase noise? It can — that number is the rms value of the ISF, , tied to the sum of squared coefficients by Parseval's theorem ([P1] Eq.(20), p.185):
Physical intuition (conclusion first): white noise is equally strong in every band, so the "total folded-back power" is proportional to the sum of the squares of all coefficients, . Parseval tells us this sum equals twice the mean square of the ISF over one period, i.e. . The messy band-by-band summation thus collapses into one clean shape metric, — which (together with ) sets the level of the phase noise. Intuitively: the "quieter" the ISF is overall (the smaller its rms), the less sensitive the oscillator is to white noise.
Step 1: Parseval's theorem — time-domain energy = sum of squared frequency-domain coefficients
Parseval's theorem states: the mean square of a periodic function over one period equals the sum of the mean squares of its Fourier components. For the standard cos/sin expansion :
- Math used: the basis is orthogonal. After expanding , all cross terms such as () integrate to 0; only the "self-with-self" terms survive.
- Where each term's coefficient comes from: (), so each contributes to the mean square; the constant term has mean square (the mean square of a constant is its own square — no ). This factor difference between the DC and AC terms is the single most error-prone spot in the entire derivation; Step 4 is devoted to it.
Step-by-step algebra (killing the cross terms one at a time, no skipped steps): first expand the square of in full, then integrate class by class.
Term by term (with the orthogonality used at each step called out):
- (I): the integrand is a constant, .
- (II): every (), so the whole block = 0. This is "the constant is orthogonal to every harmonic."
- (III): expanding the square produces three kinds of integrals. First, and (); second, (all of these vanish — cos and sin are mutually orthogonal). Only the "self-with-self" terms survive, each weighted :
Collecting (I)+(II)+(III) recovers the line above, . The soul of the whole passage is one sentence: the basis is orthogonal, so the squared integral keeps only the "diagonal" terms.
Step 2: switching to the amplitude–phase coefficients
Use the correspondence from the previous page: (), and the DC coefficient . Substituting into Step 1:
- Simplification trick: note that . To fold DC into the same summation, Hajimiri–Lee adopt the bookkeeping " carries half weight inside the sum" — i.e. the term contributes . The next step shows this is exactly what lets the total be written in its cleanest form.
Step 3: arriving at [P1] Eq.(20) — defining
Multiply both sides of Step 2 by 2:
In [P1] Eq.(20), Hajimiri–Lee define the left side as and write the right side as — i.e. by convention the term inside the sum stands for (not ). This yields the signature equation at the top of this page:
where is simply the root-mean-square of the ISF:
- Dimension check: is dimensionless ⟹ is dimensionless ⟹ dividing the integral by (rad) and taking the square root leaves it dimensionless ✓. is dimensionless too, so both sides agree.
- This site's Python:
gamma_rms(theta, gamma)computes exactly (see thesimulations/common/isf_utils.pydocstring, explicitly matched to Eq.(20)).
Step 4: teaching note on the DC-term factor (the most error-prone spot)
Read this section carefully — otherwise you will be off by a factor when computing the corner ([P1] Eq.(24)). Keep the three flavors of "" straight:
| Name | Expression | Appears in |
|---|---|---|
| the ISF's DC value (its mean) | the constant term in Eq.(12); the single-tone response in Eq.(15) | |
| the Fourier DC coefficient | () | the bar chart; the term of Eq.(20) |
| the contribution in the Parseval sum | (not !) | the right side of Eq.(20), |
- Why DC enters the sum at "half weight": an AC harmonic has mean square (the time average of cosine, ); but DC is a constant, whose mean square is . For "multiply by 2 and write it as " to be formally consistent for every , the term must count only (i.e. treat as "half a coefficient" in the rms sum).
- Teaching reminder: many textbooks (and the notation traps in this site's notation) hammer this point — is the "coefficient"; the DC "value" is . The constants in the phase-noise formulas (e.g. in Eq.(23), in Eq.(24)) are exactly this factor carried all the way through. Copy the equations from Section 3 of the spec verbatim — do not re-insert factors yourself — and you will not go wrong.
Step 5: how sets the phase noise
Substitute Eq.(20) into the white-noise phase-noise summation ([P1] Eq.(19), p.185):
Using to replace , the in the denominator and the in the numerator reduce to , giving the signature result ([P1] Eq.(21), p.185):
- How to read it: phase noise is proportional to and falls with offset as (i.e. dB/dec, the region). Two design knobs: increase (the signal charge swing) and shrink (keep the ISF quiet overall).
- Factor-of-2 teaching note: a clean time-domain "white noise × ISF → integrate" derivation gives , corresponding to ; [P1] Eq.(21) writes . The factor of 2 comes from the SSB (single-sideband) bookkeeping convention — a well-known small dispute in the literature — and does not affect the scaling or the dB/dec slope. Full discussion in white_noise_to_phase_noise.
Numerical examples (building a feel)
Example 1: of the ideal LC (two methods cross-checked)
Take .
Method A (integral):
Method B (coefficients): the previous page gave , all others 0. By Eq.(20), ⟹ . The two agree ✓.
- Feel: is the benchmark value for a "clean single-tone ISF". This site's canonical worked example (Example B) uses as the representative value — slightly below the ideal , corresponding to an ISF somewhat flattened by factors other than .
Example 2: phase noise with (canonical Example B)
GHz, MHz, pC, , A²/Hz.
First compute rad/s, . Use Eq.(21) (i.e. the SSB convention — see the factor-of-2 note in Step 5; the clean time-domain version would come out 3 dB higher):
The bracket , so
- Dimension check: ; since , , and rad is dimensionless, this reduces to dimensionless (the per-Hz is already included); after the , dBc/Hz ✓.
- Feel: this is the number for a "single ideal white-noise source"; a real circuit has multiple sources, cyclostationarity, and flicker, and will come out higher (worse). Full derivation in white_noise_to_phase_noise.
Figure 1: verifying with the coefficient spectrum
The figure below (fig_coefficients from lab_05, n_harmonics=8) plots the as a bar chart and compares, on the plot,
" (computed on the coefficient side)" against " (computed on the integral side)" —
they match, which is precisely the numerical verification of Parseval ([P1] Eq.(20)).

- Matching equation: [P1] Eq.(20).
- How to read it: square each bar's height and add them up (remember the bar counts at "half weight", ) — the total equals . This gives a practical sanity check: after computing the coefficients, reconcile once against Parseval and you immediately catch errors such as a misaligned numerical-integration window (endpoint not included).
- Code verification:
import numpy as np
from simulations.common.isf_utils import (
gamma_lc_ideal, compute_fourier_coefficients, gamma_rms,
)
theta = np.linspace(0.0, 2 * np.pi, 4096, endpoint=True) # must include endpoint 2*pi
gamma = gamma_lc_ideal(theta) # -sin(theta)
a0, a, b, c, phase = compute_fourier_coefficients(theta, gamma, n_harmonics=8)
# Left side: sum c_n^2, with n=0 at half weight (c0^2 / 2)
lhs = 0.5 * c[0] ** 2 + np.sum(c[1:] ** 2)
# Right side: 2 * Gamma_rms^2
rhs = 2.0 * gamma_rms(theta, gamma) ** 2
print(lhs, rhs) # -> 1.0 , 1.0 (ideal LC: c1=1, the rest ≈0)
print(gamma_rms(theta, gamma)) # -> 0.7071 (= 1/sqrt(2))
- Toy-model note: the ISF used is a pedagogical toy / ideal-LC analytic form, not transistor-level.
- Full script:
simulations/lab_05_fourier_isf.py.
Figure 2: LC vs ring ISF — how varies with
The figure below (fig_lc_vs_ring_isf from lab_03) contrasts the ideal LC's with the ring's toy triangular ISF
(). The ring's sensitivity is concentrated at the transitions; the more stages , the flatter the overall ISF and
the smaller .

- Matching references: [P1] Fig. 7 (LC vs ring waveforms and ISFs); [P2] Fig. 8 ( vs ).
- How to read it: the LC ISF is a smooth single tone; the ring's energy is squeezed into narrow transitions — with more stages, each transition occupies a smaller fraction of the period, and drops.
- Toy-model note: this site's
gamma_triangularis a pedagogical toy ISF with "energy concentrated at the transitions", not a transistor-level extraction (see theisf_utils.pydocstring).
The ring's scaling
[P2] quantifies the observation above into a scaling law ([P2] Eq.(16), p.794):
-
Intuition: as the stage count increases, (i) each stage's transition becomes steeper and the ISF pulse narrower (rms drops), and (ii) the number of transitions per period grows but is diluted by the period length. Combined, this gives (i.e. ).
-
Full expression: [P2] Eq.(16) is
where is the stage-delay proportionality constant ([P2] Eq.(14), — not ). The square root covers only the constant ; sits outside the radical, so (at , this is , the solid line in [P2] Fig.8; [P2] Eq.(16), p.794 — re-verified in v7: the main text's statement "the dependence of ", the numerical anchor, and an independent algebraic derivation from App.B Eq.(52)+(54) all agree on . A v3 audit misread the radical's scope and mistakenly changed this to , mislabeling it "verified" — that was a misreading, not a formula-vs-text inconsistency; v7 corrects it back).
-
Key conclusion: [P2] further shows that under the constraint of fixed and power , a single-ended ring's phase noise/jitter is nearly independent of the stage count ([P2] Sec.V, Eq.(23)/(25), p.796, ).
-
Prefactor note: the prefactor of [P2] Eq.(23) is ( being the stage-delay proportionality constant of Eq.(14), ); enters only through . Its lower bound ([P2] Eq.(25)) is . (v2 mistakenly changed this to and mislabeled it "verified verbatim"; v3 corrected it against the original PDF, p.796.)
-
Full LC-vs-ring discussion in lc_vs_ring; the random walk of accumulated jitter, ([P2] Eq.(8)), is in lab_03_ring_oscillator_toy_model.
Validity and failure conditions
| Condition | When it holds | What happens when it fails |
|---|---|---|
| is a -periodic steady-state function | Parseval holds exactly | not usable when non-periodic (transient/injection) |
| white noise is flat (equal strength in every band) | sums everything in one shot | colored noise must be weighted band by band — |