Generalized Morse Wavelets, Ridge Extraction, Testing Suite
·
47 commits
to master
since this release
A massive update.
FEATURES (major)
- Generalized Morse Wavelets (
gmw
,morsewave
in_gmw.py
) - Automatic time-frequency ridge extraction,
ridge_extraction.py
- Signal testing suite,
_test_signals.py
, and examples - Higher-order CWT (via GMWs);
_cwt.cwt_higher_order
configs.ini
, used to control function defaults globallyscales
default improved to not over-represent low frequencies
FEATURES (other)
visuals
: addedwavelet_filterbank
,viz_cwt_higher_order
,viz_gmw_orders
(first callable aswavelet.viz('filterbank')
)visuals.wavelet_tf
: autopicksscale
forscale=None
to give a nice visual for anywavelet
ssq_cwt
&ssq_stft
: added argpreserve_transform
to (see docstrings)padsignal
: 2D input support, of form(n_signals, signal_length)
(i.e. will pad every row vector).cwt
: support forpadtype=None
maprange
: tuple of floats now supported (help(_ssq_cwt.ssq_cwt)
)Wavelet.info()
and@property
s ofWavelet
revamped for generality; added@property
s:wc_ct
,scalec_ct
.wavelets.center_frequency
: addedkind='peak-ct'
utils.find_max_scale
now simpler and more effective, guaranteeing complete spectral coverage for low frequencies
BREAKING
utils.py
->utils/*
:common.py
,cwt_utils.py
,stft_utils.py
- The default wavelet has been changed from
'morlet'
to'gmw'
- Changed Morlet's default parameters to closely match GMW's defaults per time & frequency resolution
ssq_cwt(mapkind=)
default change:'maximal'
to'peak'
scales
default change: implicitpreset
from'maximal'
to'minimal'
for low scales,'maximal'
for highssq_cwt
return order change:Tx, ssq_freqs, Wx, scales, w
toTx, Wx, ssq_freqs, scales, w, dWx
(additionally returningdWx
)ssq_stft
return order change:Tx, ssq_freqs, Sx, Sfs, dSx, w
toTx, Sx, ssq_freqs, Sfs, w, dSx
ssqueezing
&ssq_cwt
: renamedmapkind
tomaprange
difftype
:'direct'
->'trig'
_infer_scaletype
->infer_scaletype
_integrate_analytic
->integrate_analytic
find_max_scale
->find_max_scale_alt
, butfind_max_scale
is still (but a different) function
MISC
phase_cwt
: takesabs(w)
instead of zeroing negativeswavelet
inicwt
andissq_cwt
now defaults to the default waveletcwt
: added argsorder
,average
stft
&ssq_stft
: addedt
argumentstft
defaultwindow
increased frequency resolutionvisuals.imshow()
:cmap
now defaults to'jet'
instead of'bone'
forabs=True
- Added Examples to README, adjusted Minimal Example
NOTICE.txt
: added jLabsetup.py
: added short & long description, copyright, keywords
FIXES
visuals.wavelet_heatmap
: stringscales
now functionalvisuals
:w
overreached into negative frequencies for oddN
inwavelet_tf
,wavelet_tf_anim
, &wavelet_heatmap
icwt
:padtype
now functional
FILE CHANGES
ssqueezepy/
added:_gmw.py
,_test_signals.py
,ridge_extraction.py
,configs.ini
,README.md
ssqueezepy/
addedutils/
, splitutils.py
intocommon.py
,cwt_utils.py
,stft_utils.py
,__init__.py
, & moved toutils/
.tests/
added:gmw_test.py
,test_signals_test.py
,ridge_extraction_test.py
examples/
added:extracting_ridges.py
,scales_selection.py
,ridge_extract_readme/
:README.md
,imgs/*
- Created
MANIFEST.in