etrobocon2019 feat.KatLab
ece30a9a007fff7d3ad48592c0d09a74643377bb
src
module
Filter.cpp
[詳解]
1
6
#include "
Filter.h
"
7
8
template
<
typename
T>
9
Filter<T>::Filter
() : preValue(0)
10
{
11
}
12
13
template
<
typename
T>
14
void
Filter<T>::reset
()
15
{
16
preValue = 0;
17
}
18
19
27
template
<
typename
T>
28
double
Filter<T>::lowPassFilter
(T value,
double
rate)
29
{
30
// 前回値の初期化
31
if
(preValue == 0) {
32
preValue = value;
33
return
static_cast<
double
>
(value);
34
}
35
36
double
filtered = preValue * rate + value * (1 - rate);
37
// 前回値の更新
38
preValue = value;
39
40
return
filtered;
41
}
42
43
// 明示的なインスタンス化
44
template
class
Filter<int>
;
45
template
class
Filter<float>
;
46
template
class
Filter<double>
;
Filter::Filter
Filter()
Definition:
Filter.cpp:9
Filter::reset
void reset()
Definition:
Filter.cpp:14
Filter::lowPassFilter
double lowPassFilter(T value, double rate=0.9)
ローパスフィルター(現在値と前回値を参考にして値を決定する)
Definition:
Filter.cpp:28
Filter
Definition:
Filter.h:10
Filter.h
外乱対策のためのフィルターをまとめたクラス
構築:
1.8.13