[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