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.
  • Transform: In-place Complex FFT (CFFT), Real FFT (RFFT), DCT-IV, Bit reversal.
  • 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.
  • Bayes: Gaussian Naive Bayes classifier.
  • SVM: Support Vector Machine classifier with Linear, Polynomial, RBF, and Sigmoid kernels.

Re-exports§

pub use basic_math::*;
pub use bayes::*;
pub use complex_math::*;
pub use controller::*;
pub use distance::*;
pub use fast_math::*;
pub use filtering::*;
pub use fixed_point::*;
pub use interpolation::*;
pub use math::*;
pub use matrix::*;
pub use quaternion::*;
pub use statistics::*;
pub use support::*;
pub use svm::*;
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).
bayes
Gaussian Naive Bayes Classifier.
complex_math
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).
filtering
Digital filtering functions (FIR, Biquad IIR Direct Form I & II, LMS Adaptive Filter, Convolution, Correlation).
fixed_point
Q16.16 fixed-point math.
interpolation
Interpolation functions (Linear, Bilinear, Spline).
lut
Lookup-table trigonometry.
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).
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).
svm
Support Vector Machine (SVM) Classifier (Linear, Polynomial, RBF, Sigmoid kernels).
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).