1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-20 14:55:21 +03:00

Improved firFilterApply efficiency

This commit is contained in:
Martin Budden 2016-10-12 15:16:11 +01:00
parent 6f3abcb27d
commit 64e1a3a723

View file

@ -156,12 +156,12 @@ void firFilterUpdate(firFilter_t *filter, float input)
float firFilterApply(const firFilter_t *filter) float firFilterApply(const firFilter_t *filter)
{ {
float ret = 0.0f; float ret = 0.0f;
int index = filter->index; int ii = 0;
for (int ii = 0; ii < filter->coeffsLength; ++ii) { int index;
--index; for (index = filter->index - 1; index >= 0; ++ii, --index) {
if (index < 0) { ret += filter->coeffs[ii] * filter->buf[index];
index = filter->bufLength - 1; }
} for (index = filter->bufLength - 1; ii < filter->coeffsLength; ++ii, --index) {
ret += filter->coeffs[ii] * filter->buf[index]; ret += filter->coeffs[ii] * filter->buf[index];
} }
return ret; return ret;