The Definition of the ISF
β: This English translation is in beta — the Traditional-Chinese original is the authoritative version.
Prerequisites: oscillator_phase (the geometry of the limit cycle and excess phase), phase_vs_amplitude_noise (the tangential-phase vs radial-amplitude decomposition), impulse_to_phase_shift (the operational charge→voltage→phase chain).
This page answers a question that sounds simple and runs deep: what exactly is the ISF (Impulse Sensitivity Function)? It is a function — but what is its argument, what does its value represent, what are its units, why is it periodic, and why does every node and every noise source get one of its own?
The ISF is the central object of Hajimiri–Lee's 1998 LTV (Linear Time-Variant) phase-noise theory. Its operational definition: inject a packet of charge at waveform phase , and the resulting permanent phase shift is ([P1] from Eq.(10)-(11), p.182):
Written as an impulse response, this is [P1] Eq.(10), p.182:
Physical intuition (conclusion first): in steady state, the oscillator's state point travels round and round a closed trajectory (the limit cycle). Poke it with a finger (a current impulse) — the resulting displacement splits into a component tangential to the trajectory and a component radial, perpendicular to it. The tangential part changes how far along the loop the state has turned — that is, the phase — and because phase has no restoring force, this shift stays forever. The radial part changes the amplitude and gets slowly pulled back by the oscillator's amplitude-restoring mechanism, leaving no trace. is exactly the sensitivity weight answering "poke one unit of charge at phase — how much becomes permanent phase?" It is not the noise itself; it is the conversion coefficient that translates noise into phase.
Go ahead and poke it yourself — the animation below is the interactive version of that intuition:
How to drive it: after you press "Inject!", the animation waits until the dot on the orbit reaches the phase you selected with the slider, then fires a packet of charge , draws the vertical kick arrow, and decomposes it into a tangential component (orange, permanent) and a radial component (gray, relaxing exponentially). Try injecting at (the peak): the kick is almost purely radial — the dot is pushed off the cycle and pulled right back, barely separating from the pale ghost (the unperturbed reference), so . Now try (the zero crossing): the kick is almost purely tangential, and the dot falls permanently behind the ghost by (readout ). Crank up and press "Inject!" a few more times — the phase offsets never recover, and they accumulate. That is the entire intuition behind and LTV behavior.
The complete step-by-step charge→voltage→phase derivation lives in impulse_to_phase_shift. This page concentrates on what is and what properties has, and computes the ideal-LC from the geometry by hand.
Step 1: from impulse to state perturbation (recap of the key physics)
Run quickly through the chain from the previous page, because the definition of stands on it:
- current impulse → charge: a very narrow current pulse deposits a charge . Units ✓.
- charge → voltage step: on the node capacitance the voltage jumps instantaneously by ([P1] Eq.(9), p.182). Units ✓.
- voltage step → state perturbation: in an LC, a current impulse can only change the capacitor voltage instantaneously (the inductor current cannot jump), so the perturbation is a horizontal displacement along the voltage axis in state space.
At this point the state has been nudged slightly off the limit cycle. The key question: how much of that displacement becomes phase?
Step 2: projection onto the phase direction
Draw the oscillator state as a 2-D vector , where is the capacitor voltage and is proportional to the inductor current. The steady-state trajectory is a closed loop, and the state moves along it at angular rate . Define the phase on the loop, , as "the angle you have turned to".
A small displacement along the voltage axis, , strikes the loop at some point. Decompose this displacement at that point into the tangential direction (the phase direction, i.e. the direction of ) and the normal direction (the amplitude direction):
- Math used: project the perturbation vector onto the unit tangent of the limit cycle. This is the embryo of the rigorous machinery behind it — the PPV (perturbation projection vector) / Floquet theory (PPV/adjoint/Floquet are not in the five downloaded PDFs; they belong to Demir et al., external literature — see effective_isf).
- Why only the tangential part is kept: the normal component changes "how far from the loop" — the amplitude; a stable oscillation always has amplitude restoring that pulls it back (see phase_vs_amplitude_noise). The tangential component changes "the angle along the loop" — the phase; phase is the neutral direction with no restoring force, so the shift is retained permanently and accumulates (claim C2, [P1] Sec. III-A).
Divide the tangential projection by "how much state displacement corresponds to one unit of phase along the loop", and converts into . The entire conversion depends only on at which angle of the loop you strike — and that is why is a function of alone.
Step 3: normalize the ratio into the dimensionless
Chain Steps 1–2 together: , with a proportionality coefficient that depends only on the injection phase. Hajimiri–Lee normalize by the node's maximum charge swing and define the dimensionless function :
- Why is dimensionless: is in rad (dimensionless) and is a charge ratio (dimensionless), so must be dimensionless. Dimension check: dimensionless ✓.
- Why normalize by : it lets describe only the shape of "where the waveform is sensitive", decoupled from the absolute amplitude; the actual size of the phase shift is set by (the injected charge relative to the signal charge). This also yields the design conclusion C3 directly: phase noise — to push it down, "raise , shrink " ([P1] Eq.(21)).
The five properties of you must remember
| Property | Statement | Why |
|---|---|---|
| Dimensionless | carries no units | guaranteed by the dimension check (above) |
| -periodic | the argument is the "waveform phase", and the waveform itself is -periodic | |
| Not the noise itself | it is a "phase sensitivity" weighting function | the noise is ; is the kernel that translates into |
| Set by the large-signal periodic operating point | the full periodic steady-state waveform (including hard switching) must be known before can be determined | the projection direction varies along the limit cycle — it is the geometry of the large-signal trajectory ([P1] assumptions) |
| One per node / per noise source | different injection points and different devices see different | the projection direction depends on that node's capacitance and where the source injects |
"Not the noise itself" is the most common misconception. is a deterministic periodic function fixed by the circuit structure and its waveform — it has nothing to do with how large the noise is, or whether it is white or flicker. Swapping the noise source (changing ) does not change ; it changes the resulting . Only changing the injection node (changing the projection geometry) changes .
Hands-on derivation: for the ideal LC
A theory must not merely sound elegant. Here we compute end to end for a lossless parallel LC, the reference waveform for the entire site.
Setup: the ideal LC state executes uniform circular motion (harmonic resonance); write it as
where the first component is the capacitor voltage (output waveform ).
Step A — the state displacement caused by the injection: the current impulse changes only the capacitor voltage, , so
Step B — project onto the tangent. The tangent vector along the loop:
The phase increment obeys "tangential displacement = tangential speed × phase increment": dot into the unit tangent, then divide by :
Step-by-step algebra (every equals sign above unpacked — no skipped steps):
- Why divide by rather than : first dot into the unit tangent to get the length of the tangential displacement, then divide by "the arc length per unit along the loop, " to convert into ; the two factors of combine into the squared denominator.
- is the identity that lets the denominator collapse cleanly to (the uniform speed of circular motion).
Step C — substitute :
Step D — recognize : the node's maximum charge swing is . Substituting:
which lands exactly on the definition . Dimension check: dimensionless ✓; dimensionless ✓; rad ✓.
How to read this (matching the intuition of [P1] Fig. 4, p.181):
- Inject at the peak (, where the output is maximal): . The finger pokes along the voltage axis, almost perpendicular to the trajectory (purely radial) → it changes only the amplitude and barely touches the phase. The amplitude disturbance gets pulled back, so this poke "leaves no permanent trace".
- Inject at the zero crossing (, , maximum waveform slope): (maximal). The poke along the voltage axis is almost tangent to the trajectory (purely tangential) → nearly all of it becomes a permanent phase jump.
- In between: the tangential/radial split follows continuously.
This is the essence of LTV: the same , injected at a different instant (different ), produces a completely different effect. No LTI system exhibits this "it matters when you strike" behavior. See lti_vs_ltv.
Corresponding figures
(1) The LC waveform and its ISF: the top row plots and in alignment (peak against zero, zero crossing against peak); the bottom row demonstrates that vs is linear for small charge, and that a zero-crossing injection is a pure phase jump.

Corresponding formulas , ; source [P1] Figs. 4, 6, 7(a); script simulations/lab_02_lc_toy_model.py (main), parameters , , , . This is a pedagogical toy model, not transistor-level.
(2) Measuring numerically — seeing is believing: inject a small charge at a sweep of phases, measure the persistent phase offset, and back-solve for the ISF; it lies almost on top of the analytic (maximum error about 0.001):

Source: verification of the [P1] ISF definition; script simulations/lab_04_impulse_sweep.py (fig_isf_sweep), , 48 phase points. Details in lab_04. Toy model.
Numerical example (building a feel for the numbers)
Example A: pC, fC, , GHz.
Take (note that the ideal-LC tops out at 1; corresponds to , i.e. a moderately sensitive phase near ):
Converted to a timing error ():
Dimension check: ✓. Feel for the numbers: 1 fC (about 6240 electrons) at a moderately sensitive phase kicks out only ~16 fs; each kick is tiny, but the noise keeps kicking and the integral accumulates (next page).
from simulations.common.isf_utils import gamma_lc_ideal, impulse_to_phase_step
import numpy as np
# ideal LC ISF: Γ(θ) = -sin(θ)
theta = np.array([0.0, np.pi/2]) # peak, zero crossing
print(gamma_lc_ideal(theta)) # -> [ 0. -1.] 0 at the peak, |Γ|=1 at the zero crossing
dphi = impulse_to_phase_step(delta_q=1e-15, gamma_value=0.5, qmax=1e-12)
print(dphi, "rad") # -> 0.0005 rad
(Library: simulations/common/isf_utils.py.)
How the papers' ISF definitions compare
The same plays different roles in different papers, but the core object is one and the same:
| Source | Symbol / object | Context | Relation to this site's | Confidence |
|---|---|---|---|---|
| [P1] Hajimiri–Lee 1998 | phase noise (LTV impulse response) | the original source of this site's definition, Eq.(10),(11) | high (equations verified) | |
| [P2] Hajimiri–Limotyrakis–Lee 1999 | jitter/phase noise of ring oscillators | the same ; emphasizes the scaling ([P2] Eq.(16), p.794; v7 re-verified: the radical covers only the constant; the text's 4/N^1.5@η=0.75 and App.B Eq.(55) triple-confirm it. An earlier v3 pass misread this as N^-0.75) | high (statement and scaling both verified) | |
| [P3] Hong–Hajimiri 2019 Part I | injection locking/pulling (generalized Adler) | the same , moved to the injection context: ([P3] Eq.(30), p.2113; this site's adopts the sign convention opposite to [P3], hence the in front of the averaged term — numerically equivalent) | high (checked against the original PDF) | |
| [P4] Hong–Hajimiri 2019 Part II | (APF) | amplitude modulation (amplitude domain) | the amplitude version: projects the impulse onto the radial rather than the tangential direction; units ; in the ideal LC the ISF and APF are in quadrature ([P4] Eq.(26), p.2128) | ✓ (APF=[P4] Eq.(19), Fig. 5, p.2126, verified) |
| [P5] Hajimiri–Heald 1998 | — | sense amplifier | unrelated to the ISF (a sense-amplifier paper, honestly flagged as mislabeled) | high (clearly off-topic) |
Notation trap: [P3] writes , taking "the injection waveform phase " plus "the oscillator's own excess phase " as the argument — in essence it is still the same , only with the argument recast as a relative phase. The APF of [P4] is the amplitude sensitivity, complementary to (the phase sensitivity); in the ideal LC the two are orthogonal (one , the other ). See paper_004_injection_locking_part2.
Verified: the [P3] generalized Adler equations (Eq.30/33, p.2113–2114) and the [P4] APF (Eq.25/26, p.2128) have been checked against the original PDFs; see the paper_003 / paper_004 deep-dives.
Where it applies, where it fails
| Condition | When it holds | What happens when it fails |
|---|---|---|
| Small signal | tangential projection is linear; independent of | large injection → nonlinearity, AM–PM, itself is altered |
| Stable limit cycle (amplitude perturbations decay) | only the phase needs tracking | with no stable cycle or strong AM–PM, the phase-only model breaks down |
| Large-signal periodic steady-state waveform is known | the shape of can be determined | unknown waveform → unknown projection direction; extract by transient/adjoint |
| Pulse far narrower than the period | can be treated as instantaneous injection | wide pulses require the integral form, Eq.(11) (see next page) |
Worked examples
Format per spec §10.4: problem → step-by-step substitution (with units) → result → dimension check → one-line Python verification.
Example 1: at and the resulting
Problem: the ideal LC has . Inject the same packet of charge at three phases — (peak), (halfway), (zero crossing) — with the injected-charge ratio fixed at . Find and the phase step at each point.
Step-by-step substitution: compute first, then multiply by .
Result: the same packet of charge barely moves the phase at the peak (), delivers the maximum phase step at the zero crossing ( mrad), and lands in between at the halfway point ( mrad). This is the core LTV phenomenon: the effect is decided by when you strike.
Dimension check: dimensionless, dimensionless → dimensionless (rad) ✓. The minus sign means the phase is pushed backward (it lags); the order of magnitude is set by , the same order as Example A's rad (Example A uses ).
import numpy as np
from simulations.common.isf_utils import gamma_lc_ideal, impulse_to_phase_step
theta = np.array([0.0, np.pi/4, np.pi/2])
g = gamma_lc_ideal(theta) # -> [ 0. -0.7071 -1. ]
dphi = impulse_to_phase_step(delta_q=1e-3, gamma_value=g, qmax=1.0) # Δq/qmax = 1e-3
print(g) # ISF values
print(dphi) # -> [ 0. -7.07e-04 -1.0e-03 ] rad
Example 2: converting the zero-crossing injection into a timing error at 5 GHz
Problem: continuing Example 1 at ( mrad), convert to a timing error at GHz.
Step-by-step substitution:
Result: a single injection at the most sensitive phase with produces about 31.8 fs of timing error at 5 GHz (echoing the "1 mrad ≈ 32 fs" anchor in numerical_feeling).
Dimension check: ✓ ( is in rad/s).
from simulations.common.noise_utils import phase_to_time_error
print(phase_to_time_error(1e-3, 5e9)*1e15, "fs") # -> 31.83 fs
(Libraries: simulations/common/isf_utils.py, simulations/common/noise_utils.py.)
Key takeaways
- = the sensitivity weight answering "inject one unit of charge at waveform phase — how much becomes permanent phase?"
- The derivation chain: impulse → charge → voltage step → state displacement → projection onto the tangent (the phase direction) → permanent phase .
- is dimensionless, -periodic, not the noise itself, set by the large-signal periodic operating point, and there is one per node / per noise source.
- Ideal LC: — peak injection gives (amplitude only), zero crossing gives (maximum phase) — that is LTV.
- Across the papers: [P1][P2] use for phase noise; [P3] applies the same to injection; [P4]'s APF is the amplitude counterpart; [P5] is unrelated to the ISF.
- Sources: [P1] Eqs.(10),(11), p.182; verification figures in lab_02 / lab_04.
Further reading
- The operational step-by-step derivation: impulse_to_phase_shift
- Superposition over arbitrary noise (the convolution form): convolution_derivation
- The Fourier series of and frequency translation: fourier_series_of_isf
- Cyclostationary noise and the effective ISF (incl. PPV/adjoint external literature): effective_isf
- Phase-vs-amplitude geometry: phase_vs_amplitude_noise, oscillator_phase