HILBERT_SPEC Name
HILBERT_SPEC
Purpose
This function estimates the Hilbert-Huang amplitude spectrum of an
input matrix of time series (e.g. intrinsic mode functions).
Category
Time series analysis
Calling Sequence
Result = HILBERT_SPEC( Data, Dt ) Inputs
Data: Matrix of time series (e.g. intrinsic mode functions), of
type floating point. Dimensions are length of time series by
number of time series.
Dt: The time step of the data in Data. Of type floating point. If
TIME is input, Dt is determined from TIME.
Keyword Parameters
FILTER: A string containing the name of the filter to use for two
dimensional smoothing of the spectrum. The default is set in
FILTER_ND.pro.
FREQ: Returns a vector of type floating point containing the
frequency values corresponding to the spectral output.
INSTFREQ: Returns a matrix containing the instantaneous frequencies
of each component time series. Dimensions are the same as
Data, except for one less value in each of the time series.
Of type floating point.
MARGINAL: Returns a vector of type floating point containing the
marginal power spectrum, determined by integrating the
instantaneous power spectrum over time.
NFILTER: An odd integer scalar containing the window width for two
dimensional smoothing of the spectrum. If not set then no
smoothing is applied.
TIME: A vector of type floating point containing the time values
corresponding to the values in Data.
Outputs
Result: The time-frequency-amplitude matrix containing the Hilbert
amplitude spectrum. Dimensions are number of frequency
components by length of time series minus one. Of type
floating point.
FREQ, INSTFREQ, MARGINAL
Uses
CONSTANTS.pro
FILTER_ND.pro
FIRST_DIFF.pro
IMAG.pro
REAL.pro
Procedure
This function uses the IDL HILBERT function to estimate the Hilbert
transform of the inputted time series, and then uses this to estimate
the instantaneous frequency spectrum according to Huang et alii.
Example
Given a time series Y, with time step DT and time vector TIME.
Estimate the intrinsic mode functions.
imf = EMD( y )
Estimate the Hilbert-Huang instantaneous spectrum.
hhs = HILBERT_SPEC( imf, dt, freq=freq )
Contour plot the instantaneous power spectrum.
contour, hhs^2, time[0:n_elements(time)-2], freq
References
Huang et al, Royal Society Proceedings on Math, Physical,
and Engineering Sciences, vol. 454, no. 1971, pp. 903-995,
8 March 1998
Modification History
MatLab: Ivan Magrin-Chagnolleau (ivan@ieee.org)
Matlab: Anthony Wilson (anthony.wilson:zoo.ox.ac.uk), 2003
Written by: Daithi A. Stone (stoned@atm.ox.ac.uk), 2003-08-13
(adapted MatLab to IDL)
Modified: DAS, 2004-07-27 (documentation for routine library)
Modified: DAS, 2004-10-25 (outsourced work to unwrap.pro)
Modified: DAS, 2005-08-05 (replaced sum_row.pro with total)