11 changed files with 131 additions and 22 deletions
-
1CMakeLists.txt
-
6CMakeLists.txt.user
-
2ify_hrs_protocol
-
6libzqt/widgetplot2d.ui
-
34mainwindow.cpp
-
2mainwindow.ui
-
57src/filter_group/algo/iflytop_simple_filter_ext.cpp
-
31src/filter_group/algo/iflytop_simple_filter_ext.h
-
10src/filter_group/if/if_filter_group.hpp
-
2src/filter_group/iir_filter_group.cpp
-
2src/version.h
@ -1 +1 @@ |
|||
Subproject commit c5a86174de8f27f4c8ab6c18dd131effa7b43ea5 |
|||
Subproject commit 286f8bbe136357e72b72f7d3e2a5b0ad64e99710 |
@ -0,0 +1,57 @@ |
|||
#include "iflytop_simple_filter_ext.h"
|
|||
|
|||
void LPFilterExt_init(LPFilterExt_t *filter, float cutoffFreqHz, float sampleTimeS, int order, bool enable) { |
|||
if (order > FILTER_MAX_ORDER) { |
|||
order = FILTER_MAX_ORDER; |
|||
} |
|||
|
|||
filter->order = order; |
|||
for (int i = 0; i < order; i++) { |
|||
LPFilter_Init(&filter->lp_filter[i], cutoffFreqHz, sampleTimeS, enable); |
|||
} |
|||
} |
|||
float LPFilterExt_update(LPFilterExt_t *filter, float v_in) { |
|||
float v_out = v_in; |
|||
for (int i = 0; i < filter->order; i++) { |
|||
v_out = LPFilter_Update(&filter->lp_filter[i], v_out); |
|||
} |
|||
return v_out; |
|||
} |
|||
|
|||
void HPFilterExt_init(HPFilterExt_t *filter, float cutoffFreqHz, float sampleTimeS, int order, bool enable) { |
|||
if (order > FILTER_MAX_ORDER) { |
|||
order = FILTER_MAX_ORDER; |
|||
} |
|||
|
|||
filter->order = order; |
|||
|
|||
for (int i = 0; i < order; i++) { |
|||
HPFilter_Init(&filter->hp_filter[i], cutoffFreqHz, sampleTimeS, enable); |
|||
} |
|||
} |
|||
float HPFilterExt_update(HPFilterExt_t *filter, float v_in) { |
|||
float v_out = v_in; |
|||
for (int i = 0; i < filter->order; i++) { |
|||
v_out = HPFilter_Update(&filter->hp_filter[i], v_out); |
|||
} |
|||
return v_out; |
|||
} |
|||
|
|||
void NOTCHFilterExt_init(NOTCHFilterExt_t *filter, float centerFreqHz, float notchWidthHz, float sampleTimeS, int order, bool enable) { |
|||
if (order > FILTER_MAX_ORDER) { |
|||
order = FILTER_MAX_ORDER; |
|||
} |
|||
|
|||
filter->order = order; |
|||
|
|||
for (int i = 0; i < order; i++) { |
|||
NOTCHFilter_Init(&filter->notch_filter[i], centerFreqHz, notchWidthHz, sampleTimeS, enable); |
|||
} |
|||
} |
|||
float NOTCHFilterExt_update(NOTCHFilterExt_t *filter, float v_in) { |
|||
float v_out = v_in; |
|||
for (int i = 0; i < filter->order; i++) { |
|||
v_out = NOTCHFilter_Update(&filter->notch_filter[i], v_out); |
|||
} |
|||
return v_out; |
|||
} |
@ -0,0 +1,31 @@ |
|||
#pragma once |
|||
#include "iflytop_simple_filter.h" |
|||
|
|||
#define FILTER_MAX_ORDER 20 |
|||
typedef struct { |
|||
LPFilter_t lp_filter[FILTER_MAX_ORDER]; |
|||
int order; |
|||
} LPFilterExt_t; |
|||
|
|||
void LPFilterExt_init(LPFilterExt_t *filter, float cutoffFreqHz, float sampleTimeS, int order, bool enable); |
|||
float LPFilterExt_update(LPFilterExt_t *filter, float v_in); |
|||
|
|||
typedef struct { |
|||
HPFilter_t hp_filter[FILTER_MAX_ORDER]; |
|||
int order; |
|||
} HPFilterExt_t; |
|||
|
|||
void HPFilterExt_init(HPFilterExt_t *filter, float cutoffFreqHz, float sampleTimeS, int order, bool enable); |
|||
float HPFilterExt_update(HPFilterExt_t *filter, float v_in); |
|||
|
|||
|
|||
typedef struct { |
|||
NOTCHFilter_t notch_filter[FILTER_MAX_ORDER]; |
|||
int order; |
|||
} NOTCHFilterExt_t; |
|||
|
|||
void NOTCHFilterExt_init(NOTCHFilterExt_t *filter, float centerFreqHz, float notchWidthHz, float sampleTimeS, int order, bool enable); |
|||
float NOTCHFilterExt_update(NOTCHFilterExt_t *filter, float v_in); |
|||
|
|||
|
|||
|
@ -1,4 +1,4 @@ |
|||
#pragma once |
|||
|
|||
#define VERSION 4 |
|||
#define VERSION 6 |
|||
#define MAUFACTURER "iflytop" |
Write
Preview
Loading…
Cancel
Save
Reference in new issue