ARCS6 AR6-REV.24062600
読み取り中…
検索中…
一致する文字列を見つけられません
MovingAverage.hh
[詳解]
1
8//
9// Copyright (C) 2011-2020 Yokokura, Yuki
10// This program is free software;
11// you can redistribute it and/or modify it under the terms of the FreeBSD License.
12// For details, see the License.txt file.
13
14#ifndef MOVINGAVERAGE
15#define MOVINGAVERAGE
16
17#include <cassert>
18#include "RingBuffer.hh"
19#include "Statistics.hh"
20
21// ARCS組込み用マクロ
22#ifdef ARCS_IN
23 // ARCSに組み込まれる場合
24 #include "ARCSassert.hh"
25 #include "ARCSeventlog.hh"
26#else
27 // ARCSに組み込まれない場合
28 #define arcs_assert(a) (assert(a))
29 #define PassedLog()
30 #define EventLog(a)
31 #define EventLogVar(a)
32#endif
33
34namespace ARCS { // ARCS名前空間
37template <size_t N>
39 public:
42 : WindowData()
43 {
44 PassedLog();
45 }
46
50 : WindowData(std::move(r.WindowData))
51 {
52
53 }
54
59
63 double GetSignal(const double u){
64 WindowData.SetFirstValue(u); // リングバッファの先頭に入力信号を詰める
65 return Statistics::Mean(WindowData.Buffer); // リングバッファ内の平均値を返す
66 }
67
70 void Fill(const double u){
71 WindowData.FillBuffer(u); // リングバッファを指定した値で埋める
72 }
73
75 void Clear(void){
76 WindowData.ClearBuffer();
77 }
78
79 private:
80 MovingAverage(const MovingAverage&) = delete;
81 const MovingAverage& operator=(const MovingAverage&) = delete;
82
84};
85}
86
87#endif
88
ARCS イベントログクラス
#define PassedLog()
イベントログ用マクロ(ファイルと行番号のみ記録版)
Definition ARCSeventlog.hh:26
ARCS用ASSERTクラス
移動平均クラス
Definition MovingAverage.hh:38
void Fill(const double u)
移動平均の窓データを指定した値で埋める関数
Definition MovingAverage.hh:70
double GetSignal(const double u)
移動平均の先頭データに入力信号をセットして出力信号を得る関数
Definition MovingAverage.hh:63
MovingAverage()
コンストラクタ
Definition MovingAverage.hh:41
~MovingAverage()
デストラクタ
Definition MovingAverage.hh:56
MovingAverage(MovingAverage &&r)
ムーブコンストラクタ
Definition MovingAverage.hh:49
void Clear(void)
移動平均の窓データをクリアする関数
Definition MovingAverage.hh:75
リングバッファクラス
Definition RingBuffer.hh:51
void SetFirstValue(const T &u)
値をバッファの先頭に格納する関数
Definition RingBuffer.hh:80
void ClearBuffer(void)
バッファのゼロクリア
Definition RingBuffer.hh:167
void FillBuffer(const T &u)
バッファを指定値で埋める
Definition RingBuffer.hh:160
std::array< T, N > Buffer
リングバッファ
Definition RingBuffer.hh:53
static double Mean(const Matrix< N, M > &U)
行列U全体の平均を計算する
Definition Statistics.hh:43