/qlibs-cpp

C++ version of qlibs, a collection of useful libraries for embedded systems : signal smoothing, PID control, Fuzzy Logic, fixed-point math and more...

Primary LanguageC++MIT LicenseMIT

Built for DeepSource Codacy Badge CodeFactor MISRAC++2008 CERT C++ Standard arduino-library-badge Maintenance License

qlibs++logo

qlibs++ is the qlibs port for C++.

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 classes and modules provided and their features:

  • smoother : 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
  • pidController : Closed Loop PID Controller
    • Derivative filter
    • Anti-Windup
    • Tracking Mode
    • Auto-tunning
    • Additive MRAC
  • ltisys : Recursive LTI systems evaluation by transfer functions
    • Continuous
    • Discrete
  • fis : Fuzzy Inference System Engine
    • Mamdani
    • Sugeno
    • Tsukamoto
  • fp16 : Q16.16 Fixed-point math
    • Basic operations
    • Trigonometric functions
    • Exponential functions
  • crc : Generic Cyclic Redundancy Check (CRC) calculator
    • CRC8
    • CRC16
    • CRC32
  • bitfield: A bit-field manipulation library
  • tdl : Tapped Delay Line in O(1).
  • rms : Recursive Root Mean Square(RMS) calculation of a signal.
  • Type-generic utilities
  • Fast single-precision floating-point math
  • 1D Interpolation class