2.60 The Ehlers Modified Hilbert Transformer
Pair price with its quarter-cycle shift to read instantaneous amplitude and phase. The textbook Hilbert transformer lags forever; the modified version is accurate only across the cycle band, which is the band you trade.
The old article "Dominant Cycle Estimation Without Astrology" listed instantaneous frequency as one way to measure the cycle, and quietly leaned on a tool it never built: the thing that turns a single price series into an amplitude and a phase you can read bar by bar. That tool is the Hilbert transformer, and it is the engine under every "instantaneous period" and "instantaneous phase" claim in cycle analysis. The textbook version is also unusable for trading, because the honest one needs an infinite filter and the short one lags too much to act on. The practical answer is a deliberately compromised version that trades a little accuracy for usable lag, and knowing where that compromise sits is the difference between trusting the phase readout and being fooled by it.
Why one number is not enough
A price series gives you one value per bar, the level, and from one value you cannot separate how big the swing is from where in the swing you are. A sine wave at its peak and a flat market can momentarily sit at the same level; the level alone does not tell them apart. What you want is the pair: amplitude (how strong the cycle is right now) and phase (where in the cycle you are right now). Engineers get that pair by building the analytic signal, a two-part object whose first part is the price and whose second part is the same price shifted ninety degrees in phase, the quadrature component.
$$ x_a(t) = I(t) + j\,Q(t), \qquad A(t) = \sqrt{I^2 + Q^2}, \qquad \phi(t) = \arctan\!\left(\frac{Q}{I}\right) $$
I is the in-phase part, the price itself, and Q is the quadrature part, the price delayed by a quarter cycle. Treat the pair as a point in a plane: its distance from the origin is the instantaneous amplitude A, and the angle it makes is the instantaneous phase phi. As bars advance the point rotates, and the speed of rotation is the instantaneous frequency, so the rate of change of phase gives you the period directly, bar by bar, with far less delay than counting zero crossings. This is the generalization the old article gestured at: a phasor is a point rotating at a fixed speed and amplitude, and the analytic signal is the same idea allowed to change its speed and amplitude every bar, which is exactly what an evanescent market cycle does.
The transformer, and why the textbook one is useless
Everything above needs Q, the price shifted ninety degrees, and producing that shift is the Hilbert transformer's only job. A ninety-degree phase shift that is flat across all frequencies is, in theory, a specific filter, and that filter is a non-recursive (FIR) one of infinite length, with coefficients that decay slowly on both sides of center. Two problems make the textbook version dead on arrival for trading. First, infinite length is not buildable, so you truncate it, and truncation wrecks the phase accuracy at exactly the long periods traders care about. Second, and fatal, the ideal quadrature filter is centered, it uses future bars as well as past ones, and a centered FIR has a lag equal to half its length. Make it long enough to be accurate and its lag swallows any signal you could trade; make it short enough to be timely and its phase shift is wrong. That is the same FIR length-versus-lag bind from the old article "Why Moving Averages Can Lie at Turning Points", and here it has teeth, because a wrong phase does not just arrive late, it points the wrong way.
So the raw Hilbert transformer is a correct idea you cannot run live. You need a version that gives an approximate ninety-degree shift over the band of periods you actually trade, with a lag small enough to act on, and accepts being wrong outside that band.
The modified version: accurate where it counts, wrong where it does not
The practical transformer drops the demand for a flat ninety-degree shift at every frequency and asks for it only across the cycle band, the periods a roofing filter has already let through. Inside that band the modified transformer holds the phase shift close to ninety degrees with only a few coefficients and a lag of a bar or two; outside it the shift drifts off, which costs nothing because you band-limited those frequencies away before the transformer ever saw them. This is engineering by priorities, spend your filter budget where the cycle lives and abandon the frequencies you do not trade, and it is the same logic as design-by-band that runs through this whole pillar. The reward is a usable I and Q, hence a usable amplitude and phase, hence an instantaneous period with a one-to-two-bar lag instead of the twelve-bar lag of the periodogram or the structural lag of zero crossings.
The catch is the one stamped on every cycle tool here. The modified transformer is accurate only inside the band you tuned it for, so feed it through a roofing filter first or its phase readout is noise. Its low lag comes with high variance: instantaneous frequency from a short transformer jumps around violently bar to bar, so gate it on amplitude, when A is small the phase is meaningless because there is no cycle to have a phase, and the old article "Why Market Cycles Are Evanescent" is the reason A keeps collapsing. Use it as the low-latency cycle sensor it is, band-limit the input, smooth the raw frequency, ignore the phase whenever amplitude is below the noise floor, and never forget that you are reading an approximation that is correct in one octave and lying everywhere else. The textbook transformer is right and unusable; the modified one is usable and right only where you aimed it, which is the trade you always make in causal filtering.

KEY POINTS
- One price value per bar cannot separate how big the swing is from where in the swing you are; you need amplitude and phase together.
- The analytic signal supplies both: pair the price I with its quarter-cycle-shifted copy Q, then amplitude is sqrt(I squared plus Q squared) and phase is arctan(Q over I), with the rotation speed giving instantaneous frequency, the low-lag period the old article "Dominant Cycle Estimation Without Astrology" wanted.
- Producing Q is the Hilbert transformer's only job: a ninety-degree phase shift across frequency.
- The textbook transformer is an infinite-length, centered FIR, so making it accurate forces a lag of half its length, which the old article "Why Moving Averages Can Lie at Turning Points" warned about; it is correct but unusable live.
- The Ehlers modified transformer holds the ninety-degree shift only across the cycle band with a few taps and a one-to-two-bar lag, and accepts being wrong at frequencies you band-limited away anyway.
- It demands the usual cycle-tool discipline: roofing-filter the input first, smooth the high-variance frequency, and gate the phase on amplitude, because when amplitude collapses (the old article "Why Market Cycles Are Evanescent") the phase is meaningless.