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

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Цифровой эквалайзер на БИХ фильтре

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

Piligrim » 24 ноя 2012, 19:23

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

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

Хыиуду » 21 апр 2008, 11:04

Гугль/Википедия

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

Foks » 17 апр 2008, 19:11

Спасибо. А где можно найти инфу о вейвлет-фильтрации?

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

somewhere » 16 апр 2008, 16:59

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

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

Foks » 16 апр 2008, 16:24

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

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

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

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

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

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) И самое главное, как расчитать коеффициенты, желательно общую формулу?

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

Вернуться к началу