β: This English translation is in beta — the Traditional-Chinese original is the authoritative version.
Figure Index
This site has two kinds of figures: (a) figures we generate with Python (all teaching toy/conceptual models, not transistor-level), and (b) figures inside the cited paper PDFs. This page files every one of them, so you can trace any figure back to "which script, which function, what parameters, which formula behind it, which paper it comes from".
How to read this table:
- Toy? = whether it is a simplified teaching model (not transistor-level).
- Redrawn? = whether it was redrawn directly from a paper figure (our generated figures are always re-simulated, never traced, so mostly No).
- Verify? =
manual_verification_needed; entries flagged ⚠️ still need manual confirmation of constants/correspondence.- Re-run everything in one shot:
python scripts/run_all_sims.py(outputs tostatic/figures/). Data comes fromextracted/extracted_figures.json.
(a) Generated figures (14)
| Figure | Generated By (script / function) | Formula Behind It | Source | Teaching Message | Toy? | Redrawn? | Verify? |
|---|---|---|---|---|---|---|---|
limit_cycle_phase_amplitude.png | simulations/lab_01_sinusoidal_oscillator.py / fig_limit_cycle (params: f0=1.0, fs=4000, mu=0.6, start=(1.7,0)) | 2-D state model ; tangential=phase, radial=amplitude | [P1] Fig. 4(c) (limit cycle, peak vs ZC injection) | phase=tangential (persists), amplitude=radial (pulled back) | Yes | No | No |
waveform_with_impulse_markers.png | lab_01_sinusoidal_oscillator.py / fig_impulse_markers (f0=1.0, amp=1.0) | ; at peak , at ZC maximal | [P1] Fig. 4(a),(b) | same impulse, different injection phase → different effect (LTV) | Yes | No | No |
lc_waveform_and_isf.png | lab_02_lc_toy_model.py / main (f0=1.0, fs=8000, mu=0.3, dq/qmax∈[-0.05,0.05]) | ; | [P1] Figs. 4,6,7(a); Eqs (10),(11) | the LC's ISF; ; ZC injection = pure phase jump | Yes | No | No |
ring_oscillator_timing_noise_accumulation.png | lab_03_ring_toy_model.py / fig_accumulation (f0=5e9, sigma_edge=50 fs, max_lag_periods=500, n_trials=2000) | edge-time random walk → | [P2] Eq.(8), accumulated jitter | accumulated jitter is a random walk, | Yes | No | No |
lc_vs_ring_isf_comparison.png | lab_03_ring_toy_model.py / fig_lc_vs_ring_isf (lc=-sin, ring_N=[5,15]) | vs ring triangular (peak ); scaling | [P1] Fig. 7; [P2] Fig. 8 ( vs ) | ring sensitivity concentrates at transitions; gives | Yes | No | No |
sinusoidal_impulse_phase_sweep.png | lab_04_impulse_sweep.py / fig_isf_sweep (f0=1.0, fs=8000, dq/qmax=1e-3, n_points=48, mu=0.3) | [P1] Eqs (10),(11); Fig. 4 | phase sensitivity varies with the injection phase | Yes | No | No | |
isf_impulse_sweep_sinusoidal.png | lab_04_impulse_sweep.py / fig_isf_sweep (same params as above) | numeric vs analytic (max err ~0.001) | validation of the [P1] ISF definition | numerically extracted ISF, near-perfect match to the theoretical | Yes | No | No |
lti_vs_ltv_impulse_response.png | lab_04_impulse_sweep.py / fig_lti_vs_ltv (f0=1.0) | LTI vs LTV | [P1] Sec. III (LTV nature); Fig. 3 | LTV: step height changes with injection phase | Yes | No | No |
isf_fourier_reconstruction.png | lab_05_fourier_isf.py / fig_reconstruction (ISF=-sin+0.35 sin2+0.18 cos3+0.25, N=[1,2,4]) | (Eq.12) | [P1] Eq.(12) | more harmonics, closer reconstruction of the original ISF | Yes | No | No |
isf_fourier_coefficients.png | lab_05_fourier_isf.py / fig_coefficients (n_harmonics=8) | ; Parseval (Eq.20) | [P1] Eqs (12),(20) | coefficient spectrum; verifies | Yes | No | No |
symmetric_vs_asymmetric_isf_c0.png | lab_05_fourier_isf.py / fig_symmetric_vs_asymmetric (sym=cos(θ), c0=0; asym=cos(θ)+0.4, c0=0.8) | (the ISF's DC) controls upconversion (Eq.24) | [P1] Eq.(24); [P2] symmetry results | only upconverts into | Yes | No | No |
white_noise_phase_noise_psd.png | lab_06_white_noise_phase_noise.py / main (f0=1.0, fs=256, n=1048576, q_max=1.0, S_i=1e-4, ISF=-sin) | ; dB/dec | [P1] Eq.(21) (the lab includes a factor-of-2 SSB note) | white noise → phase noise; simulation matches theory | Yes | No | No |
flicker_upconversion_symmetric_vs_asymmetric.png | lab_07_flicker_noise.py / main (f0=1.0, fs=256, n=1048576, sym=cos, asym=cos+0.5, k_flicker=1e-4) | close-in ; symmetry suppresses it | [P1] Eqs (23),(24); [P2] symmetry | waveform symmetry sets the close-in magnitude | Yes | No | No |
phase_noise_to_jitter_integration.png | lab_08_jitter_integration.py / main (f0=5e9, L(1MHz)=-100 dBc/Hz, integrate 1-100 MHz, slope 1/f^2) | ; analytic closed form | standard jitter integration; SerDes practice | rms jitter; 5 GHz, dBc/Hz → ~448 fs | No | No | No |
The only non-toy generated figure is
phase_noise_to_jitter_integration.png: it performs the standard jitter integration (from to ), which is a mathematically exact closed-form comparison that does not depend on any simplified oscillator model, hencetoy_model=false. The other 13 are all teaching toy/conceptual models.
(b) Cited PDF figures
The figures below are not generated by this site; they are figures inside the cited paper PDFs (taken from
source_pdf_figures_referenced in extracted/extracted_figures.json). On the corresponding teaching pages we
describe their content and give page numbers — we do not redraw or repost them.
| Figure | Source | Page | Teaching Message | Verify? |
|---|---|---|---|---|
| Fig. 4 | [P1] general.pdf | 182 | different state-space effect of peak vs ZC injection (phase/amplitude split); conceptually reproduced in lab_01/02 | No |
| Fig. 6 | [P1] | 182 | " linear in small charge " for a Colpitts LC and a 5-stage ring; supports the impulse→phase linearity assumption, reproduced in lab_02(b) | No |
| Fig. 7 | [P1] | 183 | waveforms and ISF shapes for (a) LC, (b) ring; basis of lc_vs_ring_isf_comparison.png | No |
| Fig. 8 | [P1] | 183 | noise near downconverted to the carrier as sidebands (Fourier downconversion picture) | No |
| Fig. 12 | [P1] | 185 | PSD of and SSB , showing the , , noise-floor regions and defining the corner | No |
| Fig. 8 | [P2] jitter_ring.pdf | 794 | single-ended ring's vs stage count ; the solid line is from [P2] Eq.(16) at , i.e. evidence for | No |
| Fig. 17 | [P2] | 802 | ring phase noise vs symmetry (control) voltage, minimum at the symmetric point; supports the "symmetry → suppress upconversion" design rule | No |
| Fig. 18 | [P2] | 803 | Appendix B's asymmetric triangular ring ISF model (different positive/negative lobe widths); the basis asymmetry_corner.png (lab_33) numerically checks Eqs.(52)-(57) against | No |
| Fig. 5 | [P4] BHongGenTheor-II… | 2126 | ideal LC's ISF and APF, the amplitude decay function, and their orthogonality; used by phase_vs_amplitude_noise to explain "why amplitude noise decays" | No |
| Fig. 19 | [P3] | 2120 | for a 17-stage single-ended ring, the lock-range gain (~2x) of a "matched injection waveform" over a same-power sinusoidal injection; optimal_injection_lock_range.png (lab_39) reproduces this numerically | No |
Note: [P1]'s Fig. 11 (the noise→phase panorama) is also conceptually referenced on teaching pages, but is not in the exact
source_pdf_figures_referencedlist; for a page-by-page comparison see the paper_001 deep dive. [P3] Fig. 19 (p.2120) and [P2] Fig. 18 (p.803) are only cited once the Wave-G labs (lab_33, lab_39) were added, and are backfilled here as part of this audit; [P5]'s figures are still not cited by this site (unrelated to ISF).
Where each generated figure is used
For reverse lookup (from each figure's used_in):
| Figure | Used on |
|---|---|
limit_cycle_phase_amplitude.png | oscillator_phase |
waveform_with_impulse_markers.png | oscillator_phase, lti_vs_ltv |
lc_waveform_and_isf.png | lab_02, isf_definition |
ring_oscillator_timing_noise_accumulation.png | lab_03, lc_vs_ring |
lc_vs_ring_isf_comparison.png | lc_vs_ring, rms_isf |
sinusoidal_impulse_phase_sweep.png | lti_vs_ltv, lab_04 |
isf_impulse_sweep_sinusoidal.png | isf_definition, lab_04 |
lti_vs_ltv_impulse_response.png | lti_vs_ltv |
isf_fourier_reconstruction.png | fourier_series_of_isf, lab_05 |
isf_fourier_coefficients.png | fourier_series_of_isf, rms_isf |
symmetric_vs_asymmetric_isf_c0.png | flicker_noise_upconversion, symmetry |
white_noise_phase_noise_psd.png | white_noise_to_phase_noise, lab_06 |
flicker_upconversion_symmetric_vs_asymmetric.png | flicker_noise_upconversion, lab_07 |
phase_noise_to_jitter_integration.png | psd_phase_noise_jitter, lab_08, numerical_feeling, worked_examples, serdes_clocking_connection |
rf_spectrum_phase_noise_sidebands.png | lab_10 |
monte_carlo_jitter_histogram.png | lab_11 |
serdes_eye_ber_bathtub.png | capstone_lc_end_to_end, lab_12, worked_examples |
pll_cdr_jitter_transfer.png | lab_13 |
cyclostationary_effective_isf.png | lab_14 |
nonlinear_oscillator_isf.png | lab_15 |
leeson_vs_isf_overlay.png | lab_16, measurement_and_spurs, derivation_leeson |
design_tradeoff_sweeps.png | lab_17 |
lorentzian_carrier_lineshape.png | lorentzian_linewidth |
allan_deviation.png | allan_variance |
pll_noise_budget.png | pll_noise_budget |
cross_coupled_vco_isf.png | real_oscillator_topologies |
allan_flicker_floor.png | allan_variance |
am_noise_spectrum.png | phase_vs_amplitude_noise |
aperture_jitter_snr.png | adc_aperture_jitter |
asymmetry_corner.png | asymmetric_isf_closed_form |
clock_chain_budget.png | clock_chain_budget |
correlated_supply_selection.png | lab_34 |
device_noise_isf_bands.png | device_noise_mapping |
diffusion_dictionary.png | diffusion_dictionary |
dual_dirac_bathtub.png | dj_dual_dirac |
flicker_lineshape.png | beyond_lorentzian |
floquet_ppv_numeric.png | derivation_floquet_ppv |
fom_limit.png | fom_limit |
htm_band_folding.png | ltv_htm |
ilfd_lock_ranges.png | paper_004_injection_locking_part2 |
impulse_phase_decomposition.png | impulse_to_phase_shift |
injlock_noise_shaping.png | injection_locking_noise |
isf_three_methods.png | isf_from_waveform |
jitter_kernels_mc.png | jitter_kernels |
jitter_two_regime.png | jitter_kernels |
lock_acquisition.png | lab_36 |
lock_characteristic_omega.png | paper_003_injection_locking_part1 |
mos_level1_ring_isf.png | lab_32 |
optimal_injection_lock_range.png | injection_locking_noise |
pulling_spectrum.png | injection_locking_noise |
supply_pushing_ring.png | varactor_tuning_supply_pushing |
xcorr_floor.png | measurement_and_spurs |
subharmonic_injection.png | lab_40_subharmonic_injection |
large_injection_transient.png | paper_004_large_injection_transient |
v5 additions (subharmonic injection / large-injection transient)
| Figure | Generated By (script / function) | Formula Behind It | Source | Teaching Message | Toy? |
|---|---|---|---|---|---|
subharmonic_injection.png | simulations/lab_40_subharmonic_injection.py / main (2×3 panels) | Subharmonic (×N) pulse injection: impulse-train map (lock range ) vs the unaveraged time-synchronous ODE; realignment factor ; first-order discrete noise shaping , corner | [P3] Sec. IV footnote 7, p.2112; [P4] Eq.(28)–(30), p.2129 (taking ) | lock range (log-log slope ); 's ODE step response vs the first-order prediction; output jitter , reference spur independent of | toy (phase-only, weak-injection pedagogical toy) |
large_injection_transient.png | simulations/lab_41_large_injection_transient.py / main (4 panels) | Exact pull-in solution ([P4] Eq.(31)); APF-driven amplitude transient ; large-injection lock characteristic ; pulled spectrum with AM-lifted comb lines | [P4] Eq.(27),(31)–(34), p.2128–2130 (verified) | ISF-only vs. ISF+APF pull-in rates differ by a factor ; the lock characteristic becomes unbounded as (a nonphysical zero-amplitude solution); AM makes the pulling spectrum grow mirror lines | toy (ideal LC, phase+APF quasi-static/first-order-lag model) |
Key takeaways
- All 54 generated figures are fully traceable to script/function/parameters/formula/source, and none are orphaned
(every one is embedded on at least 1 page). Except for
phase_noise_to_jitter_integration.png, most are teaching toy/conceptual models;mos_level1_ring_isf.pngandsupply_pushing_ring.pngare device-equation-level (MOS Level-1, not SPICE — closer to a real circuit than a toy). - The 10 PDF figures are only cited and described, never redrawn; among them [P2] Fig. 17 (p.802) and [P4] Fig. 5 (p.2126) have been verified against the original PDFs.
- Embed syntax:
. Re-run:python scripts/run_all_sims.py.
Further reading
- Equation → derivation page → source: equation_index
- Paper roles: paper_summary_table
- Teaching-claims cross-reference: claims_cross_reference
v2 added simulation figures (Wave C)
| Figure | Generated By | Formula Behind It | Source | Teaching Message | Toy? |
|---|---|---|---|---|---|
rf_spectrum_phase_noise_sidebands.png | lab_10_rf_spectrum.py main | , FFT | [P1] Fig.8 concept | phase noise→carrier skirts | toy |
monte_carlo_jitter_histogram.png | lab_11_monte_carlo_jitter.py main | [P2] Eq.(8) | RJ Gaussian, grows as | toy | |
serdes_eye_ber_bathtub.png | lab_12_serdes_eye_ber.py main | BER bathtub (RJ) | standard SerDes | jitter→eye→BER | model |
pll_cdr_jitter_transfer.png | lab_13_pll_cdr_transfer.py main | standard PLL | VCO high-passed / ref low-passed | model | |
cyclostationary_effective_isf.png | lab_14_cyclostationary_isf.py main | [P1] cyclostationary | injection phase sets the rms | toy | |
nonlinear_oscillator_isf.png | lab_15_nonlinear_isf.py main | van der Pol | external (toy) | ISF is not always | toy |
leeson_vs_isf_overlay.png | lab_16_leeson_vs_isf.py main | Leeson vs ISF | Leeson 1966 (external) | three-region comparison | model |
design_tradeoff_sweeps.png | lab_17_design_sweep.py main | [P1] Eq.(21) | swing/Γrms/N curves | toy |
v3 added figures (deepening)
| Figure | Generated By | Formula Behind It | Teaching Message | Toy? |
|---|---|---|---|---|
lorentzian_carrier_lineshape.png | lab_18_lorentzian.py | the carrier is Lorentzian, flattening near the carrier | model | |
allan_deviation.png | lab_19_allan.py / main | slopes: white FM , flicker FM flat floor, RW FM | time-domain fingerprint of FM noise | model |
pll_noise_budget.png | lab_20_pll_budget.py | sources×transfer | PLL budget + optimal BW | model |
cross_coupled_vco_isf.png | lab_21_topology_isf.py | tank vs tail effective ISF | tail upconversion (illustrative) | toy |
v4 added figures (Wave-G backfill, 26 figures)
The 26 figures below were generated progressively after v3 but had not yet been logged in this page's
table. Each was cross-checked against its generating script in simulations/ and its embedding page(s)
in docs/. The classification continues section (a)'s columns (Generated By / Formula / Source / Teaching
Message / Toy?), with the corresponding paper equation noted where applicable.
| Figure | Generated By (script / function) | Formula Behind It | Source | Teaching Message | Toy? |
|---|---|---|---|---|---|
allan_flicker_floor.png | lab_19_allan.py / verify_flicker_floor (with verify_sin4_integrals) | flicker-FM Allan floor ; using the site's canonical example C , measures the ADEV floor against ; a mixed white+flicker run verifies the knee | standard stochastic-process math (external literature, not among the 5 PDFs) | the Allan variance floor is not just a slope — flicker floor has an exact closed-form constant | model |
am_noise_spectrum.png | lab_28_am_noise.py / main | OU (Ornstein-Uhlenbeck) amplitude process vs Wiener phase ; | [P4] Sec. III-F, p.2128 (verified on this site) + OU process (external: Uhlenbeck & Ornstein 1930) | amplitude noise converges (flat floor) due to the restoring force; phase noise diverges (); the AM floor and PM asymptote meet at the corner | model |
aperture_jitter_snr.png | lab_30_aperture_jitter.py / main | ADC aperture jitter: , ; Monte-Carlo FFT verification using the site's canonical example C fs | standard ADC theory (external: Kester MT-007; Walden JSAC 1999), not among the 5 PDFs | clock jitter directly eats into ADC SNR/ENOB; higher is more sensitive to jitter | model |
asymmetry_corner.png | lab_33_asymmetry_corner.py / main | [P2] Appendix B (p.803) closed-form solutions Eqs.(52)-(57) for the asymmetric triangular ring ISF: , , corner vs asymmetry ratio | [P2] Eqs.(52)-(57), p.803; a factor-of-2 convention gap vs [P1] Eq.(24) (flagged) | numerically verifies the [P2] Appendix B closed forms; the corner forms a symmetric V vs (symmetric in ) | toy ([P2] triangular approximation, not transistor-level; see lab_32 for how far real devices deviate) |
clock_chain_budget.png | fig_clock_chain.py / main | clock-chain bookkeeping: reference flat floor, PLL ×N (in-band ), ÷N (), buffer additive floor; integrated jitter for the whole chain | site canonical parameters (representative, not a specific silicon design), [P1] Eq.(21) "/4" SSB convention | one figure that shows the ×N/÷N/PLL/buffer noise/jitter addition rules at a glance | model (illustrative chain, not a specific design) |
correlated_supply_selection.png | lab_34_correlated_supply.py / make_figure | [P2] Sec. VI, p.797, Eqs.(37)-(38): correlated supply noise summed across N phase-shifted per-stage ISFs leaves only the Fourier components , forming an selection comb | [P2] Eqs.(37)-(38), p.797; conceptually matches [P2] Fig. 11 (bench measurement) | correlated vs uncorrelated noise upconvert via different selection rules: correlated noise is folded to the carrier only near | toy (per-stage ISF is a pedagogical triangle wave, not transistor-extracted) |
device_noise_isf_bands.png | fig_device_noise_bands.py / main | ISF Fourier coefficients as the gains of a "frequency-converting receiver"; device-noise-PSD bands at DC / / are each folded to the carrier by | [P1] Eqs.(12),(13),(19),(23) | ISF harmonics = receive-channel gains; upconverts near-DC flicker, fold white noise near down into the region | toy (illustrative asymmetric ISF, not transistor-extracted) |
diffusion_dictionary.png | lab_23_diffusion_dictionary.py / main | diffusion-constant dictionary: cross-checked four independent ways — phase-variance slope, Lorentzian FWHM, overlapping ADEV, plateau | [P2] Eq.(8)/(10)/(11)/(12), p.792-793 | , , linewidth, ADEV, and the coefficient are really the same number in different units | model (single ISF-weighted white-noise phase integral, not a specific circuit) |
dual_dirac_bathtub.png | lab_31_dual_dirac.py / main | dual-Dirac jitter model: TJ=RJ(Gaussian)+DJ(bounded); Q-scale tail straight-line fit extracts ; bathtub BER and | industry standard (external: Fibre Channel MJSQ INCITS T11.2; PCIe/OIF-CEI), not among the 5 PDFs | dual-Dirac extrapolates TJ@BER from the deep tail's straight line; the model parameter is smaller than the true peak-to-peak | model (standard DSP/statistical method, not an oscillator physics model) |
flicker_lineshape.png | lab_29_flicker_lineshape.py / main (2x2 panels) | white-FM carrier lineshape is Lorentzian (FWHM=); flicker-FM () has variance , giving a near-Gaussian line core; -10dB/-3dB half-width ratio: Lorentzian=3.00, Gaussian=1.8226 | standard stochastic-process/linewidth theory (external literature) | white noise → Lorentzian, flicker → near-Gaussian core; the line shape itself can be used to infer the noise type | model |
floquet_ppv_numeric.png | lab_25_floquet_numeric.py / main | van der Pol oscillator: monodromy matrix, Floquet multipliers, backward-integrated adjoint system extracting the periodic left eigenvector , whose component along the kicked axis is | Floquet/adjoint/PPV theory (external literature: e.g. Demir 2000, not among the 5 PDFs), compared against the [P1] ISF definition | directly computes the adjoint/PPV ISF numerically; matches the impulse-extraction method and the harmonic-limit three ways | toy (van der Pol, not transistor-level; compare fig_isf_three_methods) |
fom_limit.png | fig_fom_limit.py / main (2 panels) | FOM ceiling: (300K=173.83dB); general form ; ring [P2] Eq.(23) ; LC back-derived from [P1] Eq.(21) | [P1] Eq.(21), p.185; [P2] Eqs.(23),(25), p.796 | FOM has a theoretical ceiling set by temperature and (topology/process efficiency); the ring has a lower bound at | model (LC/ring analytic formulas substituted in, not a specific circuit simulation) |
htm_band_folding.png | fig_htm_bandfold.py / fig_htm_band_folding | harmonic transfer matrix of an LPTV system: ISF Fourier coefficients are the gain of each fold, , ; band-folding diagram + Toeplitz HTM heatmap | [P1] Eqs.(12),(13), p.183; the HTM framework is external literature (Zadeh 1950), not among the 5 PDFs | ISF harmonics are the complex gains an LTV system uses to fold any band to — one figure shows every folding path | toy (illustrative teaching asymmetric ISF) |
ilfd_lock_ranges.png | lab_37_ilfd_lock.py / main | [P4] Eq.(28)-(30), p.2129 M:N sub-/super-harmonic locking: (p.2130); beat frequency outside the lock range (Eq.34, p.2130) | [P4] Eqs.(28)-(30),(34), p.2129-2130 | integrating the unaveraged time-synchronous phase ODE directly verifies that only the resonant N-th ISF harmonic can lock; a symmetric ISF () cannot divide by 2 | toy (3-harmonic controllable ISF, illustrative) |
impulse_phase_decomposition.png | fig_impulse_decomp.py / fig_impulse_decomp | ideal-LC state-plane geometry: a charge impulse causes a purely horizontal step ; its tangential component gives the permanent , its radial component gives the decaying ; at a zero crossing the kick is almost purely tangential, at a peak almost purely radial | [P1] Eq.(9) charge→voltage step; Eqs.(10)-(11) phase impulse response | makes it geometrically obvious why the ideal LC's | toy (ideal lossless LC, small-signal limit) |
injlock_noise_shaping.png | lab_26_injlock_noise.py / main | an injection-locked oscillator's phase noise is high-pass filtered (1st order): ; linearized to an OU process, vs free-running | [P3] Eqs.(30),(34)-(35),(38)-(40), p.2113-2115 | a locked oscillator behaves like a first-order PLL: its own skirt is suppressed below | model ([P3]'s verified deterministic pulling equation plus an added noise drive; the noise-shaping extension is this site's own) |
isf_three_methods.png | fig_isf_three_methods.py / duel | [P1] Appendix (pp.192-193) three-method duel: Method A direct impulse measurement, Method B closed-form-from-waveform Eq.(37) , Method C first-order approximation Eq.(38) , tested on a van der Pol oscillator | [P1] Eqs.(31)-(38), pp.192-193 | all three methods agree near-harmonically (); on a distorted waveform () Methods B/C degrade and only the impulse method (Method A) stays accurate | toy (van der Pol, same as lab_15/lab_25) |
jitter_kernels_mc.png | lab_24_jitter_kernels.py / make_figure | three jitter kernels: TIE (kernel=1), N-period (), cycle-to-cycle (), Monte-Carlo checked against closed forms under a single one-sided- convention | [P2] Eq.(8), p.792; Eq.(11)/(12), p.793 ( has no ) | the three jitter definitions correspond to three frequency-domain kernels; for white FM, holds exactly | model (standard DSP kernel integrals + Monte-Carlo, convention-focused) |
jitter_two_regime.png | lab_24_jitter_kernels.py / make_figure_two_regime | two-regime jitter growth ([P2] Fig.16, p.802; Eq.(8)/(9), p.792); mixed white+flicker FM simulation, slope transition 0.5→~1, corner | [P2] Eq.(8)/(9), p.792; Fig.16, p.802 | white noise dominates at short times (), flicker dominates at long times (); the corner maps to the frequency-domain corner | model |
lock_acquisition.png | lab_36_lock_acquisition.py / main (2 panels + inset) | exact deterministic lock-acquisition solution of the Adler equation, (matches the [P3] Eq.(39)-(40) pull-in frequency); noise-induced cycle slips via Kramers escape rate (external: Kramers 1940) | [P3] Eqs.(30),(33),(35),(39)-(40), p.2113-2115; Kramers/Risken/Ambegaokar-Halperin (external, not among the 5 PDFs) | lock acquisition critically slows near the edge (); noise can occasionally make a locked oscillator "slip" a whole cycle | model (Adler equation + white-FM drive; the washboard potential is standard stochastic theory) |
lock_characteristic_omega.png | fig_lock_characteristic.py / main | [P3] Eq.(33), p.2114 generalized Adler equation's lock characteristic : sinusoidal injection → symmetric lock range, harmonic-rich injection → asymmetric lock range (an effect the plain Adler equation cannot show) | [P3] Eqs.(26),(33)-(35), p.2113-2114 | lock range = the value-range width of ; a harmonic-rich ISF can make the lock range asymmetric | toy (illustrative harmonic-rich ISF and injection waveform; the ideal-LC case is exactly ) |
mos_level1_ring_isf.png | lab_32_mos_level1_ring.py / main | a 3-stage CMOS inverter ring, integrated directly in numpy using MOS Level-1 (Shichman-Hodges, ) device equations; ISF extracted by the impulse method ([P1] Eq.(9) plus comparing perturbed vs unperturbed threshold-crossing times) | [P1] Eq.(9); ISF shape compared against [P2] Fig.5/Fig.6, p.793 and Eq.(16), p.794 | an ISF extracted at the device-equation level (not SPICE) shows the [P2]-predicted dual-lobe shape (sensitive near transitions, ~0 near the rails) | device-eq (MOS Level-1 equation integration; closer to a real circuit than a toy, but not SPICE/BSIM) |
optimal_injection_lock_range.png | lab_39_optimal_injection.py / main | [P3] Sec. VI, p.2119-2120: for a fixed rms injection current, Cauchy-Schwarz gives the optimal injection waveform and the maximal lock range (Eqs.43-45) | [P3] Eqs.(33),(43)-(45), p.2119-2120 | a matched injection waveform (proportional to the ISF itself) beats a same-power sinusoidal injection's lock range; ~2.06x gain for a 17-stage ring (echoing [P3] Fig.19) | toy + [P2] App.B triangular ring model (not transistor-extracted) |
pulling_spectrum.png | lab_27_pulling_spectrum.py / main | outside the lock range (), integrating the Adler equation gives beat frequency ([P4] Eq.34, p.2130); the output spectrum is a one-sided geometrically-decaying comb with ratio (external: Armand 1969) | [P3] Eq.(30), p.2113; [P4] Eq.(34), Sec. V-B, p.2130 | the injection-pulling spectrum is a one-sided comb, asymmetric about the injection frequency; one sideband lands exactly at the injection frequency | model (deterministic Adler equation, RK4-integrated, noise-free to isolate the pulling comb) |
supply_pushing_ring.png | lab_38_supply_pushing_ring.py / main | supply pushing of the MOS Level-1 3-stage ring: static sweep + dynamic small-signal ripple, verifying the narrowband-FM prediction and the Bessel sidebands | circuit core reused from lab_32 (MOS Level-1, not SPICE); FM/Bessel sideband math is standard communications theory | supply noise directly frequency-modulates the oscillator; small-signal sideband amplitude matches the narrowband-FM Bessel formula | device-eq (same level as lab_32, not SPICE) |
xcorr_floor.png | lab_35_xcorr_measurement.py / make_figure | cross-correlation phase-noise measurement: single-channel auto-spectrum is masked by instrument noise above the DUT floor; the cross-spectrum , averaged over M segments, has its uncorrelated residual fall as (i.e. dB) while the DUT-correlated term does not decay | external measurement technique (not among the 5 PDFs); the underlying PSD/cross-spectrum statistics are standard DSP | cross-correlation measurement pushes instrument noise far below the single-channel floor, revealing the true DUT floor | model (standard DSP statistics, not an oscillator physics model) |