README.md

June 16, 2026 · View on GitHub

Logo Logo

Build Status codecov Maven Central javadoc jitpack License: MIT DOI

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.

Quick Start


To get the latest stable release of JDSP:

Gradle

implementation 'com.github.psambit9791:jdsp:3.1.1'

Maven

<dependency>
  <groupId>com.github.psambit9791</groupId>
  <artifactId>jdsp</artifactId>
  <version>3.1.1</version>
</dependency>

For the latest development version of JDSP:

Github

git clone --single-branch --branch master https://github.com/psambit9791/jdsp.git

JitPack

You can use JitPack to use the development version on your application; use this link for reference.

Documentation

See the Wiki for an introduction to the general use of JDSP.

See the javadocs for more detailed documentation.


Citation

If you are using this software in your research, please use the following citation:

@software{sambit_paul_2026_20709545,
  author       = {Sambit Paul},
  title        = {psambit9791/jdsp: v3.1.1 (June 16, 2026)},
  month        = jun,
  year         = 2026,
  publisher    = {Zenodo},
  version      = {v3.1.1},
  doi          = {10.5281/zenodo.20709545},
  url          = {https://doi.org/10.5281/zenodo.20709545},
  swhid        = {swh:1:dir:0e980b39ee535e698f76df20b655d0fa36ca738a
                   ;origin=https://doi.org/10.5281/zenodo.3903921;vis
                   it=swh:1:snp:67f18aa02a058adeacc9228b288466d41b226
                   b22;anchor=swh:1:rel:9ffe4378ae6b1fb34333acc4df1d2
                   002e29cc0e0;path=psambit9791-jdsp-30e6938
                  },
}

Usage

ClassTypeDescription
com.github.psambit9791.jdsp.filter.ButterworthIIR FilterImplements Butterworth Filter for low-pass, high-pass, band-pass and band-stop operation
com.github.psambit9791.jdsp.filter.ChebyshevIIR FilterImplements Chebyshev Filter (Type 1 and Type 2) for low-pass, high-pass, band-pass and band-stop operation
com.github.psambit9791.jdsp.filter.BesselIIR FilterImplements Bessel Filter for low-pass, high-pass, band-pass and band-stop operation
com.github.psambit9791.jdsp.filter.FIRWin1FIR FilterImplements a windowed FIR filter for low-pass, high-pass, band-pass and band-stop operation
com.github.psambit9791.jdsp.filter.FIRWin2FIR FilterImplements a windowed FIR filter (with gain) for low-pass, high-pass, band-pass and band-stop operation
com.github.psambit9791.jdsp.filter.FIRLSFIR FilterImplements an FIR filter which has the closest frequency response as desired optimised using Least Squares Minimization
com.github.psambit9791.jdsp.filter.MedianKernel-based FilterImplements Median Filter for smoothing while maintaining the sharp edges
com.github.psambit9791.jdsp.filter.SavgolKernel-based FilterImplements Savitzky–Golay Filter for smoothing using Savitzky–Golay coefficients
com.github.psambit9791.jdsp.filter.WienerKernel-based FilterImplements Wiener Filter for the sharpening operation
com.github.psambit9791.jdsp.filter.adaptive.APAdaptive FilterImplements Affine Projection Adaptive filter
com.github.psambit9791.jdsp.filter.adaptive.GNGDAdaptive FilterImplements Generalised Normalised Gradient Descent Adaptive Filter Adaptive filter
com.github.psambit9791.jdsp.filter.adaptive.LMSAdaptive FilterImplements Least Mean Squares Adaptive filter
com.github.psambit9791.jdsp.filter.adaptive.NLMSAdaptive FilterImplements Normalised Least Mean Squares Adaptive filter
com.github.psambit9791.jdsp.filter.adaptive.RLSAdaptive FilterImplements Reduced Least Squares Adaptive filter
com.github.psambit9791.jdsp.filter.adaptive.SSLMSAdaptive FilterImplements Sign-Sign Least Mean Squares Adaptive filter
com.github.psambit9791.jdsp.filter.adaptive.NSSLMSAdaptive FilterImplements Normalised Sign-Sign Least Mean Squares Adaptive filter
com.github.psambit9791.jdsp.signal.Convolution Signal OperationImplements the convolve() and convolve1d() operation
com.github.psambit9791.jdsp.signal.CrossCorrelationSignal OperationImplements the cross-correlation operation
com.github.psambit9791.jdsp.signal.Deconvolution Signal OperationImplements the deconvolution operation for valid and full mode convolved signals
com.github.psambit9791.jdsp.signal.DetrendSignal OperationImplements the detrend operation to remove trends from a signal
com.github.psambit9791.jdsp.signal.SmoothSignal OperationImplements convolutional smoothing with rectangular and triangular window
com.github.psambit9791.jdsp.signal.DecimateSignal OperationImplements the decimation operation to downsample a signal after applying an anti-aliasing filter
com.github.psambit9791.jdsp.signal.ResampleSignal OperationImplements the resampling operation to change the number of samples in a signal using Fourier method
com.github.psambit9791.jdsp.signal.GenerateSignal OperationHelps to generate different waves and wavelets
com.github.psambit9791.jdsp.signal.peaks.FindPeakPeak DetectionIdentifies peaks in the signal
com.github.psambit9791.jdsp.signal.peaks.PeakPeak DetectionCalculates peak properties and allows filtering with them
com.github.psambit9791.jdsp.signal.peaks.SpikePeak DetectionCalculates spike properties and allows filtering with them
com.github.psambit9791.jdsp.transform.DiscreteFourierTransformationApplies the Discrete Fourier Transform on a signal
com.github.psambit9791.jdsp.transform.InverseDiscreteFourierTransformationApplies the Inverse Discrete Fourier Transform on a sequence and returns the original signal
com.github.psambit9791.jdsp.transform.FastFourierTransformationApplies the Fast Fourier Transform on a signal
com.github.psambit9791.jdsp.transform.InverseFastFourierTransformationApplies the Inverse Fast Fourier Transform on a sequence and returns the original signal
com.github.psambit9791.jdsp.transform.DiscreteSineTransformationApplies the Discrete Sine Transform on a signal
com.github.psambit9791.jdsp.transform.InverseDiscreteSineTransformationApplies the Inverse Discrete Sine Transform on a sequence and returns the original signal
com.github.psambit9791.jdsp.transform.FastSineTransformationApplies the Fast Sine Transform on a signal
com.github.psambit9791.jdsp.transform.InverseFastSineTransformationApplies the Inverse Fast Sine Transform on a sequence and returns the original signal
com.github.psambit9791.jdsp.transform.DiscreteCosineTransformationApplies the Discrete Cosine Transform on a signal
com.github.psambit9791.jdsp.transform.InverseDiscreteCosineTransformationApplies the Inverse Discrete Cosine Transform on a sequence and returns the original signal
com.github.psambit9791.jdsp.transform.FastCosineTransformationApplies the Fast Cosine Transform on a signal
com.github.psambit9791.jdsp.transform.InverseFastCosineTransformationApplies the Inverse Fast Cosine Transform on a sequence and returns the original signal
com.github.psambit9791.jdsp.transform.HilbertTransformationApplies the Hilbert Transform on a signal and provides functions to return amplitude, phase and frequency information
com.github.psambit9791.jdsp.transform.PCATransformationApplies Principal Component Analysis on a multi-channel signal and returns a low-dimensional signal
com.github.psambit9791.jdsp.transform.ICATransformationPerforms Independent Component Analysis on a multi-channel signal and returns the recovered source signals
com.github.psambit9791.jdsp.transform.ContinuousWaveletTransformationApplies the Wavelet Transform on a signal with one of Paul, Ricker or Morlet wavelet
com.github.psambit9791.jdsp.transform.InverseContinuousWaveletTransformationApplies the Inverse Wavelet Transform on a sequence transformed using CWT and returns the original signal
com.github.psambit9791.jdsp.transform.ShortTimeFourierTransformationApplies the Short Time Fourier Transform on a signal
com.github.psambit9791.jdsp.transform.InverseShortTimeFourierTransformationApplies the Inverse Short Time Fourier Transform on a sequence transformed using STFT and returns the original signal
com.github.psambit9791.jdsp.speech.SilenceSpeechProvides methods to detect periods of silence in an audio
com.github.psambit9791.jdsp.windows.BoxcarWindowingGenerates a Boxcar (Rectangular) Window
com.github.psambit9791.jdsp.windows.GeneralCosineWindowingGenerates a General Cosine Window with provided weights
com.github.psambit9791.jdsp.windows.HammingWindowingGenerates a Hamming Window
com.github.psambit9791.jdsp.windows.HanningWindowingGenerates a Hanning Window
com.github.psambit9791.jdsp.windows.BlackmanWindowingGenerates a Blackman Window
com.github.psambit9791.jdsp.windows.BlackmanHarrisWindowingGenerates a Blackman-Harris Window
com.github.psambit9791.jdsp.windows.PoissonWindowingGenerates a Poisson (Exponential) Window
com.github.psambit9791.jdsp.windows.GaussianWindowingGenerates a Gaussian Window
com.github.psambit9791.jdsp.windows.FlatTopWindowingGenerates a Flat Top Window
com.github.psambit9791.jdsp.windows.NuttallWindowingGenerates a Nuttall Window
com.github.psambit9791.jdsp.windows.TriangularWindowingGenerates a Triangular Window
com.github.psambit9791.jdsp.windows.TukeyWindowingGenerates a Tukey Window
com.github.psambit9791.jdsp.windows.BartlettWindowingGenerates a Bartlett Window
com.github.psambit9791.jdsp.windows.BartlettHannWindowingGenerates a Bartlett-Hann Window
com.github.psambit9791.jdsp.windows.BohmanWindowingGenerates a Bohman Window
com.github.psambit9791.jdsp.windows.KaiserWindowingGenerates a Kaiser Window
com.github.psambit9791.jdsp.splines.AkimaSplineSplinesProvides methods to construct an Akima Spline
com.github.psambit9791.jdsp.splines.BSplineSplinesProvides methods to construct an B-Spline
com.github.psambit9791.jdsp.splines.QuadraticSplineSplinesProvides methods to construct an Quadratic B-Spline
com.github.psambit9791.jdsp.splines.CubicSplineSplinesProvides methods to construct an Cubic B-Spline
com.github.psambit9791.jdsp.io.WavInput/OutputProvides methods to read from and write to WAV files
com.github.psambit9791.jdsp.io.CsvInput/OutputProvides methods to read from and write to CSV files
com.github.psambit9791.jdsp.misc.UtilMethodsMiscellaneousProvides Numpy style utility functions, details in Wiki
com.github.psambit9791.jdsp.misc.PlottingMiscellaneousEnables plotting of different signals and points using line and scatter plots
com.github.psambit9791.jdsp.misc.PolynomialMiscellaneousProvides methods for operating with polynomial functions
com.github.psambit9791.jdsp.misc.RandomMiscellaneousProvides methods to create random numbers as samples or multi-dimensional arrays

Supporting JDSP

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.

Become a Patron Donate on Paypal Support on Kofi


License

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.