Open OverLordGoldDragon opened 3 years ago
1. Real chirp + distortions. CWT, complex morlet. -- all coefficients L1-normalized. (-- code)
scipy
, medium for pywt
, none for ssqueezepy
ssqueezepy
has least uncertain frequency band; pywt
and scipy
are evenscipy
; excess energy in lower scales, which is why the rest of the plot looks dark.pywt
, slight for scipy
, none for ssqueezepy
.ssqueezepy
dominating with a low-uncertainty band. pywt
and scipy
suffering from a vertically wide band.pywt
and scipy
capture amplitude modulation due to aliasing. ssqueezepy
is robust to it; whether or not that's desired might differ, but pywt
and scipy
seem to clearly exaggerate the effects of aliasing.x_high
, but squeezepy
is virtually blind to noise at very low frequencies, whereas pywt
and scipy
certainly aren't.2. Pure tones; mixed, transitioning -- same plot layout as in 1 (-- code)
scipy
and pywt
, none for ssqueezepy
; symmetric padding is advantageous if the extension is of a periodic signal, and differentiable at boundaryssqueezepy
captures relative energies more accuratelyssqueezepy.cwt_fwd
higher scales mystery solved; it is a boundary effect due to discontinuous first derivative of sin
using symmetric extension; replacing with cos
vanishes the effect. This can also be seen with padsignal
inserted in pywt.cwt
.
A thread to share/discuss example comparisons between implementations.