mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-19 22:35:23 +03:00
user configurable sample rate, true peak detection
1. User can set sampling rate to suit expected range of frequencies: - HIGH suits 4" or smaller and 6S 5" - MEDIUM suits classic 5" 4S - LOW is for 6" or greater Limits automatically scaled: HIGH : 133/166 to 1000Hz, MEDIUM : 89/111 to 666Hz, LOW : 67/83 to 500Hz 2. Bandpass entirely eliminated, not needed. 3. True peak detection method, favouring first peak to exceed 80% of maximum bin height; ignore or threshold values not required.
This commit is contained in:
parent
3f001295f7
commit
14c90bf10b
5 changed files with 93 additions and 83 deletions
|
@ -376,6 +376,9 @@ static const char * const lookupTableRcSmoothingDerivativeType[] = {
|
|||
static const char * const lookupTableDynamicFftLocation[] = {
|
||||
"BEFORE_STATIC_FILTERS", "AFTER_STATIC_FILTERS"
|
||||
};
|
||||
static const char * const lookupTableDynamicFilterRange[] = {
|
||||
"HIGH", "MEDIUM", "LOW"
|
||||
};
|
||||
#endif // USE_GYRO_DATA_ANALYSE
|
||||
|
||||
#define LOOKUP_TABLE_ENTRY(name) { name, ARRAYLEN(name) }
|
||||
|
@ -469,6 +472,7 @@ const lookupTableEntry_t lookupTables[] = {
|
|||
#endif // USE_RC_SMOOTHING_FILTER
|
||||
#ifdef USE_GYRO_DATA_ANALYSE
|
||||
LOOKUP_TABLE_ENTRY(lookupTableDynamicFftLocation),
|
||||
LOOKUP_TABLE_ENTRY(lookupTableDynamicFilterRange),
|
||||
#endif // USE_GYRO_DATA_ANALYSE
|
||||
|
||||
};
|
||||
|
@ -519,9 +523,7 @@ const clivalue_t valueTable[] = {
|
|||
{ "dyn_fft_location", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_DYNAMIC_FFT_LOCATION }, PG_GYRO_CONFIG, offsetof(gyroConfig_t, dyn_fft_location) },
|
||||
{ "dyn_filter_type", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_LOWPASS_TYPE }, PG_GYRO_CONFIG, offsetof(gyroConfig_t, dyn_filter_type) },
|
||||
{ "dyn_filter_width_percent", VAR_UINT8 | MASTER_VALUE, .config.minmax = { 1, 99 }, PG_GYRO_CONFIG, offsetof(gyroConfig_t, dyn_filter_width_percent) },
|
||||
{ "dyn_filter_threshold", VAR_UINT8 | MASTER_VALUE, .config.minmax = { 10, 255 }, PG_GYRO_CONFIG, offsetof(gyroConfig_t, dyn_filter_threshold) },
|
||||
{ "dyn_filter_ignore", VAR_UINT8 | MASTER_VALUE, .config.minmax = { 1, 255 }, PG_GYRO_CONFIG, offsetof(gyroConfig_t, dyn_filter_ignore) },
|
||||
{ "dyn_notch_quality", VAR_UINT8 | MASTER_VALUE, .config.minmax = { 0, 70 }, PG_GYRO_CONFIG, offsetof(gyroConfig_t, dyn_notch_quality) },
|
||||
{ "dyn_filter_range", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_DYNAMIC_FILTER_RANGE }, PG_GYRO_CONFIG, offsetof(gyroConfig_t, dyn_filter_range) },
|
||||
#endif
|
||||
|
||||
// PG_ACCELEROMETER_CONFIG
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue