A highly optimized C++ library for fast continuous wavelet transform calculations in C++, Python, and MATLAB.
fCWT is a highly optimized library for computing the continuous wavelet transform (CWT) with exceptional speed and accuracy. It solves the problem of slow time-frequency analysis in scientific and engineering applications by providing a C++-based implementation that is 34-120x faster than competing algorithms. The library supports C++, Python, and MATLAB interfaces for broad usability.
Researchers, engineers, and data scientists working with time-frequency analysis in fields like audio processing, vibration analysis, neurophysiology, and any domain requiring real-time or high-performance signal processing.
Developers choose fCWT for its unmatched speed, real-time capabilities up to 200kHz, and high-resolution output without wavelet estimation compromises. Its multi-language support and ease of integration make it a versatile tool for accelerating CWT computations across different platforms.
The fast Continuous Wavelet Transform (fCWT) is a library for fast calculation of CWT.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Benchmark results show fCWT is 34-120x faster than competitor algorithms in C++, Python, and MATLAB, as detailed in the README tables.
Capable of processing signals with sample frequencies up to 200kHz in real time, enabling demanding applications like audio and vibration analysis.
Offers seamless integration via C++, Python (pip install), and MATLAB (MEX-files), with clear examples and tutorials for each language.
Provides very high time-frequency resolution without relying on wavelet estimation, ensuring accurate results for scientific data.
Requires CMake, a C++17 compiler, and FFTW with OpenMP and AVX optimizations for best performance, which can be difficult to configure across platforms.
The README only demonstrates the Morlet wavelet, potentially restricting use cases that require other wavelet types for specific analyses.
The library admits that using fCWT via MATLAB interface leads to decreased performance compared to command-line usage, as noted in the MATLAB section.