Open FFBoard
Open source force feedback firmware
Filters.h
Go to the documentation of this file.
1
/*
2
* Filters.h
3
*
4
* Created on: Feb 13, 2020
5
* Author: Yannick
6
*/
7
8
#ifndef FILTERS_H_
9
#define FILTERS_H_
10
#include "
cppmain.h
"
11
12
#ifdef __cplusplus
13
14
// Frequency in hz, q in float q*100. Example: Q 0.5 -> 50
15
struct
biquad_constant_t
{
16
uint16_t
freq
;
17
uint8_t
q
;
18
};
19
20
enum class
BiquadType
: uint8_t {
21
lowpass
= 0,
22
highpass
,
23
bandpass
,
24
notch
,
25
peak
,
26
lowshelf
,
27
highshelf
28
};
29
30
class
TMC4671Biquad
;
31
class
Biquad
{
32
friend
TMC4671Biquad
;
33
public
:
34
Biquad
();
35
Biquad
(
BiquadType
type
,
float
Fc
,
float
Q
,
float
peakGainDB);
36
~Biquad
();
37
float
process
(
float
in);
38
void
setBiquad
(
BiquadType
type
,
float
Fc
,
float
Q
,
float
peakGain
);
39
void
setFc
(
float
Fc
);
//frequency
40
float
getFc
()
const
;
41
void
setQ
(
float
Q
);
42
float
getQ
()
const
;
43
void
calcBiquad
(
void
);
44
45
protected
:
46
47
BiquadType
type
;
48
float
a0
,
a1
,
a2
,
b1
,
b2
;
49
float
Fc
,
Q
,
peakGain
;
50
float
z1
,
z2
;
51
};
52
53
54
#endif
55
56
#endif
/* FILTERS_H_ */
BiquadType
BiquadType
Definition:
Filters.h:20
BiquadType::highshelf
@ highshelf
BiquadType::peak
@ peak
BiquadType::notch
@ notch
BiquadType::highpass
@ highpass
BiquadType::lowshelf
@ lowshelf
BiquadType::bandpass
@ bandpass
BiquadType::lowpass
@ lowpass
Biquad
Definition:
Filters.h:31
Biquad::a0
float a0
Definition:
Filters.h:48
Biquad::b1
float b1
Definition:
Filters.h:48
Biquad::z1
float z1
Definition:
Filters.h:50
Biquad::setFc
void setFc(float Fc)
Definition:
Filters.cpp:28
Biquad::TMC4671Biquad
friend TMC4671Biquad
Definition:
Filters.h:32
Biquad::z2
float z2
Definition:
Filters.h:50
Biquad::b2
float b2
Definition:
Filters.h:48
Biquad::process
float process(float in)
Definition:
Filters.cpp:53
Biquad::type
BiquadType type
Definition:
Filters.h:47
Biquad::getQ
float getQ() const
Definition:
Filters.cpp:46
Biquad::setQ
void setQ(float Q)
Definition:
Filters.cpp:41
Biquad::Biquad
Biquad()
Definition:
Filters.cpp:13
Biquad::calcBiquad
void calcBiquad(void)
Definition:
Filters.cpp:72
Biquad::a1
float a1
Definition:
Filters.h:48
Biquad::Q
float Q
Definition:
Filters.h:49
Biquad::getFc
float getFc() const
Definition:
Filters.cpp:34
Biquad::a2
float a2
Definition:
Filters.h:48
Biquad::peakGain
float peakGain
Definition:
Filters.h:49
Biquad::setBiquad
void setBiquad(BiquadType type, float Fc, float Q, float peakGain)
Definition:
Filters.cpp:60
Biquad::Fc
float Fc
Definition:
Filters.h:49
Biquad::~Biquad
~Biquad()
Definition:
Filters.cpp:20
TMC4671Biquad
Definition:
TMC4671.h:285
cppmain.h
biquad_constant_t
Definition:
Filters.h:15
biquad_constant_t::freq
uint16_t freq
Definition:
Filters.h:16
biquad_constant_t::q
uint8_t q
Definition:
Filters.h:17
Firmware
FFBoard
Inc
Filters.h
Generated by
1.9.2