Improved firFilterApply efficiency
This commit is contained in:
parent
6f3abcb27d
commit
64e1a3a723
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue