JDSP is a library of signal processing tools aimed at providing functionalities as available in MATLAB or in scipy-signal package for Python. The goal is to provide easy-to-use APIs for performing complex operation on signals eliminating the necessity of understanding the low-level complexities in the processing pipeline.
To get the latest stable release of JDSP:
implementation 'com.github.psambit9791:jdsp:3.1.0'
<dependency>
<groupId>com.github.psambit9791</groupId>
<artifactId>jdsp</artifactId>
<version>3.1.0</version>
</dependency>
For the latest development version of JDSP:
git clone --single-branch --branch master https://github.com/psambit9791/jdsp.git
You can use JitPack to use the development version on your application; use this link for reference.
See the Wiki for an introduction to the general use of JDSP.
See the javadocs for more detailed documentation.
If you are using this software in your research, please use the following citation:
@software{sambit_paul_2024_13998103,
author = {Sambit Paul},
title = {psambit9791/jdsp: v3.1.0 (October 27, 2024)},
month = oct,
year = 2024,
publisher = {Zenodo},
version = {v3.1.0},
doi = {10.5281/zenodo.13998103},
url = {https://doi.org/10.5281/zenodo.13998103}
}
Class | Type | Description |
---|---|---|
com.github.psambit9791.jdsp.filter.Butterworth | IIR Filter | Implements Butterworth Filter for low-pass, high-pass, band-pass and band-stop operation |
com.github.psambit9791.jdsp.filter.Chebyshev | IIR Filter | Implements Chebyshev Filter (Type 1 and Type 2) for low-pass, high-pass, band-pass and band-stop operation |
com.github.psambit9791.jdsp.filter.Bessel | IIR Filter | Implements Bessel Filter for low-pass, high-pass, band-pass and band-stop operation |
com.github.psambit9791.jdsp.filter.FIRWin1 | FIR Filter | Implements a windowed FIR filter for low-pass, high-pass, band-pass and band-stop operation |
com.github.psambit9791.jdsp.filter.FIRWin2 | FIR Filter | Implements a windowed FIR filter (with gain) for low-pass, high-pass, band-pass and band-stop operation |
com.github.psambit9791.jdsp.filter.FIRLS | FIR Filter | Implements an FIR filter which has the closest frequency response as desired optimised using Least Squares Minimization |
com.github.psambit9791.jdsp.filter.Median | Kernel-based Filter | Implements Median Filter for smoothing while maintaining the sharp edges |
com.github.psambit9791.jdsp.filter.Savgol | Kernel-based Filter | Implements Savitzky–Golay Filter for smoothing using Savitzky–Golay coefficients |
com.github.psambit9791.jdsp.filter.Wiener | Kernel-based Filter | Implements Wiener Filter for the sharpening operation |
com.github.psambit9791.jdsp.filter.adaptive.AP | Adaptive Filter | Implements Affine Projection Adaptive filter |
com.github.psambit9791.jdsp.filter.adaptive.GNGD | Adaptive Filter | Implements Generalised Normalised Gradient Descent Adaptive Filter Adaptive filter |
com.github.psambit9791.jdsp.filter.adaptive.LMS | Adaptive Filter | Implements Least Mean Squares Adaptive filter |
com.github.psambit9791.jdsp.filter.adaptive.NLMS | Adaptive Filter | Implements Normalised Least Mean Squares Adaptive filter |
com.github.psambit9791.jdsp.filter.adaptive.RLS | Adaptive Filter | Implements Reduced Least Squares Adaptive filter |
com.github.psambit9791.jdsp.filter.adaptive.SSLMS | Adaptive Filter | Implements Sign-Sign Least Mean Squares Adaptive filter |
com.github.psambit9791.jdsp.filter.adaptive.NSSLMS | Adaptive Filter | Implements Normalised Sign-Sign Least Mean Squares Adaptive filter |
com.github.psambit9791.jdsp.signal.Convolution | Signal Operation | Implements the convolve() and convolve1d() operation |
com.github.psambit9791.jdsp.signal.CrossCorrelation | Signal Operation | Implements the cross-correlation operation |
com.github.psambit9791.jdsp.signal.Deconvolution | Signal Operation | Implements the deconvolution operation for valid and full mode convolved signals |
com.github.psambit9791.jdsp.signal.Detrend | Signal Operation | Implements the detrend operation to remove trends from a signal |
com.github.psambit9791.jdsp.signal.Smooth | Signal Operation | Implements convolutional smoothing with rectangular and triangular window |
com.github.psambit9791.jdsp.signal.Decimate | Signal Operation | Implements the decimation operation to downsample a signal after applying an anti-aliasing filter |
com.github.psambit9791.jdsp.signal.Resample | Signal Operation | Implements the resampling operation to change the number of samples in a signal using Fourier method |
com.github.psambit9791.jdsp.signal.Generate | Signal Operation | Helps to generate different waves and wavelets |
com.github.psambit9791.jdsp.signal.peaks.FindPeak | Peak Detection | Identifies peaks in the signal |
com.github.psambit9791.jdsp.signal.peaks.Peak | Peak Detection | Calculates peak properties and allows filtering with them |
com.github.psambit9791.jdsp.signal.peaks.Spike | Peak Detection | Calculates spike properties and allows filtering with them |
com.github.psambit9791.jdsp.transform.DiscreteFourier | Transformation | Applies the Discrete Fourier Transform on a signal |
com.github.psambit9791.jdsp.transform.InverseDiscreteFourier | Transformation | Applies the Inverse Discrete Fourier Transform on a sequence and returns the original signal |
com.github.psambit9791.jdsp.transform.FastFourier | Transformation | Applies the Fast Fourier Transform on a signal |
com.github.psambit9791.jdsp.transform.InverseFastFourier | Transformation | Applies the Inverse Fast Fourier Transform on a sequence and returns the original signal |
com.github.psambit9791.jdsp.transform.DiscreteSine | Transformation | Applies the Discrete Sine Transform on a signal |
com.github.psambit9791.jdsp.transform.InverseDiscreteSine | Transformation | Applies the Inverse Discrete Sine Transform on a sequence and returns the original signal |
com.github.psambit9791.jdsp.transform.FastSine | Transformation | Applies the Fast Sine Transform on a signal |
com.github.psambit9791.jdsp.transform.InverseFastSine | Transformation | Applies the Inverse Fast Sine Transform on a sequence and returns the original signal |
com.github.psambit9791.jdsp.transform.DiscreteCosine | Transformation | Applies the Discrete Cosine Transform on a signal |
com.github.psambit9791.jdsp.transform.InverseDiscreteCosine | Transformation | Applies the Inverse Discrete Cosine Transform on a sequence and returns the original signal |
com.github.psambit9791.jdsp.transform.FastCosine | Transformation | Applies the Fast Cosine Transform on a signal |
com.github.psambit9791.jdsp.transform.InverseFastCosine | Transformation | Applies the Inverse Fast Cosine Transform on a sequence and returns the original signal |
com.github.psambit9791.jdsp.transform.Hilbert | Transformation | Applies the Hilbert Transform on a signal and provides functions to return amplitude, phase and frequency information |
com.github.psambit9791.jdsp.transform.PCA | Transformation | Applies Principal Component Analysis on a multi-channel signal and returns a low-dimensional signal |
com.github.psambit9791.jdsp.transform.ICA | Transformation | Performs Independent Component Analysis on a multi-channel signal and returns the recovered source signals |
com.github.psambit9791.jdsp.transform.ContinuousWavelet | Transformation | Applies the Wavelet Transform on a signal with one of Paul, Ricker or Morlet wavelet |
com.github.psambit9791.jdsp.transform.InverseContinuousWavelet | Transformation | Applies the Inverse Wavelet Transform on a sequence transformed using CWT and returns the original signal |
com.github.psambit9791.jdsp.transform.ShortTimeFourier | Transformation | Applies the Short Time Fourier Transform on a signal |
com.github.psambit9791.jdsp.transform.InverseShortTimeFourier | Transformation | Applies the Inverse Short Time Fourier Transform on a sequence transformed using STFT and returns the original signal |
com.github.psambit9791.jdsp.speech.Silence | Speech | Provides methods to detect periods of silence in an audio |
com.github.psambit9791.jdsp.windows.Boxcar | Windowing | Generates a Boxcar (Rectangular) Window |
com.github.psambit9791.jdsp.windows.GeneralCosine | Windowing | Generates a General Cosine Window with provided weights |
com.github.psambit9791.jdsp.windows.Hamming | Windowing | Generates a Hamming Window |
com.github.psambit9791.jdsp.windows.Hanning | Windowing | Generates a Hanning Window |
com.github.psambit9791.jdsp.windows.Blackman | Windowing | Generates a Blackman Window |
com.github.psambit9791.jdsp.windows.BlackmanHarris | Windowing | Generates a Blackman-Harris Window |
com.github.psambit9791.jdsp.windows.Poisson | Windowing | Generates a Poisson (Exponential) Window |
com.github.psambit9791.jdsp.windows.Gaussian | Windowing | Generates a Gaussian Window |
com.github.psambit9791.jdsp.windows.FlatTop | Windowing | Generates a Flat Top Window |
com.github.psambit9791.jdsp.windows.Nuttall | Windowing | Generates a Nuttall Window |
com.github.psambit9791.jdsp.windows.Triangular | Windowing | Generates a Triangular Window |
com.github.psambit9791.jdsp.windows.Tukey | Windowing | Generates a Tukey Window |
com.github.psambit9791.jdsp.windows.Bartlett | Windowing | Generates a Bartlett Window |
com.github.psambit9791.jdsp.windows.BartlettHann | Windowing | Generates a Bartlett-Hann Window |
com.github.psambit9791.jdsp.windows.Bohman | Windowing | Generates a Bohman Window |
com.github.psambit9791.jdsp.windows.Kaiser | Windowing | Generates a Kaiser Window |
com.github.psambit9791.jdsp.splines.AkimaSpline | Splines | Provides methods to construct an Akima Spline |
com.github.psambit9791.jdsp.splines.BSpline | Splines | Provides methods to construct an B-Spline |
com.github.psambit9791.jdsp.splines.QuadraticSpline | Splines | Provides methods to construct an Quadratic B-Spline |
com.github.psambit9791.jdsp.splines.CubicSpline | Splines | Provides methods to construct an Cubic B-Spline |
com.github.psambit9791.jdsp.io.Wav | Input/Output | Provides methods to read from and write to WAV files |
com.github.psambit9791.jdsp.io.Csv | Input/Output | Provides methods to read from and write to CSV files |
com.github.psambit9791.jdsp.misc.UtilMethods | Miscellaneous | Provides Numpy style utility functions, details in Wiki |
com.github.psambit9791.jdsp.misc.Plotting | Miscellaneous | Enables plotting of different signals and points using line and scatter plots |
com.github.psambit9791.jdsp.misc.Polynomial | Miscellaneous | Provides methods for operating with polynomial functions |
com.github.psambit9791.jdsp.misc.Random | Miscellaneous | Provides methods to create random numbers as samples or multi-dimensional arrays |
JDSP is an open source project.
You can help by becoming a sponsor on Patreon or doing a one time donation on PayPal.
You can also show your appreciation on Ko-Fi.
This project is licensed under the MIT License - see the LICENSE file for details.
You are free to use, modify and distribute this software, as long as the copyright header is left intact.