Monday, March 14, 2005

Hilbert transform in HHT code

Examining Omega vs Time in individual IMFs showed a high frequency oscillation - there is a clear trend with successive bins above and below the trend. This oscillation does not show up in Delta but does in Kappa (the Hilbert transform). This led me to examine the Hilbert transform code. The Hilbert transform algorithm is to forward FT the time series, modify the result, then inverse FT. The imaginary part of the result is the Hilbert transform while the real part should be the input time series. Comparing the input time series with the real part of the result showed a difference at the ~1% level. This is much more than the numerical accuracy of the code.

Googling to find other descriptions of the algorithm I found a minor error in the code. The first and Npoints/2 + 1 points in the FFT should be left unchanged - not multiplied by 2
(like the 2 - Npoints/2 points). Fixing this removed the difference between the input and output time series. Unfortunately, it still left the oscillation in the transform.

I don't understand the origin of this oscillation at present but I was able to remove it by running a three-point triangular filter over the transform array. This in turn removed the high-frequency oscillation in the Omega vs Time plot.

Keywords: HHT, gravitational waves

No comments: