mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-19 14:25:20 +03:00
Higher-order gyro filter (#5257)
* Implement nth order Butterworth Uses biquad sections * Purge RC+FIR2 * Add butterworth LPS as gyro filter Replaces RC+FIR * Make FKF code conditional * Add USE_FIR_FILTER_DENOISE Denoise is almost useless anyway ...
This commit is contained in:
parent
35f5e5025f
commit
141d6ec30a
8 changed files with 129 additions and 43 deletions
|
@ -177,7 +177,9 @@ static FAST_RAM void *ptermYawFilter;
|
|||
typedef union dtermFilterLpf_u {
|
||||
pt1Filter_t pt1Filter[2];
|
||||
biquadFilter_t biquadFilter[2];
|
||||
#if defined(USE_FIR_FILTER_DENOISE)
|
||||
firFilterDenoise_t denoisingFilter[2];
|
||||
#endif
|
||||
} dtermFilterLpf_t;
|
||||
|
||||
void pidInitFilters(const pidProfile_t *pidProfile)
|
||||
|
@ -239,6 +241,7 @@ void pidInitFilters(const pidProfile_t *pidProfile)
|
|||
biquadFilterInitLPF(dtermFilterLpf[axis], pidProfile->dterm_lpf_hz, targetPidLooptime);
|
||||
}
|
||||
break;
|
||||
#if defined(USE_FIR_FILTER_DENOISE)
|
||||
case FILTER_FIR:
|
||||
dtermLpfApplyFn = (filterApplyFnPtr)firFilterDenoiseUpdate;
|
||||
for (int axis = FD_ROLL; axis <= FD_PITCH; axis++) {
|
||||
|
@ -246,6 +249,7 @@ void pidInitFilters(const pidProfile_t *pidProfile)
|
|||
firFilterDenoiseInit(dtermFilterLpf[axis], pidProfile->dterm_lpf_hz, targetPidLooptime);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue