[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 HT[s(t)].

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.


Dick