pyhht
pyhht copied to clipboard
bivariate EMD has some bugs
Hello, when I applied the code to complex list for bivariate EMD, the result is not cosistent with matlab's.
Thanks, @Orangeyzao for pointing this out, as I work on #42, I am realizing that the bivariate framework will require some debugging and improvement. I'll update here when it is fixed.
Hi @Orangeyzao,
Can you please re-install pyhht from the latest dev branch and check the bivariate EMD again?
Please note that it is no longer necessary to specify the is_mode_complex option in the EMD class. It will automatically be inferred from the input provided. If the input signal has any non-zero imaginary component, EMD will automatically be bivariate.
Please let me know if this works.
@jaidevd
Thinking about this a bit more, I'd expect the same modes as without the frequency translation, plus an additional mode at the frequency of the modulator (fc=0.1).
@jaidevd I have re-installed, but the result is still different from matlab's, the number of imfs is too small, sometimes just one imf component.
@Orangeyzao, can you provide an example? Also, which MATLAB package are you using?
self.nbit = 0 nbit's value should be reseted in "emd.py".
Could you elaborate further?
self.nbit has nothing to do with the number of IMFs. That variable simply records the number of iterations it takes to reach an IMF. It gets reset after each IMF is extracted.
"while not(stop_sift) and (self.nbit < self.maxiter):" if "self.nbit" is not reseted, above while loop will be not executed.
That's a serious bug. Thanks for this. Fixing.
@Orangeyzao can you please re-install from the dev branch and try again?
@jaidevd
Not sure if this was supposed to fix handling of complex-valued inputs, but I assume not as results on same are still incorrect.
@WRAR891 The problem discussed in #42 is not fixed, although I'm not sure if that and this issue are related.