Re: Hilbert Transform
- To: mathgroup at smc.vnet.net
- Subject: [mg107243] Re: Hilbert Transform
- From: "Nasser M. Abbasi" <nma at 12000.org>
- Date: Sat, 6 Feb 2010 03:26:04 -0500 (EST)
- References: <hkgl91$70d$1@smc.vnet.net>
"dr DanW" <dmaxwarren at gmail.com> wrote in message news:hkgl91$70d$1 at smc.vnet.net... > Has an efficient Hilbert Transform or Discrete Hilbert Transform been > implemented in Mathematica? I can code my own, but my implementations > tend to be ham-handed and not too efficient. > > Daniel > I do not know about the "efficient" part, but one way I learned how to do it from a class in communication is as follows. (which I am sure you know this method) Given x(t), we want to find xx(t), where xx(t) is the Hilbert transform of x(t). Algorithm: 1. find X(w), the Fourier transform of x(t) 2. Find the Fourier transform of xx(t) which -j*sgn(w)*X(w) 3. Hence xx(t) will be the inverse Fourier transform of the result of step 2. sgn(f) is the signum function. Again, do not know if this is an "efficient" way from a computational point of view, but my guess it is faster than the direct method using convolution as in xx(t)= x(t) convolve with 1/(pi*t) ? I am not sure about the discrete case now. But may be the above could be extended to discrete data just by using DFT and IDFT with some care? --Nasser