Страница 1 из 1

Цифровой эквалайзер на БИХ фильтре

Добавлено: 16 апр 2008, 16:24
Foks
В общем, целью является разработка простенького цифрового эквалайзера на микроконтроллере. Должна быть возможность регулировки низких, средних и высоких частот.

Требуется минимальное количество операций, БПФ с нормальным качеством реализовать не получится, да и смысла в нём нет. Решил использовать цифровой БИХ-фильтр.

Так как с ЦФ до этого не сталкивался, возникли проблемы. Во-первых с пониманием, а во-вторых с расчетом.

Изображение (здесь всё понятно)

Далее для полософормирующего фильтра подсчитываем коеффициенты:

A=10^(dBgain/40)

omega = 2*pi*frequency/sampleRate

alpha=sin(omega)*sinh( ln(2)/2 * bandwidth * omega/sin(omega) )

b0 = 1 + alpha*A
b1 = -2*cos(omega)
b2 = 1 - alpha*A
a0 = 1 + alpha/A
a1 = -2*cos(omega)
a2 = 1 - alpha/A

Заданы:
frequency - центральная частота
sampleRate - частота дискретизации
dbGain - усиление
bandwidth - ширина полосы

Только это для фильтра второго порядка. Вопросы такие:
1) Что здесь неправильно?
2) Какого порядка должен быть примерно фильтр для указанной выше цели?
3) И самое главное, как расчитать коеффициенты, желательно общую формулу?

Заранее, спасибо.

Re: Цифровой эквалайзер на БИХ фильтре

Добавлено: 16 апр 2008, 16:59
somewhere
В вашем случае я бы порекомендовал трехпроходную вейвлет-фильтрацию, а можно сделать даже и в один проход, предварительно скомпоновав три вейвлет функции в одной. Тем более что сам алгоритм, на мой взгляд, проще - не рекурсивный как в БИХ и памяти много не сожрет. Реализация по скорости ничуть не уступает БИХ-фильтрации. При использовании предварительно расчитанных таблиц - даже быстрее. А касаемо БИХ - про него уже сказано очень много и в инете полным-полно информации на этот счет.

Re: Цифровой эквалайзер на БИХ фильтре

Добавлено: 17 апр 2008, 19:11
Foks
Спасибо. А где можно найти инфу о вейвлет-фильтрации?

Re: Цифровой эквалайзер на БИХ фильтре

Добавлено: 21 апр 2008, 11:04
Хыиуду
Гугль/Википедия

Re: Цифровой эквалайзер на БИХ фильтре

Добавлено: 24 ноя 2012, 19:23
Piligrim
Здравствуйте форумчане. Я понимаю, что чуть-чуть (эдеак на пару лет :) ) опоздал с ответом, но возможно читающему будет интересно, как же все-таки можно сделать эквалайзер например на микроконтроллере. Я сам интересовался этими и связанными с этим вопросами и могу посоветовать ссылку http://howtodoit.com.ua/tsifrovoy-bih-filtr-iir-filter/ как введение в БИХ фильтры и http://howtodoit.com.ua/tsifrovoy-bih-f ... r-program/ как конкретную реализацию. Удачи!)