[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: HILBERT TRANSFORM
At 3:00 PM -0500 11/27/06, Fred Herzfeld wrote:
Suppose I have a finite sampled set of data of length 2^n of a function
s(t) = cos(2*pi*f-phi) where f and phi are constant with time and s(t)
is sampled at time intervals so that s(t) falls exactly into the
second FFT bin. If I perform the FFT, modify the output by 90
degrees and perform an inverse FFT, the output of the FFT will be
exactly the Hilbert Transform of the original series s(t) namely
Fred, the fundamental complication to this approach is that the
Hilbert Transform is defined on functions of continuous time, and not
on finite sets of samples.
In the case where the function of time is periodic and bandlimited,
it can be represented by a finite Fourier series, and then each
component can be shifted 90 degrees and the periodic Hilbert
Transform constructed, as you've done with this example. When the
DFT correctly includes the Fourier series exactly, it works.
Now I repeat the same process except that I change the frequency
(still constant) to 7*f/8 and call the time series S1(t). The output
of the FFT will now contain many non zero bins. In theory I should
still be able to modify the FFT output and do the inverse FFT to get
the Hilbert Transform of S1(t).
In this case your finite set of samples is not synchronized to the
period of the signal, so you don't have a representation of the
Fourier series of the stated sinusoid, so all bets are off. Treating
the samples circularly, as samples of a periodic waveform, the
corresonding continuous-time periodic signal has a big jump where
your samples wrap around from the end back to the beginning. There
is of course a unique bandlimited periodic function that has those
samples, and what you'll get will indeed be the Hilbert Transform of
that strange-looking signal, kink and all.
(1) Can I really compute HT[S1(t)] correctly ?
(2) If I can, how should the output of the FFT of S1(t) be modified
A window multiplying the original samples will help a lot. That way,
there's no funny jump between the end and the beginning of the finite
set of samples, assuming the window tapers to zero at both ends.
Then you'll get the Hilbert Transform of the windowed signal, which
might be useful, depending on your application.