Synchrosqueezing, wavelet transforms, and time-frequency analysis in Python
Synchrosqueezing in Python
Synchrosqueezing is a powerful reassignment method that focuses time-frequency representations, and allows extraction of instantaneous amplitudes and frequencies.
Features
- Continuous Wavelet Transform (CWT), forward & inverse, and its Synchrosqueezing
- Short-Time Fourier Transform (STFT), forward & inverse, and its Synchrosqueezing
- Wavelet visualizations and testing suite
- Generalized Morse Wavelets
- Ridge extraction
- Fastest wavelet transforms in Python1, beating MATLAB
1: feel free to open Issue showing otherwise
Installation
pip install ssqueezepy
. Or, for latest version (most likely stable):
pip install git+https://github.com/OverLordGoldDragon/ssqueezepy
GPU & CPU acceleration
Multi-threaded execution is enabled by default (disable via os.environ['SSQ_PARALLEL'] = '0'
). GPU requires CuPy >= 8.0.0
and PyTorch >= 1.8.0 installed (enable via os.environ['SSQ_GPU'] = '1'
). pyfftw
optionally supported for maximum CPU FFT speed.
See Performance guide.
Benchmarks