Skip to content

A collection of useful libraries for embedded systems : signal smoothing, PID control, Fuzzy Logic, fixed-point math and more...

License

Notifications You must be signed in to change notification settings

kmilo17pet/qlibs

Repository files navigation

Built for CodeFactor Codacy Badge DeepSource documentation GitHub release (latest by date) MISRAC2012 CERT C Standard Maintenance License Hits

qlibs_logo_small

qlibs : A collection of useful libraries for embedded systems

  • Download the latest release here
  • Documentation and API Reference here

Below is the list of the modules provided and their features:

  • qSSmoother : Filters to smooth noisy signals
    • LPF1: Low Pass Filter Order 1
    • LPF2: Low Pass Filter Order 2
    • MWM1: Moving Window Median O(n)
    • MWM2: Moving Window Median O(1): With TDL(works efficient for large windows)
    • MOR1: Moving Outlier Removal O(n)
    • MOR2: Moving Outlier Removal O(1): With TDL(works efficient for large windows)
    • GMWF: Gaussian filter
    • KLMN: Scalar Kalman filter
    • EXPW: Exponential weighting filter
  • qPID : Closed Loop PID Controller
    • Derivative filter
    • Anti-Windup
    • Tracking Mode
    • Auto-tunning
    • Additive MRAC
  • qLTISys : Recursive LTI systems evaluation by transfer functions
    • Continuous
    • Discrete
  • qFIS : Fuzzy Inference System Engine
    • Mamdani
    • Sugeno
    • Tsukamoto
  • qFP16 : Q16.16 Fixed-point math
    • Basic operations
    • Trigonometric functions
    • Exponential functions
  • qCRC : Generic Cyclic Redundancy Check (CRC) calculator
    • CRC8
    • CRC16
    • CRC32
  • qBitField: A bit-field manipulation library
  • qTDL : Tapped Delay Line in O(1).
  • qRMS : Recursive Root Mean Square(RMS) calculation of a signal.
  • Type-generic array operations
  • Single precision floating-point vector(1D-Array) operations
  • Fast single precision floating-point math
  • One-dimensional interpolation