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-basedExtendedKalmanFilter(EKF). - Const Generics: Compile-time fixed-size
FirFilter<N>,BiquadCascade<N>, andMatrix<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
libminno_stdenvironments orstdmath 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).