项目作者: pilotak

项目描述 :
Arduino & Mbed Library for averaging fixed-point numbers
高级语言: C++
项目地址: git://github.com/pilotak/MovingAverage.git
创建时间: 2017-12-22T15:59:58Z
项目社区:https://github.com/pilotak/MovingAverage

开源协议:MIT License

下载


Moving average filter

build
Framework Badge Arduino
Framework Badge mbed

Buffer type can be:

  • uint8_t or int8_t with maximum buffer length of 16843009
  • uint16_t or int16_t with maximum buffer length of 65537
  • uint32_t or int32_t but added number can be as long as 30 bits which eaquals to maximum buffer length of 2, 29 bits number = max buffer length of 4, etc.

Buffer length:

  • power of 2 only: 2, 4, 8, 16, 32, 64, 128, etc.

Arduino example

Please see examples folder

Mbed example

  1. #include "mbed.h"
  2. #include "MovingAverage.h"
  3. // Buffer (and added samples) will be initialised as uint8_t, total 16 samples
  4. MovingAverage <uint8_t, 16> filter;
  5. int main() {
  6. printf("result: %u\n", filter.add(255)); // insert new number and get result
  7. printf("result: %u\n", filter.add(6)); // insert new number and get result
  8. printf("result: %u\n", filter.add(9)); // insert new number and get result
  9. printf("result: %u\n", filter.get()); // get last result, without adding a newone
  10. return 0;
  11. }

Output

result: 255

result: 239

result: 224

result: 224