-
-
Notifications
You must be signed in to change notification settings - Fork 34
Home
eDSP (easy Digital Signal Processing) is a digital signal processing framework written in modern C++ that implements some of the common functions and algorithms frequently used in digital signal processing, audio engineering & telecommunications systems.
It aims to provide efficient and streamlined base calculations while at the same time having a straightforward and easy-to-use interface similar to another numeric language like MATLAB. The library integrates a C++ and Python interfaces and supports Windows, Linux, Mac OS, iOS and Android.
Got it! Excellent question! There are plenty of established DSP frameworks for C++. You may be wondering, What's the point of implementing other DSP framework? What does eDSP bring to the party that differentiates it from these?
eDSP is a modern framework written for modern C++ developers. It is an alternative for those who want a powerful template DSP library that keeps a simple STL-like API. eDSP is a framework that:
- Headers only, just copy and use.
- Template library: supports single and double floating point, and fixed-point operations.
- Integrates an easy to use interface, STL-like API.
- Provides fast implementations: check the available benchmarks.
- Aims to be cross-platform
- Supports modern C++11/14/17 features
- Integrates bindings for different languages: Python and JavaScript
eDSP relies in a modern C++ compiler and some standard third-party dependencies. The idea is to build a framework compatible with most of the modern platforms with the minimum modifications.
Those are the supported platforms:
- Linux, FreeBSD, OpenBSD, Solaris, AIX
- Windows (msvc 2013+, cygwin)
- macOS (clang 3.5+), iOS
- Android
eDSP is organized in different modules. Each module integrates different related features. This is the list of the available modules:
- Audio Coder: encoder/decoder for different audio formats.
- Digital filters: Biquad, FIR, IIR, moving average, moving median etc.
- Spectral analysis: Fourier transform, Hilbert transform, Hartley transform, cepstrum, periodogram etc.
- Oscillators: sinusoidal, square, triangular and sawtooth signals.
- Random: binary sequence, uniform distribution, Bernoulli, Weibull, Student, Fisher etc.
- Math: extra functionalities not available in the C++ standard.
- Noising: white noise, brown noise, pink noise, Perlin noise etc.
- Algorithms: clipper, amplifier, lineal-space, logarithmic-space , padder, normalizer etc.
- Quantizer: u-law, A-law etc.
- Statistics: moment, median, skewness, kurtosis etc.
- Windowing: Bartlett, Hamming, Kaiser, Welch, Blackman etc.
- Modulation: AM, FM, M-PSK, OFDM etc.
- MIR: feature engineering for MIR (Music Information Retrieval) applications.
- Equalization: LMS, RLS etc.
Note: eDSP is a framework under construction. Some features are scheduled for future development.
Please check the official doc or the list of available features to find a detailed information of each module.
easy DSP - A cross-platform Digital Signal Processing library written in modern C++.