dsp
dsp
cargo install dsp
dsp

dsp

Digital Signal Processing

by Krzysztof Langner

0.8.1 (see all)License:MIT OR Apache-2.0
cargo install dsp
Readme

Digital Signal Processing

Build Status Crates.io Crates.io docs.rs

dsp is an early-stage open-source project. It means that API can change at any time. If you think that this library can help you, then let me know. We can discuss future direction and try to stabilize the API.

The folder examples contains demo programs which shows how to use this library.

Features

Signal generators

Signals generators are nodes with the state. This allows to generate continuos signal across multiple buffers. Implemented generators:

  • Impulse
  • Step
  • Sinusoid
  • Triangle
  • Square
  • Chirp
  • Noise

Filters

  • Biquad
  • Leaky Integrator (Exponential Smoothing)

Window functions

  • Rectangular
  • Triangular
  • Welch
  • Sine
  • Hann
  • Hamming
  • Blackman

Frequency domain

  • FFT forward and inverse using RustFFT crate.
  • Find peak frequency

Runtime

There is minimal support for runtime. Runtime is designed as a graph of nodes. Node is a single computation which takes buffer as an input and generate data to provided output buffer. It means that node do not allocate memory for data. There are 3 types of node:

  • SourceNode - Generate new data
  • ProcessingNode - Processing data between buffers
  • SinkNode - Takes data from buffer and consumes it.

License

Licensed under either of

at your option.

Contributions

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

GitHub Stars

52

LAST COMMIT

8mos ago

MAINTAINERS

1

CONTRIBUTORS

8

OPEN ISSUES

15

OPEN PRs

0
VersionTagPublished
0.8.1
2yrs ago
0.8.0
2yrs ago
0.7.1
2yrs ago
0.7.0
2yrs ago
No alternatives found
No tutorials found
Add a tutorial