β: This English translation is in beta — the Traditional-Chinese original is the authoritative version.
Math Toolbox — Math Identities
See also: notation (authoritative symbols and units), glossary (Chinese–English term intuitions), convolution_derivation (LTV convolution uses the tools on this page), white_noise_to_phase_noise (application site for Parseval/integrator response)
ISF theory looks very "circuits," but its skeleton is really a handful of standard math tools combined repeatedly. This page collects them, gives each a short proof or citation, and marks which page on the site uses it. Come back here when a derivation stalls — it beats memorizing formulas by rote.
How to use this page: each section first gives "one line on what it says," then "why it holds" (proof or citation), and finally "where on the site it's used." Every quantity carries units — doing a dimension check is always the fastest way to catch mistakes.
1. Fourier series and Parseval (harmonic decomposition of the ISF)
One line: any -periodic real function can be split into DC plus a set of harmonics; its "total energy" equals the sum of each harmonic's energy. This is the mathematical basis for splitting the ISF into .
The ISF is a dimensionless, -periodic function, written as a cosine series ([P1] Eq.(12), p.183):
Write the argument as . Parseval's relation ([P1] Eq.(20), p.185):
Why it holds (short proof): square the series and integrate from to . Cosines of different harmonics are mutually orthogonal,
so the cross terms all vanish, leaving only the square terms: each term contributes , and the DC term contributes . Dividing both sides by gives . Hajimiri–Lee write the DC term as (note the term is counted as only half in the sum), and rearranging gives exactly the form above.
rms definition consistency check: (rms is just "root mean square": square first, average, then take the root). Substituting into the right-hand side of Parseval: ✓.
Numerical feel: for the ideal LC, , only (all others 0). , so ; the right-hand side of Parseval, ✓.
Used on this site: fourier_series_of_isf (splitting the ISF into harmonics, explaining how noise near downconverts), rms_isf, lab_05 (numerically verifying ).
2. Convolution and the LTI vs LTV distinction (why the oscillator is "time-variant")
One line: an LTI (linear time-invariant) system's impulse response depends only on "how long ago" ; an LTV (linear time-variant) system also depends on "at what instant it's kicked" . The oscillator's response to noise is LTV — this is the core of ISF theory.
LTI superposition is standard convolution:
- Core feature: depends only on the difference (time-invariant). Delay the input, and the output is delayed unchanged.
The oscillator's excess-phase impulse response, however, is ([P1] Eq.(10), p.182):
It simultaneously depends on (via — at what phase of the waveform it's kicked) and on (via the step — it persists permanently after being kicked). Superposing all past noise ([P1] Eq.(11), p.182):
Why it's LTV, not LTI: because is a periodic function of the absolute instant of injection. The same impulse, kicked at the peak (), barely changes phase; kicked at the zero crossing ( maximal), changes it the most. This is exactly [P1] Sec. III's claim C1: "the oscillator's response to noise is linear time-variant, not LTI."
Unit check: has units of ( dimensionless, in C, dimensionless), has units dimensionless rad ✓.
Used on this site: impulse_to_phase_shift,
convolution_derivation,
lab_04 (lti_vs_ltv_impulse_response.png:
LTI's step height is fixed, LTV's step height varies with injection phase).
3. The integrator's frequency response (why white noise → 1/f² phase noise)
One line: phase is the "integral" of noise current (the upper limit of Eq.(11) is ); an integrator in the frequency domain is , and in power terms . This is the source of the dB/dec slope.
For an ideal integrator , with a single tone :
- Magnitude: . Power (PSD multiplier): .
- dB slope: , dB per decade — exactly the -region slope of phase noise.
Connecting to the ISF: taking 's rms as an effective gain, the noise-current PSD , after "multiplying by then integrating," gives the phase PSD:
- Unit check (using ):
Factor-of-2 note: using the equation above (a clean time-domain derivation) gives , corresponding to a denominator of ; whereas [P1] Eq.(21), p.185 writes . The factor-of-2 difference is an SSB bookkeeping convention, a well-known minor point of contention in the literature, and does not affect the scaling or the dB/dec slope. See white_noise_to_phase_noise for details.
Used on this site: white_noise_to_phase_noise, lab_06.
4. The PSD of a stochastic process and the Wiener–Khinchin theorem
One line: a stationary stochastic process's "power spectral density" (PSD) is the Fourier transform of its "autocorrelation function." This connects time-domain noise (autocorrelation) with frequency-domain noise (PSD), and is the foundation of every phase-noise calculation.
For a stationary stochastic process , the autocorrelation is . Wiener–Khinchin theorem:
- White-noise special case: (completely uncorrelated at different instants) (frequency-independent — that's what "white" means). This site uses the single-sided PSD (A²/Hz).
- Variance (total power):
This is where the phase-variance formula comes from: phase variance is the integral of the phase PSD over frequency ([P1]'s usage convention; a standard stochastic-process result).
Unit check: is in rad²/Hz, has units ✓.
External source: Wiener–Khinchin is a standard stochastic-process theorem (not among the five downloaded PDFs, standard textbook material, e.g. Papoulis; [P1] uses its conclusion directly).
Used on this site: psd_phase_noise_jitter, stochastic_processes_recap, lab_06 (estimating PSD via Welch's method), lab_08 (integrating PSD to get jitter).
5. / dB and dBc/Hz conversion
One line: dB is a "log scale of a power ratio"; dBc/Hz is the phase-noise unit "power relative to the carrier, per Hz of bandwidth." Remembering " power dB, power dB" is enough to get by.
Definition (power ratio):
- Voltage/amplitude ratio: because power amplitude, (an extra factor of 2).
- Inverse conversion: .
- SSB phase noise 's unit is dBc/Hz: "c" = relative to carrier, "/Hz" = per unit bandwidth. Its relation to the phase PSD (small-angle approximation, see Section 6):
Numerical feel (canonical example C): dBc/Hz , rad²/Hz. 10× better in power ( dBc/Hz) = better in amplitude (rms).
Common conversion table:
| Power ratio | dB | Voltage ratio | Intuition |
|---|---|---|---|
| dB | double the power | ||
| dB | one order of magnitude | ||
| dB | two orders of magnitude | ||
| dB | halve it |
Used on this site: psd_phase_noise_jitter, numerical_feeling (Example 3, the full set of conversions), white_noise_to_phase_noise.
6. The small-angle PM approximation (where comes from)
One line: when phase jitter is small, the single-sideband power of a phase modulation is about half the phase PSD. This is the bridge that converts "phase PSD" into the "dBc/Hz" on a datasheet.
Consider a phase-modulated carrier: . When rad (small-angle), expand trigonometrically and approximate , :
- The first term is the pure carrier; the second term is the "phase sideband" — it moves the baseband to either side of the carrier.
- For a phase component at a single offset frequency , the sideband power is proportional to the power of ; converting to the single-sideband (SSB) density relative to the carrier gives
That comes from the bookkeeping of "total phase power split evenly between the upper and lower sidebands."
Applicability condition (important): holds only for rad. If the integration bandwidth is wide enough that approaches or exceeds 1 rad, this approximation fails (the carrier gets "smeared out"), and a more complete treatment is needed. Canonical example C's mrad , so it is safe.
Used on this site: psd_phase_noise_jitter, numerical_feeling, Eq.(16) of the spec ().
7. Trigonometric identities (the workhorse behind deriving Eq.(15)–(18))
One line: when multiplying "some harmonic of the ISF" by "an injected single tone" and integrating over time, you use product-to-sum identities to split the product into a slow term (survives) and a fast term (vanishes after integration).
For an injected single tone near DC, the phase response ([P1] Eq.(13), p.183's term) requires computing , directly giving [P1] Eq.(15), p.183:
When the tone is near , use product-to-sum:
- The first term has frequency (fast); after integration its amplitude , tiny, negligible.
- The second term has frequency (slow, near DC); after integration its amplitude , survives.
Keeping only the slow term and integrating gives [P1] Eq.(16)/(17), p.183:
That is exactly what falls out of the product-to-sum step. Physical meaning: the ISF's -th harmonic acts like a mixer, "downconverting" noise near into low-frequency phase modulation near the carrier — this is the frequency-translation picture of phase noise.
Common identity quick reference:
| Identity | Use |
|---|---|
| separating slow/fast terms (Eq.16/17) | |
| computing (rms of is ) | |
| integrator (Eq.15) |
Used on this site: fourier_series_of_isf, convolution_derivation, the orthogonality used in Section 1's Parseval.
8. Random walk variance (the law of accumulated jitter)
One line: an open-loop oscillator has no absolute time reference, so each period's phase error accumulates independently like a "drunkard's walk"; the variance of the error grows linearly, so the standard deviation grows as .
Suppose each period injects an independent, zero-mean phase error with variance (the result of white noise integrated over one period). After periods the total phase error is . Because each is independent, the variances add (cross-correlation terms have zero expectation):
- The measurement interval is , so , .
- Converting to time jitter () and taking the square root:
is a proportionality constant specific to each device, with units ; it is determined by the same ratio ([P2] Eq.(12), p.793: , verified verbatim).
Key intuition: variance (power) grows linearly, standard deviation (rms) grows as a square root. This is the hallmark of a random walk; it appears whenever phase errors accumulate independently with no restoring force (contrast: with a PLL locked, there is a restoring force and jitter is suppressed, no longer growing without bound). Corresponds to claim C6.
Numerical feel: at a spacing of 1000 periods (at 5 GHz, ns), is that at a spacing of 10 periods ( ns) — a 100× longer interval gives only 10× more jitter.
Used on this site: lab_03
(ring_oscillator_timing_noise_accumulation.png: random walk),
psd_phase_noise_jitter,
serdes_clocking_connection.
9. Large-angle PM: the Bessel sideband ladder and where the small-angle approximation fails
One line: Section 6's small-angle PM result () is only the first-order approximation of "large-angle phase modulation" valid for ; the full solution is an infinite ladder of Bessel sidebands, with the carrier and each sideband having amplitude and respectively. This section builds the full ladder and quantifies exactly when the small-angle approximation starts to break down.
9.1 The Jacobi–Anger expansion (external literature, not in this site's 5 PDFs)
For any real (the modulation index) and angle , the Jacobi–Anger expansion (a standard special-function identity, e.g. Abramowitz & Stegun 9.1.42; external literature, not in this site's 5 PDFs):
where is the Bessel function of the first kind, order . Why it holds (one-line provenance): is -periodic in ; expanding it in a Fourier series, the integral defining its coefficients is exactly one of the standard integral representations of — that integral representation itself is not re-derived here, only its result is cited.
Properties (used below): (symmetric for even , antisymmetric for odd ), and the Bessel Parseval-like identity:
This can later be used to check "the sideband ladder's total power is conserved" — a complete analogy to the Parseval relation for the ISF's Fourier coefficients in Section 1.
9.2 The sideband ladder for single-tone PM
Consider a carrier phase-modulated by a single audio tone (writing Section 6's as , where is the modulation index, i.e. the peak phase deviation, units rad):
Writing this as and substituting the Jacobi–Anger expansion:
This is the full Bessel sideband ladder:
- Carrier (): amplitude , located at .
- -th sideband (): amplitude , located at .
- Because , the upper and lower sidebands have equal magnitude (), differing only in sign (phase).
Unit check: is the peak phase, arising from the integral , with units rad; and are both dimensionless phase angles (rad), and itself is dimensionless (an amplitude ratio), so substituting into raises no unit issue; has the same units as the original (normalized amplitude) ✓.
9.3 The small- limit: recovering Section 6's small-angle approximation
Small-argument expansion of the Bessel functions (standard external-literature result):
Substituting back into the sideband ladder: the carrier amplitude (barely attenuated at first order), and the first-sideband amplitude . The single-sideband relative power:
This is exactly Section 6's small-angle PM result ( is the peak phase, is its power) — the Bessel sideband ladder automatically converges to the small-angle PM formula as ; the two are the first-order and full versions of the same thing. The higher-order sidebands vanish rapidly as (), which is why it is reasonable for the small-angle approximation to keep only the first-order sideband.
9.4 Failure boundary: where does the small-angle approximation err by 1 dB?
The small-angle approximation replaces with the first-order term ; as grows, this approximation drifts from the true value. Define the error (comparing the amplitude ratio of the two, in dB):
( as ; as grows, 's growth slows, the ratio drops below 1, and
, i.e. the small-angle approximation overestimates the sideband.) Solving numerically for
dB (root-finding scipy.optimize.brentq on scipy.special.jv, see the Python block below):
In plain terms: as long as the peak phase deviation rad, the small-angle approximation is accurate to within 1 dB; beyond this range (e.g. wideband FM, large-index PM, or an integration bandwidth wide enough that approaches 1 rad), the full Bessel sideband ladder must be used — the small-angle formula no longer applies. This echoes Section 6's qualitative statement that it "holds only for rad," now with a quantitative boundary.
9.5 Carrier-suppression null and Carson bandwidth (external literature, not in this site's 5 PDFs)
Carrier suppression: as grows to the first root of , the carrier vanishes completely and all power is transferred to the sidebands — a classic phenomenon in FM/PM systems:
Carson's bandwidth rule (external literature, an engineering rule of thumb, not in this site's 5 PDFs): in practice the sideband ladder has infinitely many terms, but decays rapidly to negligible size once , so an effective bandwidth is defined ():
At , ; at small-angle , (barely more than a single sideband pair, consistent with the picture that "small-angle PM has only the sidebands").
9.6 Python check: the full sideband ladder at three values of
import numpy as np
from scipy.special import jv, jn_zeros
from scipy.optimize import brentq
for beta in [0.1, 1.0, 2.405]:
print(f"beta={beta}")
for n in range(5):
print(f" J_{n}({beta}) = {jv(n, beta):.6f}")
# -> beta=0.1: J0=0.997502, J1=0.049938, J2=0.001249, J3=0.000021, J4≈0
# -> beta=1.0: J0=0.765198, J1=0.440051, J2=0.114903, J3=0.019563, J4=0.002477
# -> beta=2.405: J0=-0.000091(≈0), J1=0.519110, J2=0.431783, J3=0.199032, J4=0.064763
# carrier null (classic 2.405)
z0 = jn_zeros(0, 1)[0]
print(f"first zero of J0: {z0:.6f}")
# -> first zero of J0: 2.404826
# small-angle approximation vs exact
for beta in [0.1, 0.3, 0.5, 1.0]:
J0, J1 = jv(0, beta), jv(1, beta)
print(f"beta={beta}: J0={J0:.6f} vs 1-b^2/4={1-beta**2/4:.6f} | "
f"J1={J1:.6f} vs b/2={beta/2:.6f}")
# -> beta=0.1: J0=0.997502 vs 0.997500 | J1=0.049938 vs 0.050000
# -> beta=1.0: J0=0.765198 vs 0.750000 | J1=0.440051 vs 0.500000
# 1 dB failure boundary: 20log10(J1(beta)/(beta/2)) = -1 dB
f = lambda b: 20*np.log10(jv(1, b)/(b/2)) - (-1.0)
beta_1dB = brentq(f, 0.5, 1.5)
print(f"beta_1dB = {beta_1dB:.4f}")
# -> beta_1dB = 0.9505
# Parseval check: sum J_n^2 = 1
for beta in [0.1, 1.0, 2.405]:
s = sum(jv(n, beta)**2 for n in range(-50, 51))
print(f"beta={beta}: sum J_n^2 = {s:.8f}")
# -> all beta give 1.00000000
Used on this site: Section 6's small-angle PM (this section is its full version), white_noise_to_phase_noise (the small-angle premise behind the single-tone sideband Eq.(16)–(18)), psd_phase_noise_jitter (the applicability boundary rad, now with a quantitative number rad).
Quick-reference summary table
| Tool | Core formula | Main use on this site |
|---|---|---|
| Fourier/Parseval | ISF harmonic decomposition, | |
| LTV convolution | phase superposition, LTV vs LTI | |
| integrator | white noise → ( dB/dec) | |
| Wiener–Khinchin | PSD ↔ autocorrelation, variance | |
| dB / dBc/Hz | unit conversion | |
| small-angle PM | dBc/Hz ↔ phase PSD | |
| product-to-sum | Eq.(15)–(18) mixing | |
| random walk | accumulated jitter | |
| Bessel sideband ladder | , small-angle , fails for | large-angle PM, carrier suppression at |
Further reading
- Symbol and unit summary table: notation
- Stochastic-process recap: stochastic_processes_recap
- Numerical-feel exercises: numerical_feeling
- Equation index (each equation → derivation page → source): equation_index
- Full literature list: references