A few days ago I wrote about the Hilbert transform and gave as an example that the Hilbert transform of sine is cosine. We’ll bootstrap that example to find the Hilbert transform of any periodic function from its Fourier series.

The Hilbert transform of a function *f*(*t*) is a function *f*_{H}(*x*) defined by

where the integral is interpreted in the sense of the Cauchy principal value, the limit as the singularity is approach symmetrically from both sides.

The Hilbert transform shifts and scales conveniently. Shifting a function by any amount *h* shifts its transform by the same amount. And scaling a function by any amount *k* > 0 scales its transform the same way. That is, we have the following transform pairs.

Now since the Hilbert transform of sin(*t*) is cos(*x*), the Hilbert transform of sin(*t* + π/2) must be cos(*x* + π/2). But sin(*t* + π/2) is cos(*t*), and cos(*x* + π/2) is sin(*x*), so the Hilbert transform of cos(*t*) is −sin(*x*). In this case, the Hilbert transform has the same pattern as differentiation.

Now if ω > 0 the scaling rule tells us the Hilbert transform of sin(ω*t*) is cos(ω*x*) and the Hilbert transform of cos(ω*x*) is −sin(ω*x*). Here the analogy with differentiation breaks down because differentiation would bring out a factor of ω from the chain rule [1].

Putting these facts together, if we have a function *f* written in terms of a Fourier series

then its Hilbert transform is

In other words, **we replace the b‘s with a‘s and the a‘s with −b‘s**. [2]

Notice that there’s no *b*_{0} term above. In signal processing terminology, there’s no DC offset. In general a Fourier series has a constant term, and the Hilbert transform of a constant is 0. So again like differentiation, constants go away.

If there is no DC offset, then applying the Hilbert transform to *f* twice gives −*f*. If there is a DC offset, applying the Hilbert transform to *f* twice gives −*f* with the DC offset removed.

## Opposite sign convention

Unfortunately there are two definitions of the Hilbert transform in common use: the one at the top of this post and its negative. What changes if we use the other convention?

We noted above that applying the Hilbert transform to *f* twice gives −*f*. This means that the inverse transform is the negative transform [3]. In symbols, if *H* is the Hilbert transform operator, then −*H*²*f* = −*H**f* and so *H*^{−1} = −*H*. So the disagreement over whether to include a negative sign in the definition of the Hilbert transform amounts to a disagreement over which to call the forward transform and which to call the inverse transform.

The shifting and scaling rules apply to both definitions of the transform. But with the opposite sign convention, the Hilbert transform of sine is negative cosine and the Hilbert transform of cosine is sine. So our bottom line becomes “replace the *a*‘s with *b*‘s and the *b*‘s with −*a*‘s” in the Fourier series.

## Footnotes

[1] Incidentally, the Hilbert transform commutes with differentiation. That is, the transform of the derivative is the derivative of the transform.

[2] This is an example of parallel replacement. We replace *a*_{n}, with –*b*_{n} and *b*_{n}, with *a*_{n} *at the same time*.

[3] For signals with no DC offset. Otherwise the Hilbert transform is not invertible.

Hi John.

I would love to hear your thoughts on how this connects to the Kramers–Kronig relations for analytic functions. Somehow I had never put together the fact that KK relations could be expressed in terms of Hilbert Transforms. The similarities to differentiation you point out in this post seem like they might be connected to the properties of analytic functions? I haven’t thought this through carefully, but there is something tantalizing there.