Filters
1.0
LPF, HPF, BPF, BSF, SRL
Toggle main menu visibility
Loading...
Searching...
No Matches
lpf_1.tpp
Go to the documentation of this file.
1
#include "
../../include/low_pass/lpf_1.h
"
2
3
template
<
typename
T>
4
filter::low_pass::LPF_1<T>::LPF_1
()
5
{
6
reset();
7
}
8
9
template
<
typename
T>
10
void
filter::low_pass::LPF_1<T>::config
(T fc_, T dt_)
11
{
12
set_param(fc_, dt_);
13
}
14
15
template
<
typename
T>
16
void
filter::low_pass::LPF_1<T>::set_param
(T fc_, T dt_)
17
{
18
fc = fc_;
19
dt = dt_;
20
tau = 1.0 / (6.28318530717958647692528676655900576 * fc);
21
alpha = dt / (dt + tau);
22
}
23
24
template
<
typename
T>
25
T
filter::low_pass::LPF_1<T>::update
(T x_k)
26
{
27
T y_k = 0.0;
28
29
if
(start ==
false
)
30
{
31
start =
true
;
32
y_k = x_k;
33
}
34
else
35
{
36
y_k = alpha * x_k + (1.0 - alpha) * y_k_1;
37
}
38
y_k_1 = y_k;
39
return
y_k;
40
}
41
42
template
<
typename
T>
43
void
filter::low_pass::LPF_1<T>::reset
()
44
{
45
y_k_1 = 0.0;
46
start =
false
;
47
}
48
49
template
<
typename
T>
50
void
filter::low_pass::LPF_1<T>::set_fc
(T fc_)
51
{
52
set_param(fc_, dt);
53
}
54
55
template
<
typename
T>
56
void
filter::low_pass::LPF_1<T>::set_tau
(T tau_)
57
{
58
tau = tau_;
59
fc = 1.0 / (6.28318530717958647692528676655900576 * tau);
60
alpha = dt / (dt + tau);
61
}
62
63
template
<
typename
T>
64
void
filter::low_pass::LPF_1<T>::set_dt
(T dt_)
65
{
66
set_param(fc, dt_);
67
}
68
69
template
<
typename
T>
70
void
filter::low_pass::LPF_1<T>::set_alpha
(T alpha_)
71
{
72
alpha = alpha_;
73
tau = ((1.0 - alpha) * dt) / alpha;
74
fc = 1.0 / (6.28318530717958647692528676655900576 * tau);
75
}
76
77
template
<
typename
T>
78
T
filter::low_pass::LPF_1<T>::get_fc
()
79
{
80
return
fc;
81
}
82
83
template
<
typename
T>
84
T
filter::low_pass::LPF_1<T>::get_tau
()
85
{
86
return
tau;
87
}
88
89
template
<
typename
T>
90
T
filter::low_pass::LPF_1<T>::get_dt
()
91
{
92
return
dt;
93
}
94
95
template
<
typename
T>
96
T
filter::low_pass::LPF_1<T>::get_alpha
()
97
{
98
return
alpha;
99
}
100
101
template
<
typename
T>
102
T
filter::low_pass::LPF_1<T>::get_fs
()
103
{
104
return
1.0 / dt;
105
}
filter::low_pass::LPF_1::update
T update(T x_k)
Processes a new input sample.
Definition
lpf_1.h:26
filter::low_pass::LPF_1::set_dt
void set_dt(T dt_)
Sets the sampling time.
Definition
lpf_1.h:65
filter::low_pass::LPF_1::set_param
void set_param(T fc_, T dt_)
Sets the filter parameters.
Definition
lpf_1.h:17
filter::low_pass::LPF_1::LPF_1
LPF_1()
Constructs a first-order low-pass filter.
Definition
lpf_1.h:5
filter::low_pass::LPF_1::reset
void reset()
Resets the filter state.
Definition
lpf_1.h:44
filter::low_pass::LPF_1::get_fc
T get_fc()
Gets the cutoff frequency.
Definition
lpf_1.h:79
filter::low_pass::LPF_1::set_tau
void set_tau(T tau_)
Sets the filter time constant.
Definition
lpf_1.h:57
filter::low_pass::LPF_1::get_dt
T get_dt()
Gets the sampling time.
Definition
lpf_1.h:91
filter::low_pass::LPF_1::config
void config(T fc_, T dt_)
Configures the low-pass filter.
Definition
lpf_1.h:11
filter::low_pass::LPF_1::get_tau
T get_tau()
Gets the filter time constant.
Definition
lpf_1.h:85
filter::low_pass::LPF_1::set_fc
void set_fc(T fc_)
Sets the cutoff frequency.
Definition
lpf_1.h:51
filter::low_pass::LPF_1::get_alpha
T get_alpha()
Gets the filter coefficient.
Definition
lpf_1.h:97
filter::low_pass::LPF_1::set_alpha
void set_alpha(T alpha_)
Sets the filter coefficient.
Definition
lpf_1.h:71
filter::low_pass::LPF_1::get_fs
T get_fs()
Gets the sampling frequency.
Definition
lpf_1.h:103
lpf_1.h
First-order low-pass filter.
src
low_pass
lpf_1.tpp
Generated by
1.17.0