Generator

A 4 kHz Butterworth, mapped to 48 kHz two ways

computed by solving, not by drawing. The upper panel is the digital response on the unit circle; the lower one is where each analogue frequency lands. The bilinear transform compresses the axis as it approaches half the sample rate — -3.11% at a tenth of the rate and -15.2% at a quarter — so a design mapped straight through is -3.432 dB at its own corner instead of -3.010. Pre-warping puts that one frequency back exactly and no other: above it the pre-warped curve is the further of the two from the analogue prototype. It is a choice of where to be right, not a correction.
A 4 kHz Butterworth, mapped to 48 kHz two wayscomputed by solving, not by drawing. The upper panel is the digital response on the unit circle; the lower one is where each analogue frequency lands. The bilinear transform compresses the axis as it approaches half the sample rate — -3.11% at a tenth of the rate and -15.2% at a quarter — so a design mapped straight through is -3.432 dB at its own corner instead of -3.010. Pre-warping puts that one frequency back exactly and no other: above it the pre-warped curve is the further of the two from the analogue prototype. It is a choice of where to be right, not a correction.-40-30-20-1001k10kfrequencygain (dB)the design corner, 4 kHzhalf powermapped straight throughpre-warped at the cornerat the design cornerplain -3.432 dBpre-warped -3.010 dB24k0where each analogue frequency landssolved, then checked — one prototype, two maps-15.2% out at a quarter of the rate

Drawn above at its default parameters, which is almost never how an essay calls it. A placement states the numbers that essay is arguing about, so the figure a reader meets is about that argument rather than about the generator — 98% of the placements on this site pass one, and the phase that raised that number from 12% found eight captions describing a figure the page was not showing.

At those defaults the edge it states is -15.2% out at a quarter of the rate — the right-hand slot of the caption strip, which on this site is never used for anything else, and which is read back out of the drawing above rather than out of the code that wrote it. It belongs to Where a signal becomes a number, which is to say a change to it is a change to lib/figures/digital.js. It takes a slider on design corner (kHz) with 7 settings, and every one of them has passed the same assertions as the frame above — a figure whose circuit stops doing what its caption says at any setting stops the build.

Called by 4 essays

which is the blast radius of changing it

The corner that moved

The bilinear transform has to fit an infinite frequency axis onto a circle, so something must be compressed, and what is compressed is everything near half the sample rate. A 4 kHz Butterworth mapped to a 48 kHz clock is 3.432 dB down at its own corner instead of 3.010, and at a quarter of the sample rate the axis is 15.2% out. Pre-warping puts one frequency back exactly and no other — it is a choice of where to be right, not a correction.

Where a signal becomes a number

The period a delay lengthens

Feed a comparator's output back through a resistor to the capacitor on its own input and the two thresholds stop defending a decision and start setting a period. The closed form is two RC times the log of one plus beta over one minus beta, and a marched circuit recovers it as the step shortens. A comparator that responds fifty nanoseconds late does not add fifty nanoseconds to each half cycle: it adds 4/(1+beta) times the delay to the period, 2.65 here against the 2 that counting it twice gives, because during the delay the capacitor keeps going the way it was going.

Circuits that do a job, and the range they do it over

The same filter, rounded twice

The filters field measured two realisations of one analogue response and found the passband error growing as the 0.99 power of a component tolerance in a cascade and the 2.00 power in a ladder. The digital version of that argument comes out harder. At eighth order and sixteen bits, a cascade of biquads moves its poles by 6.6 × 10⁻⁴ and stays at a radius of 0.9748; the same filter written as one polynomial moves its poles to a radius of 1.4536, which is not an inaccurate filter but an unstable one.

Where a signal becomes a number

The word length that is not a threshold

The essay below this one measured an eighth-order direct form at five word lengths, found its poles outside the unit circle at every one, and left behind a phrase — the coefficient resolution required. Sixty word lengths later there is no such resolution. That filter is stable at 28 bits, unstable at 29 and stable again at 30, and the smallest word length a search would return is not one anybody can use. What survives is a law with a slope: 4.53 bits of coefficient for every pole added, rising to 47 bits at twelfth order, and none at all for a cascade.

Where a signal becomes a number

Every generator