Hilbert transform
From Free net encyclopedia
In mathematics and in signal processing, the Hilbert transform, here denoted <math>\mathcal{H}</math>, of a real-valued function, <math>s(t)\,</math>, is obtained by convolving signal <math>s(t)</math> with <math>1/(\pi t)</math> to obtain <math>\widehat s(t)</math>. Therefore, the Hilbert transform <math>\widehat s(t)</math> can be interpreted as the output of a linear time invariant system with input <math>s(t)</math>, and a system impulse response given as <math>1/(\pi t)</math>. It is a useful mathematical tool to describe the complex envelope of a real-valued carrier modulated signal in communication theory (see below for more on applications). The precise definition is as follows:
- <math>\widehat s(t) = \mathcal{H}\{s\}(t) = (h*s)(t) = \frac{1}{\pi}\int_{-\infty}^{\infty}\frac{s(\tau)}{t-\tau}\, d\tau.\, </math>
where
- <math>h(t) = \frac{1}{\pi t}\,</math>
and considering the integral as a Cauchy principal value (which avoids the singularity at <math>\tau = t\,</math>).
It follows that the Hilbert transform has a frequency response given by the Fourier transform:
<math>H(\omega ) = \mathcal{F}\{h\}(\omega)\,</math> | <math> = -j\cdot \sgn(\omega)</math>, where <math>j\,</math> (aka <math>i\,</math>) is the imaginary unit |
<math>= +j\,</math>, for <math>\omega < 0\,</math> | |
<math>= -j\,</math>, for <math>\omega > 0\,</math> |
And since:
- <math>\mathcal{F}\{\widehat s\}(\omega) = H(\omega )\cdot \mathcal{F}\{s\}(\omega)</math>,
the Hilbert transform has the effect of shifting the negative frequency components of <math>s(t)\,</math> by +90° and the positive frequencies components by −90°.
We also note that <math>H^2(\omega ) = -1\,</math>. So multiplying the above equation by <math>-H(\omega )\,</math> gives
- <math>\mathcal{F}\{s\}(\omega) = -H(\omega )\cdot \mathcal{F}\{\widehat s\}(\omega)</math>
from which the inverse Hilbert transform is apparent:
- <math>s(t) = -(h * \widehat s)(t) = -\mathcal{H}\{\widehat s\}(t).\,</math>
Contents |
Hilbert transform examples
Notice: Some authors, e.g., Bracewell, use our <math>-\mathcal{H}</math> as their definition of the forward transform. A consequence is that the right column of this table would be negated.
Signal <math>s(t)\,</math> | Hilbert transform <math>\mathcal{H}\{s\}(t)</math> |
---|---|
<math>\sin(t)\,</math> | <math>-\cos(t)\,</math> |
<math>\cos(t)\,</math> | <math>\sin(t)\,</math> |
<math>1 \over t^2 + 1</math> | <math>t \over t^2 + 1</math> |
<math>\sin(t) \over t</math> Sinc function | <math>1 - \cos(t) \over t</math> |
<math>\sqcap(t)</math> Rectangular function | {t+{1 \over 2} \over t-{1 \over 2}} \right |</math> |
<math>\delta(t)</math> Delta function | <math> {1 \over \pi t}</math> |
The narrowband approximation
Many signals can be accurately modeled as the product of a relatively slowly varying function, <math>s_m(t)\,</math>, and a sinusoidal "carrier":
- <math>
s(t) = s_m(t) \cdot \cos(\omega t + \varphi) </math>
where <math>\omega\,</math> is much greater than the bandwidth of <math>s_m(t)\,</math>. Then:
- <math>
\widehat{s}(t) \approx s_m(t) \cdot \sin(\omega t + \varphi) </math>
which means that the Hilbert transform significantly affects only the carrier, by introducing a 90° phase shift.
Applications
The Hilbert transform has applications in signal processing — for example, the generation of single-sideband signals.
Often these applications are related to the analytic signal which is defined in terms of the Hilbert transform
- <math>s_a(t) = s(t) + j\cdot \widehat s(t).\,</math>
The narrowband model [above] applies to typical double sideband amplitude modulation, where <math>s_m(t)\,</math> is the actual information being transmitted (aka the message). It could be a voice waveform, for instance. The Hilbert transform allows us to effectively reconstruct the carrier, since
- <math>(\omega t + \varphi)_{\mathrm{mod}\, 2 \pi} = \arctan\left({\widehat s(t) \over s(t)}\right).\,</math>
Then the message can be extracted from <math>s(t)\,</math> by coherent demodulation.
Practical considerations
The function h with h(t) = 1/(π t) is a non-causal filter and therefore cannot be implemented as is, if <math>s</math> is a time-dependent signal. If <math>s</math> is a function of a non-temporal variable, e.g., spatial, the non-causality might not be a problem. The filter is also of infinite support which may be a problem in certain applications. Another issue relates to what happens with the zero frequency (DC), which can be avoided by assuring that <math>s</math> does not contain a DC-component.
A practical implementation in many cases implies that a finite support filter, which in addition is made causal by means of a suitable delay, is used to approximate the computation. The approximation may also imply that only a specific frequency range is subject to the characteristic phase shift related to the Hilbert transform. See also quadrature filter.
Discrete Hilbert transform
If the signal <math>s(t)\,</math> is bandlimited, then <math>\widehat s(t)</math> is bandlimited in the same way. Consequently, both these signals can be sampled according to the sampling theorem, resulting in the discrete signals <math>s[n]\,</math> and <math>\widehat{s}[n]</math>. The relation between the two discrete signals is then given by the convolution:
- <math>\widehat{s}[n] = h[n] * s[n]\,</math>
where
- <math>
h[n]= \begin{cases} 0, & \mbox{for }n\mbox{ even},\\ \frac2{\pi n} & \mbox{for }n\mbox{ odd} \end{cases} </math>
which is non-causal and has infinite duration. In practice, a shortened and time-shifted approximation is used. The usual filter design tradeoffs apply (e.g. filter-order and latency vs. frequency-response). Also notice, that <math>h[n]\,</math> is not just a sampled version of the Hilbert filter <math>h(t)\,</math>, defined above. Rather it is a sequence with this discrete-time Fourier transform:
- <math>
H(e^{j\omega}) = \begin{cases} +j, & -\pi \leq \omega < 0 \\ -j, & 0 \leq \omega < \pi \end{cases} </math>
Image:DFT approximation to Hilbert filter.png
We note that a sequence similar to <math>h[n]\,</math> can be generated by sampling <math>H(e^{j\omega})\,</math> and computing the inverse discrete Fourier transform. The larger the transform (i.e. more samples per <math>2 \pi </math> radians), the better the agreement (for a given value of the abscissa, n). The figure shows the comparison for a 512-point transform. (Due to odd-symmetry, only half the sequence is actually plotted.)
But that is not the actual point, because it is easier and more accurate to generate <math>h[n]\,</math> directly from the formula. The point is that many applications choose to avoid the convolution by doing the equivalent frequency-domain operation: simple multiplication of the signal transform with the samples of <math>H(e^{j\omega})\,</math>, made even easier by the fact that the real and imaginary components are 0 and ±1 respectively. After transforming back to the time-domain, those applications have indirectly generated (and convolved with) not <math>h[n]\,</math>, but the DFT approximation to it. The method just described is often called fast convolution.
Fast convolution filters the signal piecewise, and the outputs are subsequently pieced back together. An important issue to understand about that approach is circular convolution. It is a type of distortion that can be avoided by overlapping the segments and choosing a segment size usually several times larger than the duration of the filter impulse response. But when the DFT approximation is used instead of a designed filter, the impulse response duration equals the segment length, and circular convolution cannot be avoided completely. However, it can be made arbitrarily small with an appropriate choice of the segment length.
See also
References
- Bracewell, R; The Fourier Transform and Its Applications, 2nd ed, 1986, McGraw-Hill.
- Carlson, A. Bruce; Crilly, Paul B.; & Rutledge, Janet C. (2002). Communication Systems (4th ed.).
External links
- Hilbert transform
- another exposition — Hilbert transform properties
- Mathworld Hilbert transform — Contains a table of transforms
- Analytic Signals and Hilbert Transform Filters
- Hilbert Transform — Contains small table of transforms