JuliaDSP / Wavelets.jl

A Julia package for fast discrete wavelet transforms and utilities
Other
185 stars 30 forks source link

CWT #35

Closed dsweber2 closed 4 years ago

dsweber2 commented 6 years ago

This did need quite a bit of work. To double check his functions, I compared with the methods of Wavelab implemented in MATLAB, and eventually Wikipedia, which had an implementation that was more sampling agnostic (no dt needed).

In so doing, I had to add a couple of parameters to the Morlet wavelet, since these are of a different type from those of the DOG or Paul wavelet. I would also like to add some aliases for various types of DOGs, e.g. mexh, which is dog2, but I'm not entirely sure how to do this neatly. Your thoughts would be appreciated.

One thing that I wasn't sure about was whether I should index by frequency or scale; I opted for scale, but it shouldn't be difficult to change to match with the rest of your code if the rest of the package differs.

I haven't included any plotting functions because I prefer to use plots.jl heatmaps for plotting.

As for tests, I added ones to make sure the size was correct, to check the types are right (always a complex version of whatever is put in), to make sure the parametric ones don't have types of giant size, and to check that nonsense wavelet classes aren't accepted as input. I'm not entirely sure how to perform accuracy tests, since I haven't done inversion (I may get around to it eventually, it isn't as natural an operation as for the orthogonal families), and the implementation is a little different from that of Wavelab. Visually, it has the behavior I would expect on the bump example.

I haven't added anything to the Readme, since I wanted to wait until things weren't changing.

dsweber2 commented 6 years ago

Travis seems to be having issues with conv, since it's using the nightly build of v0.7. This has been moved to DSP. Since Wavelets.jl is part of this, I'm hesitant to just add using DSP at the top of Wavelets.jl

gummif commented 6 years ago

Thanks for that. I haven't had time to look at it, but I think it's fine to depend on DSP (conditionally, depending on the version). I hope I can review this in detail soon.

coveralls commented 5 years ago

Coverage Status

Coverage decreased (-5.6%) to 90.473% when pulling 971d1b56f38f060122b63b0cbf3b767aba40c442 on dsweber2:master into 1e1640cda5ea5df6b9093a4fafcbcaf6621457c4 on JuliaDSP:master.

dsweber2 commented 4 years ago

So all the tests work, and I actually included a Project.toml and a Manifest.toml. I'm getting tired of referring people to my fork, as its a bit more of a pain for them to install, and there have been several people asking about having this functionality. What more would you need to see to have this included?

gummif commented 4 years ago

Thank you very much for having the patience to work on this for almost (sorry for that) 2 years. 👍 I don't use really use Julia much nowadays and it looks like you know what you are doing and are up to date with the ecosystem, so I will merge this now.