Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bivariate EMD has some bugs #44

Open
JuiceLemonLemon opened this issue Jun 13, 2018 · 12 comments
Open

bivariate EMD has some bugs #44

JuiceLemonLemon opened this issue Jun 13, 2018 · 12 comments

Comments

@JuiceLemonLemon
Copy link

Hello, when I applied the code to complex list for bivariate EMD, the result is not cosistent with matlab's.

@jaidevd
Copy link
Owner

jaidevd commented Jun 14, 2018

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.

@jaidevd
Copy link
Owner

jaidevd commented Jun 18, 2018

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.

@WRAR891
Copy link

WRAR891 commented Jun 18, 2018

@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).

@JuiceLemonLemon
Copy link
Author

@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.

@jaidevd
Copy link
Owner

jaidevd commented Jun 21, 2018

@Orangeyzao, can you provide an example? Also, which MATLAB package are you using?

@JuiceLemonLemon
Copy link
Author

self.nbit = 0
nbit's value should be reseted in "emd.py".

@jaidevd
Copy link
Owner

jaidevd commented Jun 21, 2018

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.

@JuiceLemonLemon
Copy link
Author

"while not(stop_sift) and (self.nbit < self.maxiter):"
if "self.nbit" is not reseted, above while loop will be not executed.

@jaidevd
Copy link
Owner

jaidevd commented Jun 21, 2018

That's a serious bug. Thanks for this. Fixing.

@jaidevd
Copy link
Owner

jaidevd commented Jun 23, 2018

@Orangeyzao can you please re-install from the dev branch and try again?

@WRAR891
Copy link

WRAR891 commented Jun 25, 2018

@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.

@jaidevd
Copy link
Owner

jaidevd commented Jun 25, 2018

@WRAR891 The problem discussed in #42 is not fixed, although I'm not sure if that and this issue are related.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants