[Scipy-tickets] [SciPy] #1506: scipy.fftpack.hilbert differs from textbook definition

SciPy Trac scipy-tickets@scipy....
Sun Sep 4 04:23:12 CDT 2011


#1506: scipy.fftpack.hilbert differs from textbook definition
---------------------------+------------------------------------------------
 Reporter:  xinchuan       |       Owner:  somebody   
     Type:  defect         |      Status:  new        
 Priority:  normal         |   Milestone:  Unscheduled
Component:  scipy.fftpack  |     Version:  0.9.0      
 Keywords:                 |  
---------------------------+------------------------------------------------

Comment(by xinchuan):

 Yes, the documentation and implementation do agree for
 scipy.fftpack.hilbert. i.e. H(w) = +1j*sign(w)

 Note however that there is another function "scipy.signal.hilbert" which
 computes the analytic signal. Its documentation says "x_a = F^{-1}(F(x)
 2U) = x + i y" where "y is the Hilbert transform of x". The "x + i y"
 follows the H(w) = -1j*sign(w) convention.

 So mainly the confusion for the user would be that 2 differing conventions
 are used within scipy.
 i.e. signal.hilbert(x) == x - 1j * fftpack.hilbert(x) as currently
 implemented.

 I suspect fftpack.hilbert is not used so much directly. I am more
 interested in the analytical signal than computing the hilbert transform
 as an intermediate.
 FWIW, "Discrete Time Signal Processing by Oppenheim and Schafer" use H(w)
 = -1j*sign(w)

-- 
Ticket URL: <http://projects.scipy.org/scipy/ticket/1506#comment:2>
SciPy <http://www.scipy.org>
SciPy is open-source software for mathematics, science, and engineering.


More information about the Scipy-tickets mailing list