Skip to main content

Crate embedded_dsp

Crate embedded_dsp 

Source
Expand description

§embedded-dsp

A #![no_std] Rust digital signal processing library for microcontrollers, embedded systems, and real-time signal processing applications.

§Overview

embedded-dsp provides zero-allocation digital signal processing algorithms:

  • Basic Math: Elementwise addition, subtraction, multiplication, dot product, scale, shift, clip, logic ops.
  • Complex Math: Complex vector addition, multiplication, magnitude, magnitude squared, conjugate, dot product.
  • Fast Math: Trigonometric (sin, cos, atan2), square root, division, log, exp.
  • Statistics: Mean, variance, standard deviation, RMS, power, min/max, entropy, Kullback-Leibler, LogSumExp.
  • Support: Vector copy, fill, type conversions (Q7, Q15, Q31, F32), sort, barycenter, weighted sum.
  • Matrix: Matrix addition, subtraction, multiplication, scale, transpose, Gauss-Jordan inverse.
  • Filtering: FIR, Biquad IIR Direct Form I, LMS adaptive filters, Convolution, Correlation.
  • Filter Design: Biquad Lowpass, Highpass, Bandpass, Notch, Peaking EQ, Allpass, and Butterworth design.
  • Resampling & Multi-rate: CIC Decimator & Interpolator, linear fractional resampler.
  • Kalman Filtering: 1D/2D helpers, const-generic linear KalmanFilter<N, M>, and trait-based ExtendedKalmanFilter (EKF).
  • Const Generics: Compile-time fixed-size FirFilter<N>, BiquadCascade<N>, and Matrix<R, C>.
  • Transform: In-place Complex FFT (CFFT), Real FFT (RFFT), DCT-IV, Bit reversal, Fixed-point FFT (Q15/Q31).
  • Controller: PID motor controller, Clarke transform, Park transform, Inverse Clarke/Park.
  • Interpolation: Linear, Bilinear, Cubic spline interpolation.
  • Quaternion: Norm, normalization, product, conjugate, inverse, rotation matrix conversion.
  • Window: Hanning, Hamming, Blackman, Bartlett, Welch, Flat-top window generators.
  • Distance: Euclidean, Cosine, Chebyshev, Manhattan, Minkowski, Jaccard, Hamming, Canberra, Bray-Curtis.

Re-exports§

pub use basic_math::*;
pub use complex_math::*;
pub use const_generics::*;
pub use controller::*;
pub use distance::*;
pub use fast_math::*;
pub use filter_design::*;
pub use filtering::*;
pub use interpolation::*;
pub use kalman::*;
pub use math::*;
pub use matrix::*;
pub use quaternion::*;
pub use resampling::*;
pub use statistics::*;
pub use support::*;
pub use transform::*;
pub use types::*;
pub use window::*;

Modules§

basic_math
Basic math operations (absolute value, addition, subtraction, multiplication, dot product, negation, offset, scale, shift, clip, logic ops).
complex_math
const_generics
Const generic safe wrappers for compile-time sized FIR filters, Biquads, and Matrices.
controller
Controller functions (PID motor control, Clarke transform, Park transform, Inverse Clarke, Inverse Park).
distance
Distance metrics between vectors (Euclidean, Cosine, Chebyshev, Manhattan, Minkowski, Jaccard, Hamming, Canberra, Bray-Curtis).
fast_math
Fast math functions (sin, cos, sin_cos, sqrt, vsqrt, divide, log, exp, atan2).
filter_design
Filter design routines for calculating biquad IIR coefficients (Low-pass, High-pass, Band-pass, Notch, Peaking, All-pass, Butterworth).
filtering
Digital filtering functions (FIR, Biquad IIR Direct Form I & II, LMS Adaptive Filter, Convolution, Correlation).
interpolation
Interpolation functions (Linear, Bilinear, Spline).
kalman
Kalman filtering and state estimation algorithms for zero-allocation embedded applications.
math
Unified math abstraction providing floating-point mathematical operations using libm in no_std environments or std math when available.
matrix
Matrix operations (addition, subtraction, multiplication, scale, transpose, inverse, complex matrix multiplication).
quaternion
Quaternion math functions (norm, normalize, product, conjugate, inverse, rotation matrix conversion).
resampling
Multi-rate digital signal processing routines: Cascaded Integrator-Comb (CIC) decimation/interpolation and linear fractional resampling.
statistics
Statistics functions (mean, variance, standard deviation, RMS, power, min, max, absmax, absmin, entropy, Kullback-Leibler, LogSumExp).
support
Support functions (copy, fill, format conversions q7/q15/q31/f32, sort, barycenter, weighted sum).
transform
Fast Fourier Transform (FFT), Real FFT (RFFT), Discrete Cosine Transform (DCT-IV), and Bit Reversal functions.
types
Data types, status codes, complex structures, and fixed-point helper types.
window
Window functions (Hanning, Hamming, Blackman, Bartlett, Welch, Flat-top window generators).