Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как правильно БИХ фильтр сделать?
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
_zx_
при использовании в матлабе функции filter с полученными ранее коеффициентами, получается нужный мне фильтр.
НО! при реализации в железе фильтр не получается. Что-бы разобраться, в матлабе делаю фильтрацию, как в железе. В результате- тоже не получился фильтр.
Структуру фильтра взял из хелпа матлаба(на картинке).
Ниже привел свой кусок кода для фильтрации.
Вопрос:
как правильно построить БИХ фильтр?


http://nukeuploads.com/getfile/nVIGg8nNIolEYZUlpTaU/1.gif
Код
OUTs=filter(b1,a1,INs);

ii=3;
OUTs11(1)=0;
OUTs11(2)=0;
OUTs11(3)=0;
Z1=0;
Z2=0;
while ii<=length(INs);
OUTs11(ii)=(INs(ii)*b1(1)+Z1)/a1(1);
Z1=INs(ii)*b1(2)-OUTs11(ii-1)*a1(2)+Z2;
Z2=INs(ii)*b1(3)-OUTs11(ii-1)*a1(3);
ii=ii+1;
end;
_zx_
Живая ссылка тут:
http://www.informtablo.kiev.ua/spaw2/uploads/files/1_1.gif
qxov
Честно говоря, не стал вникать в код, да и картинку смотреть не стал.

Фильтры, как правило, очень удобно конструировать с помощью fdatool, где можно выбрать дофига разных параметров. В том числе, можно посмотореть, какой результат будет в случае использования целочисленной арифметики. Далее, полученные коэффициенты фильтров загоняются в программу практически "в лоб" и проблем не возникает, если не допущена какая-нибудь грубая ошибка. Как правило, основные проблемы БИХ фильтров - это, собственно, устойчивость фильтра и разрядность/точность аккумулятора. В первую очередь смотреть это. Если там все будет в порядке, то, практически наверняка, ошибка в реализации. Здесь смотреть, скорее всего, на то, как из линии задержки берутся отсчеты.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.