Open OverLordGoldDragon opened 4 years ago
@DavidBondesson1 Done learning; synchrosqueezing is fairly ingenious.
Before the first release I'd like to iron-out all key implementation details and write an explanatory post on SSWT. Shouldn't take very long, but it'd help to run some tests on real data before the release; if I supply code with fixes that only requires inputting data (e.g. test(x)
), and outputs images and text, could you run it?
In the meantime, stay clear of opts={'findbins':'min'}
, it's very wrong, and possibly {'squeezing':'measure'}
; I'll be fixing these.
@OverLordGoldDragon : Sure, I would be happy to.
Haven't got the OK I want before sharing signals all together, but worst case I am certain that I can tweak them slightly to the point where they are still 'realistic'. Do you have any soft deadline for when you want to/can release?
@DavidBondesson1 Sounds good. Though you may not have to tweak much; I mainly seek .png images or otherwise outputs that are very lossy and won't permit accurate reconstructions. Still, I'll explicitly clarify what I look for in code comments so you can note if there are significant deviations.
No carved deadline, but probably a week max. I validated synsq_cwt_fwd
is good to go as-is, so long as you only tweak opts
pertinent to wfiltfn
. A detail, you may need to replace _vectorized
with _for_loop
for large inputs, as former uses much more memory. I'll share test code when ready.
Ok, Sounds good!
I will try my best to get this done within a week but I am dealing with several large projects at the moment (both professional and personal) and if I won't make it in time I would ask you that you just continue the release.
EEG. abs
, abs
, .real
-- flipud(Tx)
-- Complex morlet, mu=6, nv=32
.
Interesting to observe Tx
moving most low-frequency content upward, sparsifying the representation, allowing compression or relaxing CWT computation on higher scales. It also populates higher frequencies, making better use of 2D space than CWT did (as latter includes non-significant yet non-trivial components that can't be just dropped).
Will occasionally clear comments to focus thread on examples rather than side-discussion.
As promised (in a StackExchange thread) ... some examples for you to use for testing (and comparison) and as examples and to add to your test suite or examples archive. Just grab the sounds from the videos.
15 second segment of a drum solo at 1/4 speed https://www.youtube.com/watch?v=6orozX1GD1w
(House music with preacher talking) https://www.youtube.com/watch?v=nd2J4xTrSHQ
(The drum at full and 1/4 speed, a segment of the 2001 theme and the House segment with preacher at full and 1/4 speed) https://www.youtube.com/watch?v=itUSUau6DJM
((The Vampire Song) https://www.youtube.com/watch?v=OugT7uGGtNg
You may want to consider expanding your software to include a fuller range of transforms (or to use for comparison). The time-scale transform, which the videos show an early implementation of (in the process of being upgraded), is described in more detail in the description page of the Vampire Song. Its main property is that it is invariant with respect to arbitrary frequency reassignment (e.g. even a random scrambling of frequencies): an arbitrarily-reassigned scalogram will yield, upon inversion, the same result as the original scalogram - both reproducing the original signal.
Thread for sharing/discussing applications on real-world data. Feel free to open a separate Issue if needed.
Comments occasionally cleared to keep focus on examples.