While a few great signal processing packages (e.g. DSP.jl
, SignalOperators.jl
) are available, they have limited time-frequency analysis, sonar analysis, and baseband analysis capabilities. This SignalAnalysis.jl
package aims to fill that gap. The package has grown out of my research needs, but I hope to expand it over time to provide a wide variety of time-frequency analysis, and baseband signal processing tools.
The SignalAnalysis.jl
works closely with, and complements other package like DSP.jl
, Plots.jl
and InteractiveViz.jl
, to provide its functionality. While some overlap is inevitable, we mostly leverage functionality already available in those packages, and avoid duplicating it. In some cases, simpler wrappers are provided, or some symbols are re-exported for convenience. The package also works closely with Unitful.jl
for common real-world units.
While this package works with most array-like data types, it uses the SignalBase.jl
API to represent multichannel 1D signals (time, frequency or spatial domain). While the package adopts a SampledSignal
data type to carry sampling rate information with the sampled signal, the API design allows sampling rate to be provided as a keyword argument in most cases, enabling the user to pass in any array-like data.