組込みマイコン向けの移動平均・移動**値演算クラスライブラリ
- C++で記述されたクラスライブラリ (組込み系でもC++がしたい!)
- malloc, new, STLなどは使わず、メモリは静的に確保する
- テンプレートにより、float や int などの種々の数値型に対応
- 計算量とRAM使用量をなるべく減らしたアルゴリズム
- 処理の単純化のため、最初の計算は少し手抜き
- srcフォルダのAverage.hとMedian.hを適当にコピーして使ってください。
- Arduinoの場合は、このフォルダ(AvrerageMedian)をまるごとlibrariesフォルダの下にコピーしてください。
- test/test.cppを見てください。テストデータの移動平均と移動**値を計算して期待値と照合します。
- Arduinoの場合は、ファイル > スケッチ例 > AverageMedian > AverageMedianTest でサンプルスケッチが開きます。
移動**値のアルゴリズムに関しては@lamrongol氏の下記の記事を参考にしました。線形リストを用いた素朴なアルゴリズムに比べてRAM使用量も処理速度も改善しました。