The figure library
No figure on this site is a drawing that was made once and saved. Each one is a function: it takes a circuit's parameters, solves the network, and returns SVG. The same generator draws a capacitor with a nanohenry of lead and one with twenty, and neither is redrawn by hand — which is also why every frame a reader can reach on a slider has passed the same assertions as the one printed on its page.
That is the reason the collection can keep growing without the illustrations drifting apart. A generator is written once, checked once, and every essay that calls it inherits the same line weights, the same colour roles, and the same behaviour in dark mode. There are 135 of them so far, and between them they carry several hundred assertions that run at build time — a figure whose circuit does not do what its caption says stops the build rather than shipping.
Each generator's own page says how many essays call it, which is the number worth knowing before editing one. This page used to render all of them inline and had reached 182 kB compressed, growing by one figure every time a generator was written; the split happened in the scale phase, for that reason and because the count only goes up.
The line in italics under each name is the edge that generator states at its defaults — the frequency, amplitude or size at which the model in the picture stops being true — and it is the one slot of the caption strip that is never used for anything else. It is not copied from the source: each was read back out of the finished SVG, because almost every one of them is a number the solver produced and the only place the sentence exists is the drawing. An essay usually calls the generator at its own numbers rather than these, so the edge a reader meets on the page will be a different number arrived at the same way.
Networks, and how a solve is checked
9 generators, in lib/figures/networks.js
-
condition-errorFourteen decades of imbalance, fourteen digits gone, and a matrix in perfect health
no correct digits below δ = 1e-15 -
divider-loadedA 10 kΩ + 10 kΩ divider, solved with its load
the ratio is 1% wrong below 495 kΩ -
equivalent-and-its-heatThe equivalent of six elements, and the heat it does not account for
exact outside, 43× out inside -
impedance-seenImpedance of a series RLC of Q = 4, measured by driving it
not a component value: what the pair does -
network-solvedA network solved, and checked: a bridge, which no series-parallel reduction reaches
a linear network has no edge: this one is exact -
refusalsFour networks the solver refuses
a solver that never declines is untested -
source-modelA 9 V source with 500 mΩ inside it
the ideal source is 1% wrong above 180 mA -
superposed-powerSuperposition holds for the solution and not for its square
powers add only at 90°, or beyond 198:1 -
tolerance-spreadA divider of 4 equal 1.0% resistors, solved 3000 times
the worst case is ±1.00% at every part count
Frequency, which is the same solve
8 generators, in lib/figures/frequency.js
-
asymptote-errorA pair at Q = 0.7071: the sketch is -3.01 dB out at the corner
0.77 dB is the best any pair allows -
bode-first-orderA single-pole low-pass with its corner at 995 Hz
the sketch is 3.01 dB wrong at 995 Hz -
capacitor-impedanceA 100 nF capacitor, and what it is above 14.5 MHz
a capacitor below 14.5 MHz, an inductor above -
component-qA resonator's Q against its inductor's, with a capacitor of Q 1581
Q 75.3 under a ceiling of 79.1 -
phase-from-magnitudeOne magnitude curve, two phase curves, and the one of them the magnitude decides
±3 decades holds 99.9% of the weight -
phasor-sumThree element voltages closing on one source, at 1.59 kHz
steady state only: 3 cycles to settle -
resistor-impedanceA 10 kΩ resistor, and the 19.3 MHz it is one below
a resistance below 19.3 MHz -
resonance-bandwidthA resonant circuit of Q = 8, and its measured bandwidth
f₀/Q predicts 198.9 Hz — exactly
Before the steady state
11 generators, in lib/figures/transients.js
-
charge-lossWhat a charge through 1 kΩ costs, against how long it is given
a tenth of the loss needs 20 ms -
dielectric-memoryThe charge that comes back: a 0.2% dielectric, 10 s shorted, read at 900 s
still rising at 0.10% per decade -
doublet-tailA 1.0% doublet: 0.078 dB in the magnitude, 36× the settling time
a 1.0% miss costs 36× the settling time -
octc-estimateA sum that is exact, and the bandwidth estimate that is not
the estimate is low by 14% -
pole-planeTwo poles at ζ = 0.3, recovered from the matrix
natural frequency recovered to 6 digits -
recovery-currentThe reverse peak reaches the forward current at 12.6 A/µs
equal to the forward current at 12.6 A/µs -
settling-against-dampingHow long a second-order step takes to arrive inside ±2%
fastest at ζ = 0.780, not 1 -
slew-departureFive steps, each divided by its own size, from an amplifier limited to 0.50 V/µs
scaling fails above a 79.6 mV step -
step-two-routesOne step response, computed twice: from the poles, and by walking the network forward
the numerical route is out by 1.7e-3 V -
thermal-pulseOne cycle at 1.00 Hz, 2% duty, 5 W average
peak 349 K against a steady 49 K -
value-theoremsA step on a series RLC at ζ = 0.079, and the two numbers read off H(s)
inside ±2% after 8 cycles
Filters, measured not tabulated
13 generators, in lib/figures/filters.js
-
delay-equalisedA fifth-order chebyshev delay, and 1 all-pass section in front of it
1.79× flatter, 722 µs later -
elliptic-zerosFour families at order 5, and the 2 zeros in the stopband
the floor held from 1.25×fc, reached at 1.77× -
filter-familiesThree filter families at order 5, all with the same half-power point
all normalised to a measured −3 dB at 1.00 kHz -
filter-tradeoffWhat each family costs, at order 5
every number here moves with the order -
group-delayGroup delay across the passband, at order 5
flat magnitude is not flat delay -
gyrator-inductorA one-henry inductor with nothing magnetic in it, good for 3.6 decades
an inductor up to 3.65 kHz -
impedance-scaledOne Sallen-Key design at 10 kΩ, and the band of impedance levels it survives
inside 0.1 dB from 31.6 Ω to 31.6 kΩ -
ladder-against-cascadeOne per cent on one component, in two realisations of the same order-5 filter
54× less movement at the peaks -
notch-sectionA section whose zero sits 1.30× above its pole
zero 1.30× the pole, floor -4.6 dB -
q-enhancementAn amplifier a hundred times the corner moves the unity-gain section's Q by 2.0%
Q/ratio, and equal in both directions -
realisable-bandAt the order a cascade runs out, a ladder still has 4.2 decades of level
the cascade is empty at order 8 -
sc-lowpassA switched capacitor is a resistor below a ratio, not below a frequency
1% needs Cs/Ch under 0.0201 -
termination-mismatchAn order-5 ladder driven from 2× the resistance it was designed between
the shape survives 0.89× to 1.14×
Feedback, and the margin
13 generators, in lib/figures/feedback.js
-
compensation-noiseThe quietest capacitor is 18× the fastest one, and the margin prefers neither
no peak left above 12 pF -
conditional-phaseA loop whose phase comes back, at a gain of 1.0e+7
stable only between 1.81e+6 and 3.36e+7 -
desensitivity-bandHow much of the amplifier reaches the answer, at 35° of phase margin
feedback stops helping at 6.33 kHz -
ideal-vs-realA gain of 100 asked of an amplifier with 1.00 MHz of gain–bandwidth
the ideal answer is 1% wrong above 1.35 kHz -
isolation-resistor9.9 Ω restores 45°, 23 Ω restores 60°, and the load pays for it in ohms
45° at 9.9 Ω, 0.98% of load error -
load-step-slewThe step at which the output impedance stops being a number
not a number above 11 mA -
loop-gainLoop gain of a three-pole amplifier closed for a gain of 100
34.9° of phase margin at 5.73 kHz -
margin-and-ringingOne loop, two measurements of the same margin
the second-order relation is 0.1° out here -
noise-gain-and-marginAn inverting unity gain, and the 100 pF that only the loop can see
45° at 9.00 pF -
nyquist-locusThe same loop gain as one path, and the point that decides stability
46.1 dB and 34.9° from the critical point -
shared-railOne channel's load step reaches another through the supply, and the compensation decides by 4497×
4497× between the two -
two-path-settlingThe second path costs nothing at 12 pF and an order at 100 pF
a band around 12 pF -
virtual-earth-impedanceWhat the summing junction of an inverting amplifier actually is, at 1.00 MHz of gain–bandwidth
1% of the input resistor by 995 Hz
Where the models stop
6 generators, in lib/figures/limits.js
-
diode-dropThe 0.7 volt constant, solved over eight decades of current
the constant moves 59.5 mV per decade -
edge-mapWhere four of this site's models stop being true
and one that is not a frequency: 7.3 mV -
edge-regionThe ideal amplifier is good to 1% over a region, and its corner is 21% inside the specifications
one contour, three mechanisms -
lumped-vs-line10.0 cm of track, solved as a lumped circuit and as a line
Kirchhoff's laws run out at 143 MHz -
small-signal-departureLinearising an exponential at 27 °C, and what it costs
the tangent is 1% wrong above 7.3 mV -
switch-bandWhere a switch is a switch: a band, and the 6.43 MHz at which it closes
a band, shut above 6.43 MHz
Power, and the part that does no work
7 generators, in lib/figures/power.js
-
bank-impedanceA bulk capacitor and a ceramic, and the peak between them at 6.52 MHz
worse than either part above 2.17 MHz -
inrush-phaseThe first conduction carries 26× the repetitive peak, and the factor of 7 is the user's
26× the repetitive peak -
meter-form-factorTwo meters, one current, and neither of them measuring the heat
neither is measuring the heating -
power-triangleA 20 Ω, 50 mH load on 230 V at 50 Hz
only 0.79 of the current works -
series-compensation25% compensation: 4.26% regulation, and a resonance at 25.0 Hz
a resonance at 25.0 Hz, below the fundamental -
three-phase-neutralThe neutral of a three-phase supply with one phase 30% off
a tenth of a line at 11.1% imbalance -
transfer-and-efficiencyThe load that takes the most power, and the load that wastes the least
the matched load wastes exactly half
Devices, and where they stop being linear
13 generators, in lib/figures/semi.js
-
bias-pointA diode fed from 5 V through 1.0 kΩ
the drop moves 59.5 mV per decade -
cascode-outputA cascode multiplies rₒ by β, not by gₘrₒ — and the two are 21× apart
the multiplication stops at β = 150 -
degeneration-ordersThe fourth-order term explains 95% of what the third leaves out
6.9% → 0.36% at D = 11 -
diode-temperatureA diode's drop from 250 to 400 K, at 1.00 mA
1.828 mV/K, and the wrong way round -
follower-impedanceA follower's output impedance from 1 kΩ of source, bare and with 100 pF on it
3.5× its own low-frequency value at 29.3 MHz -
foster-cauerThe ladder's step response, and the sum of its own stages — 0.95 per cent apart at worst
the sum is 0.95% high at 12.9 ms -
harmonic-contentAn exponential driven 10.0 mV either side of its bias
second harmonic 9.6% at 10.0 mV -
miller-bandwidthA common-emitter stage with 2.0 pF from collector to base
Miller is 22% optimistic -
mirror-errorA copy out by 1.3% for the reason everybody names, and 11% for the one nobody does
1% over 0.810 V, whatever the current -
pair-cancels-evenOne exponential and one pair, both driven 20.0 mV
the pair's second harmonic is 1e-16 -
pair-offset-driftWhat a 5% mismatched pair leaves behind, across 150 K
3333 ppm/K, at every mismatch -
square-law-bandThe square law is within 1% over a factor of 1.06 in overdrive
1% over 1.06× of overdrive -
two-amplitude-edgesAn exponential: distortion arrives seven times sooner than gain error
7.1× apart
Lines, where a wire has a length
8 generators, in lib/figures/lines.js
-
bounce-staircaseA 1 V step onto 1.00 m of 50 Ω line into an open circuit
nothing at the far end before 4.83 ns -
coupled-tracksTwo tracks, and a far end that cancels exactly when the field is all in one material
the far end nulls at a ratio of one -
ladder-vs-wave20 inductor-capacitor sections, against the line they are meant to be
plateaus 0.08 V out at 20 sections -
loss-hides-mismatchA 4.0:1 load reads 1.13:1 through twenty metres of cable
ten decibels of loss buys twenty of return loss -
multi-section-band3 quarter-wave sections between 50 Ω and 200 Ω
68% of band, from 3 sections -
quarter-wave-bandMatching 50 Ω to 200 Ω with 51.7 mm of 100.0 Ω line
exact at one frequency, 17% of band -
return-pathThe return under 10.0 cm of track, 200 µm above the plane
one assumed corner, 106 kHz -
termination-plateauA series-terminated net holds half a swing for 1.0 delays at 50% along it
1.00 delays at 50% along
Measurement, which is a circuit on a circuit
11 generators, in lib/figures/instruments.js
-
bias-currentWhere an amplifier's reading comes from, against the source it is reading
the current wins above 1.8 kΩ -
compensation-stepA 10:1 divider with 12.8 pF across its top resistor
0.0% out at 12.8 pF -
coupling-sagA 100 ms pulse through a 0.159 Hz corner, 9.52% shorter by the end of it
1% needs 10.1 ms or shorter -
ct-errorsA part in ten thousand of ratio, and half a degree that costs 18% of a power reading
0.1% of ratio above 10.7 Hz -
four-terminalMeasuring with 50 mΩ of lead in each wire
two wires fail below 10 Ω -
guarded-inputA clean board is 14.0 mV of error, and a guard makes it 1.0 nV
what is left is 1.0 ppb of the signal -
in-amp-rejectionA first stage of 100 buys 40.0 dB of rejection, and gives it back above 10.0 kHz
the rejection leaves above 10.0 kHz -
probe-loadingTwo probes on a 2.0 kΩ source
1% wrong at 6.79 kHz with a 1× probe -
rise-through-polesHow much faster an instrument must be for 10% of inflation
2.79× to 6.87× against the rule's 2.18× -
shared-returnThe millivolts in the wire, which are nobody's signal
the signal is lost by 1.59 MHz -
shunt-bandThe best shunt drops 7.75 mV, whatever the current is
no shunt beats 0.129% on a 12 V rail
The floor, and what is under it
6 generators, in lib/figures/noise.js
-
averaging-stops-workingAveraging a white sequence, and averaging a pink one
exponent -0.09 against -0.51 -
dynamic-rangeThe usable range of one stage, in a 10 kHz measurement
66 dB between them -
friis-cascadeThe same three stages, in two orders
8.7 dB from an ordering -
noise-bandwidthA single pole, and the brick wall that passes the same noise
1.571× the corner, not 1× -
noise-two-routesThe noise of a 1.6 kΩ resistor through a 10.0 kHz filter
agreeing to 0.21% -
sampled-noiseThe switches set the floor below 60.2 MHz and the amplifier sets it above
the floor changes hands at 60.2 MHz
Where a signal becomes a number
9 generators, in lib/figures/digital.js
-
alias-foldA 3.0 kHz input sampled at 10 kHz arrives as itself
half the sample rate: 5.00 kHz -
arithmetic-floorBelow twelve bits the rounding stops being noise, and the floor is 6.4× the budget
the model has a word length of its own -
converter-floorWhere a converter stops measuring the signal and starts measuring the resistor
18.80 bits at 1 kΩ -
error-characterThe amplitude at which a converter's floor becomes distortion
76% harmonic at 1.3 levels -
hold-droopThe droop a zero-order hold imposes at 48 kHz
-2.64 dB at 20 kHz, -3.92 dB at half -
jitter-bitsWhat 10 ps of aperture jitter is worth, in bits
16 bits ends at 199 kHz -
mash-cascadeWhat a cascaded modulator is worth, against how well its two paths match
three decibels at 5.29% mismatch -
noise-shapedOne bit, oversampled — and where the quantisation noise went
8.99 dB an octave against 3.01 -
warped-cornerA 4 kHz Butterworth, mapped to 48 kHz two ways
-15.2% out at a quarter of the rate
Two windings, and the band between them
13 generators, in lib/figures/magnetics.js
-
core-loss-lawThe Steinmetz exponent is a local slope, and how far it moves is a property of the material
it moves by 1.42 here, 1.73 on a soft core -
coupled-two-portA coupled pair as a two-port, at k = 0.8
reciprocal to 2.8e-16 -
flux-walkingA 1% imbalance, and the 64 cycles it survives
64 cycles, and halving the drive gives 128 -
gap-fringingWhat a millimetre of clearance from the gap is worth
0.60 mm, and 14.1× the loss inside it -
hysteresis-loopA major hysteresis loop at 9.0 A/m of coercivity, and the anhysteretic curve it closes onto
12.48 J/m³ per cycle -
inductor-self-resonanceA 10 mH inductor with 8 pF across it, and where ωL stops being its impedance
10% out at 170 kHz, which is f₀/3.32 -
proximity-layersAlternating-current resistance against foil thickness, 4 layers
above 0.66 δ, more copper is more resistance -
thermal-fixed-pointThe heat a core makes against the heat its path removes, and the two temperatures where they are equal
89 °C, gain -0.19 -
transformer-bandA 1:1 transformer at k = 0.99, and the band it is a turns ratio over
a band of 2.31 decades -
volt-second-limitThe voltage a winding may carry, which is a volt-second limit read at a frequency
3.500 mWb-turn at every frequency -
winding-resistanceA 0.5 mm conductor's resistance against frequency, exact and asymptotic
already 2.1% up where the rule says it begins -
window-capacitanceThe winding window solved electrostatically, in two portions
927 pF/m across 1 interface -
window-fieldThe one number Dowell gets right, and the one it gets wrong the other way
the closed form is 82% high at 25% fill
Circuits that do a job, and the range they do it over
8 generators, in lib/figures/applied.js
-
barkhausen-polesThe closed-loop poles at a gain of 3.05
the crossing is at k = 3.000000, and it is a point -
bridge-linearityA 350 Ω bridge, with ideal leads
the tangent is out by half the change -
comparator-chatterA threshold crossed once, in 20k samples of noise
the floor decides the hysteresis, not the signal -
esr-windowThe window a 10 µF capacitor leaves
stability wants it large, the step wants it small -
oscillator-startupStarted from a millivolt at a gain of 3.20
the growth is linear; the amplitude is not -
regulator-impedanceA five-volt regulator's output impedance, with 1.00 Ω of series resistance
4.52e+3× its floor at 10.0 kHz -
relaxation-delayA comparator's delay, at a divider ratio of 0.50
4/(1+β) = 2.667, and it is not 2 -
reservoir-ripple1000 µF across a 100 Ω load, rectified from 17 V peak
28.8° of conduction, 13.4× crest