Количество коэффициентов фильтра и частота дискретизации при проектировании БИХ-фильтра

Теперь я забыл все те концепции фильтрации, которые были изучены давно.

В настоящее время я разрабатываю БИХ-фильтр.
Фильтр работает хорошо, если я устанавливаю частоту дискретизации 50 отсчетов в секунду. При увеличении до 100 сэмплов / сек выходной сигнал фильтра искажается.
В чем может быть проблема? Я перепроектировал с увеличением числа коэффициентов фильтра, чтобы удвоить. Но это хуже.

Я реализовал IIR Direct Form 2 transposed filtration следующим образом.

public void IIRDirectForm2TransposedFilteration(float x, float y, float z){

out[0] = registerx[0] + Bcoefs[0] * x;
out[1] = registery[0] + Bcoefs[0] * y;
out[2] = registerz[0] + Bcoefs[0] * z;
for(int i = 0; i < numcoefs-2; i++){
registerx[i] = registerx[i+1] + Bcoefs[i+1] * x - Acoefs[i+1] * out[0];
registery[i] = registery[i+1] + Bcoefs[i+1] * y - Acoefs[i+1] * out[1];
registerz[i] = registerz[i+1] + Bcoefs[i+1] * z - Acoefs[i+1] * out[2];
}
registerx[numcoefs-2] = Bcoefs[numcoefs-1] * x - Acoefs[numcoefs-1] * out[0];
registery[numcoefs-2] = Bcoefs[numcoefs-1] * y - Acoefs[numcoefs-1] * out[1];
registerz[numcoefs-2] = Bcoefs[numcoefs-1] * z - Acoefs[numcoefs-1] * out[2];

}

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector