Improved firFilterApply efficiency

This commit is contained in:
Martin Budden 2016-10-12 15:16:11 +01:00
parent 6f3abcb27d
commit 64e1a3a723
1 changed files with 6 additions and 6 deletions

View File

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