emd.imftools.is_imf¶
- emd.imftools.is_imf(imf, avg_tol=0.05, envelope_opts=None, extrema_opts=None)[source]¶
Determine whether a signal is a ‘true IMF’.
Two criteria are tested. Firstly, the number of extrema and number of zero-crossings must differ by zero or one. Secondly,the mean of the upper and lower envelopes must be within a tolerance of zero.
- Parameters
- imf2d array
Array of signals to check [nsamples x nimfs]
- avg_tolfloat
Tolerance of acceptance for criterion two. The sum-square of the mean of the upper and lower envelope must be below avg_tol of the sum-square of the signal being checked.
- envelope_optsdict
Dictionary of envelope estimation options, must be identical to options used when estimating IMFs.
- extrema_optsdict
Dictionary of extrema estimation options, must be identical to options used when estimating IMFs.
- Returns
- array [2 x nimfs]
Boolean array indicating whether each IMF passed each test.
Notes
These are VERY strict criteria to apply to real data. The tests may indicate a fail if the sift doesn’t coverge well in a short segment of the signal when the majority of the IMF is well behaved.
The tests are only valid if called with identical envelope_opts and extrema_opts as were used in the sift estimation.