From: dot@dot.dot (A.G.) Subject: Re: Code for Hilbert Transform ? Date: Fri, 26 May 2000 09:50:00 -0700 Newsgroups: sci.math.num-analysis Summary: [missing] In article <260520000759218739%pecora@anvil.nrl.navy.mil>, "Louis M. Pecora" wrote: > Does anyone know of or have any good C code for the Hilbert transform? > I checked Netlib and NR. Nothing. A web search came up with a simple, > direct integration scheme, but I am suspicious that it's that simple. > I would guess the pole would have to be treated very carefully. A > Fourier space approach appears possible (it's a convolution), but not > clear to me how to keep it stable and robust. Any help or pointers > appreciated. One of the reasons why you do not need special code for the Hilbert Transform is because it can be derived from a Fourier Transform. To learn more about the relationship see the Fourier Analysis book by E.C. Titchmarsh (used to be Chelsea press but I'm not sure it's in print any more). If memory serves, it was Titchmarsh's theorems that actually establish the relationships. The nice part about Titchmarsh's theorem is the connection between the Hilbert transform and the Fourier integral which is easier to perform numerically. Given the Functions F(t) and G(t), related by G(t)=-iF(t)sgn(t), (1) then their Fourier transform f(x) and g(x) respectively are the Hilbert Transforms of each other: g(x)=(1/pi) P Integal[f(t) dt/(t-x) ] , (2) f(x)=-(1/pi) P Integral[g(t) dt/(t-x)]. (3) Here the integrals are from -infinity to infinity and P stands for the principal value at t=x. The bottom line is, if you want to perform the Hilbert transform, use the FFT in equation (1). You can perform all these calculations with IGOR Pro. Checkout http://www.wavemetrics.com A.G. WaveMetrics, Inc.