JDSP is my attempt at creating a Java library capturing some of the functionality that I enjoy in Python
matplotlib - Plotting library
numpy - Numerical computing
scipy.signal - Signal processing
Updates (Jan 2026)
Updated to use Java 21
Swapped to use `jdk.incubator.vector`
This includes filter design functions:
Square Root Raised Cosine
Windowing Method
Bartlett
Hamming
Hanning
FilterObject is a convenience function to store the designed filter so that it may be applied. This can be updated to store the internal state of the filter.
Convolution
Matrix operations
Row operations
Determinant
Gauss-Jordan Elimination
Vector operations
Process 2 vectors:
Element-wise add/divide/multiply/subtract
Dot product
Process over all elements (product, sum, L1 norm, L2 norm)
A number of plots are available to allow for analysis in Java. I put less emphasis on this when I realized I can use PyJnius to call Java from Python. This would allow me to use plots from matplotlib instead.
Line Plot
Spectrogram
TableUI
SpectrogramFrame is available as a standalone application to load a file an analyze the spectrogram. This is called by "java -cp jdsp-1.01.jar net.kcundercover.jdsp.swing.SpectrogramFrame"