This page is the reference for the functions in the EMD package. Further details can be found on the page for each individual function.

Sift Functions#

Primary user-level functions for running the sift.

emd.sift.sift(X[, sift_thresh, max_imfs, ...])

Compute Intrinsic Mode Functions from an input data vector.

emd.sift.ensemble_sift(X[, nensembles, ...])

Compute Intrinsic Mode Functions with the ensemble EMD.

emd.sift.complete_ensemble_sift(X[, ...])

Compute Intrinsic Mode Functions with complete ensemble EMD.

emd.sift.mask_sift(X[, mask_amp, ...])

Compute Intrinsic Mode Functions using a mask sift.

emd.sift.iterated_mask_sift(X[, mask_0, ...])

Compute Intrinsic Mode Functions using an iterated mask sift.

emd.sift.sift_second_layer(IA[, sift_func, ...])

Compute second layer intrinsic mode functions.

emd.sift.mask_sift_second_layer(IA, mask_freqs)

Compute second layer IMFs using a mask sift.

Sift Utilities#

Low-level utility functions used by the sift routines.


Return a SiftConfig with default options for a specified sift variant.

emd.sift.get_next_imf(X[, env_step_size, ...])

Compute the next IMF from a data set.

emd.sift.get_next_imf_mask(X, z, amp[, ...])

Compute the next IMF from a data set a mask sift.

emd.sift.interp_envelope(X[, mode, ...])

Interpolate the amplitude envelope of a signal.

emd.sift.get_padded_extrema(X[, pad_width, ...])

Identify and pad the extrema in a signal.

emd.sift.fixed_stop(niters, max_iters)

Compute the fixed-iteraiton sift stopping metric.

emd.sift.sd_stop(proto_imf, prev_imf[, sd, ...])

Compute the sd sift stopping metric.

emd.sift.rilling_stop(upper_env, lower_env)

Compute the Rilling et al 2003 sift stopping metric.

emd.sift.energy_stop(imf, residue[, thresh, ...])

Compute energy change in IMF during a sift.

Frequency Functions#

Computing frequency transforms from narrow band oscillations (IMFs).

emd.spectra.frequency_transform(imf, ...[, ...])

Compute instantaneous phase, frequency and amplitude from a set of IMFs.

emd.spectra.phase_from_complex_signal(...[, ...])

Compute the instantaneous phase from a complex signal.

emd.spectra.freq_from_phase(iphase, sample_rate)

Compute the instantaneous frequency from the instantaneous phase.

emd.spectra.phase_from_freq(ifrequency, ...)

Compute the instantaneous phase of a signal from its instantaneous frequency.

Spectrum Functions#

Compute Hilbert-Huang and Holospectra from instantaneous frequency data.

emd.spectra.hilberthuang(IF, IA[, edges, ...])

Compute a Hilbert-Huang transform (HHT).

emd.spectra.holospectrum(IF, IF2, IA2[, ...])

Compute a Holospectrum.

emd.spectra.hilbertmarginal(IF, IA[, order, ...])

Compute a generalised Hilbert marginal spectrum.

Spectrum Utilities#

Low-level helper functions for spectrum computations.

emd.spectra.define_hist_bins(data_min, ...)

Define the bin edges and centre values for use in a histogram.

emd.spectra.define_hist_bins_from_data(X[, ...])

Find the bin edges and centre frequencies for use in a histogram.


Assess and analyse IMFs and their derivatives.

emd.imftools.amplitude_normalise(X[, ...])

Normalise the amplitude envelope of an IMF to be 1.

emd.imftools.wrap_phase(IP[, ncycles, mode])

Wrap a phase time-course.


Count the number of zero-crossings within a time-course.

emd.imftools.is_imf(imf[, avg_tol, ...])

Determine whether a signal is a 'true IMF'.


Compute the index of orthogonality from a set of IMFs.

emd.imftools.check_decreasing_freq(IF[, mode])

Similar to method 1 in http://dx.doi.org/10.11601/ijates.v5i1.139.


Compute the Pseudo Mode Mixing Index from a set of IMFs.

emd.imftools.assess_harmonic_criteria(IP, IF, IA)

Assess IMFs for potential harmonic relationships.

emd.imftools.assess_joint_if(imf[, ...])

Assess whether two signals have a well formed joint instantaneous frequency.

emd.imftools.apply_epochs(X, trls)

Apply a set of epochs to a continuous dataset.

emd.imftools.find_extrema_locked_epochs(X, ...)

Define epochs around peaks or troughs within the data.


Create artificial oscillations.

emd.simulate.ar_oscillator(freq, ...[, r, ...])

Create a simulated oscillation using an autoregressive filter.

emd.simulate.abreu2010(f, nonlin_deg, ...)

Simulate a non-linear waveform using equation 7 in [R441f6af671e2-1].

emd.simulate.compute_joint_if(freq, amp, phase)

Compute joint instantaneous frequency from a set of oscillations.

Cycle Analysis#

Identify and analyse single cycles of an oscillation.

emd.cycles.Cycles(IP[, phase_step, ...])

Find, store and analyse single cycles [R9208c59e353f-1].

emd.cycles.get_cycle_vector(phase[, ...])

Identify cycles within a instantaneous phase time-course.

emd.cycles.get_cycle_stat(cycles, values[, ...])

Compute the average of a set of observations for each cycle.

emd.cycles.get_control_points(x, cycles[, ...])

Identify sets of control points from identified cycles.

emd.cycles.phase_align(ip, x[, cycles, ...])

Align a vector of observations to a template phase time-course.


Compute the time-domain waveform of an phase-aligned IF profile.

emd.cycles.bin_by_phase(ip, x[, nbins, ...])

Compute distribution of x by phase-bins in the Instantaneous Frequency.

emd.cycles.mean_vector(IP, X[, mask])

Compute the mean vector of a set of values wrapped around the unit circle.

emd.cycles.kdt_match(x, y[, K, ...])

Find unique nearest-neighbours between two n-dimensional feature sets.

Package Utilities#

Routines related to python, logging and installation.


Get directory path of currently installed & imported emd.


Read version of currently installed & imported emd.

emd.logger.set_up([prefix, log_file, level, ...])

Initialise the EMD module logger.