From Impulse to Phase Shift — the Derivation
β: This English translation is in beta — the Traditional-Chinese original is the authoritative version.
Prerequisites: oscillator_phase (limit-cycle and phase/amplitude geometry), lti_vs_ltv (why an oscillator is LTV with respect to noise) | Up next: isf_definition (the rigorous ISF definition and the multi-node picture) → convolution_derivation (superposing arbitrary noise by convolution)
This page answers a very concrete question: when a current impulse is injected into some node of an oscillator, by how much does the oscillator's phase shift? The answer is the operational definition at the heart of ISF theory:
We will not simply memorize this line — we will derive it from the capacitor relation , one step at a time, stating at every step which physics is invoked, which approximation is made, what the units are, and how to run the dimension check.
Physical intuition (conclusion first): the noise current first becomes a packet of charge on the node; that charge nudges the oscillator's instantaneous state slightly off its steady orbit; how much of that nudge turns into phase and how much into amplitude depends on at which phase of the waveform you deliver the kick — and that conversion ratio is precisely the ISF . Kick where the waveform slope is large and the phase gets pushed a lot; kick at the peak and you mostly perturb the amplitude.
Step 1: the current impulse becomes charge
Current integrated over time is charge. A very narrow, very short current pulse injected into the node deposits a total charge
- Physics used: charge conservation / the definition of current, .
- Unit check: ✓ (amperes times seconds are coulombs).
- Why this is legitimate: when the pulse width is far smaller than the period , the injection can be treated as dumping onto the node "instantaneously".
Step 2: charge becomes a voltage step
The node carries a total capacitance . Charge appearing instantaneously makes the node voltage jump by a step ([P1] Eq.(9), p.181):
- Physics used: the capacitor relation ; differentiate for a small change, .
- Unit check: ✓.
- Key observation: in a parallel LC, a current impulse changes only the capacitor voltage (instantaneously); it cannot change the inductor current (an inductor current cannot jump). In state space, the perturbation is therefore a horizontal displacement along the voltage axis.
Step 3: the voltage step pushes the state off the limit cycle — but only the tangential component becomes phase
Draw the oscillator's state in a 2-D plane (say, horizontal axis = capacitor voltage , vertical axis = , proportional to the inductor current). In steady state, the state point circulates along the limit cycle. The voltage jump from Step 2 shoves the state point sideways:
- The radial component, pushing away from the cycle → changes the amplitude . But the oscillator has an amplitude-restoring mechanism, so this part is slowly pulled back and leaves no permanent residue.
- The tangential component, along the cycle → changes the phase . Phase has no restoring force, so this part stays forever.
The same , kicked at a different phase , splits differently between tangential and radial. Collect the "-to- conversion ratio" into a periodic function that depends only on the injection phase — that is the ISF:
The figure below draws this decomposition on the state plane. The same packet of charge produces a horizontal (the current kicks only the capacitor-voltage axis; the inductor current cannot jump), which the dashed lines split into a tangential component along the cycle (green — permanent phase) and a radial component off the cycle (red — decays). Injected near the zero crossing, the horizontal kick lands almost entirely on the tangent (the phase gets pushed a lot); injected near the peak, it lands almost entirely on the radius (only the amplitude changes). The lower-left corner of each panel prints the value of — the tangential fraction is exactly , which makes the ideal-LC geometrically inevitable (the algebraic derivation of is in isf_definition).

- Math used: project the perturbation vector onto the tangent direction (the phase direction) of the limit cycle.
- Why only the tangential part is kept: see phase_vs_amplitude_noise and oscillator_phase — amplitude is pulled back by the restoring mechanism; phase is not.
Step 4: normalize by to get the dimensionless ISF
Chain Steps 1–3 together: . Hajimiri–Lee chose to normalize by the node's maximum charge swing , writing that "phase-conversion ratio" as the dimensionless function ([P1] Eq.(10)–(11), p.182):
- Why the normalization: it turns into a dimensionless, amplitude-independent "shape" that describes only where the waveform is sensitive. The actual magnitude of the phase shift is set by (the injected charge relative to the signal charge).
- Why is dimensionless: is in rad (dimensionless) and is dimensionless, so must be dimensionless. Dimension check: dimensionless ✓.
- Small-signal assumption: Step 3 treats the projection as linear, which requires (the kick must not knock the oscillator over). [P1] Fig. 6 confirms, on an actual Colpitts and a 5-stage ring, that is proportional to for small charge.
The corresponding impulse response (setting up the next chapter)
Because the phase step is retained forever, writing it as an impulse response brings along a unit step ([P1] Eq.(10)):
Note that it depends on the absolute injection instant (through ), not merely on — the very signature of an LTV (linear time-variant) system. The next chapter, convolution_derivation, uses it to superpose an arbitrary noise current. The complete ISF definition and the multi-node discussion are in isf_definition.
Numerical example (building a feel for the numbers)
Example A: pC, fC, , GHz.
Phase step:
In degrees: .
Converted to a timing error (using ):
- Dimension check: ✓ (note that carries units of rad/s).
- Feel for the numbers: at 5 GHz (a 200 ps period), a single 1 fC packet of charge (about 6240 electrons) causes only ~16 fs of timing error even at the most sensitive phase. One kick is tiny — but the noise kicks continuously, and the integral accumulates (next chapter).
Quick verification with the built-in functions:
from simulations.common.isf_utils import impulse_to_phase_step
from simulations.common.noise_utils import phase_to_time_error
dphi = impulse_to_phase_step(delta_q=1e-15, gamma_value=0.5, qmax=1e-12)
dt = phase_to_time_error(dphi, f0=5e9)
print(dphi, "rad", dt*1e15, "fs") # -> 0.0005 rad 15.92 fs
(Full scripts: simulations/common/isf_utils.py, simulations/common/noise_utils.py.)
Seeing is believing: measuring directly
lab_04 injects a small charge at a sweep of phases in simulation, measures the persistent phase offset, and back-solves for the ISF; the result agrees almost perfectly with the ideal-LC (maximum error about 0.001):

Where it applies, where it fails
| Condition | When it holds | What happens when it fails |
|---|---|---|
| Small signal | is linearly proportional to | large injection → nonlinearity, AM–PM, and the ISF itself is altered |
| Amplitude perturbations decay | only the phase needs tracking | breaks down with strong AM–PM or without a stable limit cycle |
| Pulse far narrower than the period | can be treated as an instantaneous injection | wide pulses require the integral form, Eq.(11) |
| The correct is known | predictions are accurate | must be extracted by transient/adjoint simulation (see effective_isf) |
Key takeaways
- Noise current → charge → voltage jump → projected through the ISF into phase .
- ; is dimensionless, -periodic, and depends on the injection phase.
- normalizes into a "shape"; the magnitude of the phase shift is set by .
- A single 1 fC at 5 GHz, with and pC → 16 fs.
- Sources: [P1] Eq.(9) p.181, Eqs.(10),(11) p.182; verification figure in lab_04.
Further reading
- The geometry one step upstream: oscillator_phase
- The rigorous ISF definition and multiple nodes: isf_definition
- Superposing arbitrary noise: convolution_derivation
- Numerical feel, all in one place: numerical_feeling