Hilbert Transform
Contents
Firstly, compute the FFT of real signal $x(n)$ $$ X(k) = \mathscr{F}[x(n)]=\sum_{n=0}^{N-1}x(n)e^{-\frac{i2\pi kn}{N}} \tag{1}. $$
Let the FFT of $h(n)$ be $H(k)$ to yield
$$
H(k)=
\begin{cases}
&X(k), &\text{ for } k=0 \\
&2X(k), &\text{ for } k=1, 2, \cdots, \frac{N}{2}-1 \\
&0, &\text{ for } k=\frac{N}{2}, \frac{N}{2}+1,\cdots, N-1
\end{cases} \tag{2}.
$$
The hilbert transform $h(n)$ of the real signal $x(n)$ is given by
$$
h(n) = \mathscr{I} \{ \mathscr{F}^{-1}[H(k)] \} \tag{3}.
$$
$h(n)$ and $x(n)$ are the imaginary and real parts of signals, respectively.
Here, we implement the $Hilbert \ transform$ using Python and compare it with that
computed with $hiltert$ method in $scipy.signal$.
|
|
The envelope of a signal can be calculated using $Hilbert \ transform$ with
$$
E(n) =\sqrt{x^2(n)+h^2(n)} \tag{4}.
$$
|
|
Author Geophydog
LastMod 2020-09-03