Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: эквалайзеры, узкополосная фильтрация
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
ame421
Здравствуйте!
Помогите пожалуйста разобраться со следующим вопросом.

Надо сделать октавный эквалайзер. Частота дискретизации сигнала 24кГц. По идее надо выделить каждую полосу, уменьшить\увеличить в ней сигнал, а потом все сложить в выходной сигнал. Хочу все сделать на КИХ фильтрах. Но отфильтровать нижние полосы 250, 500. 1000Гц сложно, так как при частоте дискретизации 24кГц получаются большие порядки фильтров.
Следовательно, понижаем частоту: например для полосы 500Гц надо фильтровать полосу 350-710Гц. Понижаем частоту дискретизации с 24кГц до 1,5кГц, то есть в 16 раз, то есть (как я это понимаю) на линию задержки фильтра для 500Гц подаем каждый 16 отсчет входного сигнала. Дальше надо обратно увеличить частоту с 1,5 до 24кГц, для этого:
1. Сразу интерполировать в 16 раз нельзя, так как потом придется подавлять зеркальные частоты, то есть опять же делать узкополосный фильтр при 24кГц
2. Использовать многокаскадную интерполяцию, но имхо это не айс
3. В книжках что то говорится про полифазные фильтры в контексте многоскоростной обработки сигнала, типа они разбивают входной сигнал на полосы, снижают количество операций. Но я не могу понять, как же они разбивают сигнал на полосы ((((

Собственно вопрос в том, как нормальные люди делают эквалайзеры, правильны ли мои рассуждения (см выше) и в чем фишка полифазных фильтров, как разбить входной сигнал на октавные полосы и потом собрать его?
Может какие книжки посоветуете? Т.к. те, что я читала, мне не совсем понятны ((

Надеюсь на вашу помощь
DRUID3
Долго объяснять, но так как Вы предлагаете эквалайзеры не делают. Тем более что это для обработки звука, я так понял. Да и методика Ваша с децимацией-интерполяцией имеет изъяны - фильтры не полосовые получаются - ФВЧ все-равно FIR делать sad.gif , появление гребенок частот Найквиста-Котельникова - как их потом "душить" sad.gif , еще неизвестно насколько "меньше" будут ресурсозатраты и т.д.

Не нравится порядок FIR, сядьте почитайте, что есть IIR, методику их расчета и те или иные особенности АЧХ в зависимости от методики синтеза.

Книгу не посоветую т.к. это из цикла - "хочу стать программистом, посоветуйте книжку но что-бы кратко и про все"... smile.gif
ame421
а как их делают?

http://www.dj.ru/djlab/studio/djlab_eq.phtml а вот тут написано что полосовыми фильтрами, или я где-то очень сильно ошибаюсь?

расскажите все же про полифазные фильтры, в чем соль?
Vlad27
Цитата(ame421 @ Apr 21 2009, 16:07) *
Здравствуйте!
Помогите пожалуйста разобраться со следующим вопросом.

Надо сделать октавный эквалайзер. Частота дискретизации сигнала 24кГц. По идее надо выделить каждую полосу, уменьшить\увеличить в ней сигнал, а потом все сложить в выходной сигнал. Хочу все сделать на КИХ фильтрах. Но отфильтровать нижние полосы 250, 500. 1000Гц сложно, так как при частоте дискретизации 24кГц получаются большие порядки фильтров.

--- skipped

Собственно вопрос в том, как нормальные люди делают эквалайзеры, правильны ли мои рассуждения (см выше) и в чем фишка полифазных фильтров, как разбить входной сигнал на октавные полосы и потом собрать его?
Может какие книжки посоветуете? Т.к. те, что я читала, мне не совсем понятны ((

Надеюсь на вашу помощь


Может быть эта книжка поможет? -
"Multirate Filtering for Digital Signal Processing: MATLAB Applications", Ljiljana Milić, University of Belgrade, Serbia
ame421
Vlad27, спасибо, посмотрю )) но я по русски то с трудом понимаю в теме ДСП, не то что по английски...
Vlad27
Цитата(ame421 @ Apr 21 2009, 18:45) *
Vlad27, спасибо, посмотрю )) но я по русски то с трудом понимаю в теме ДСП, не то что по английски...


Здесь еще посмотрите.
ame421
а что никто тут не делал эквалайзеры? я думала это довольно распространенная штука... у меня такое чувство, что я сейчас велосипед изобретаю))
DRUID3
Ну Вы все-таки почитайте про фильтры с бесконечной импульсной характеристикой, я же не просто так "от балды" предложил... sad.gif

То, что предлагаете Вы так или иначе сведется еще и к дополнительной FIR фильтрации - чисто вылитые вейвлеты Добеши...

А в этой брошюре на странице 36-37 как вариант "того что Вам нужно"...
WEST128
Предлагаю автору оценить порядок фильтров, найти суммарное количество коэффициентов и на основании этого определить требования к быстродействию процессора. К сожалению, матлаба сейчас нет под рукой, могу только привести свой пример : ФНЧ 10 Гц, полоса расфильтровки столько-же, при частоте дискретизации 16 кГц содержит 2360 коэффициентов. У вас полоса много шире, может быть, требования к расфильтровке немного пожестче, так что число коэффициентов будет меньше, или сравнимо. Теперь можно взять ADSP-BF532, производительность 800 MMAC, с учетом накладных расходов реально будет меньше, допустим, 500. В терминах отсчетов получается 500/0.024 = 20833. Следовательно, данный далеко не самый быстрый процессор сможет посчитать не меньше 8 таких фильтров за период одной выборки, на основании чего могу сказать, что эквалайзер в него влезет гарантированно, без всяких дополнительных мытарств с интерполяцией.
blackfin
Цитата(ame421 @ Apr 21 2009, 17:07) *
Надо сделать октавный эквалайзер.

Если надо, делайте!

А.Б.Сергиенко, "Цифровая обработка сигналов", Питер, 2006.

Глава 10. "Многоскоростная обработка сигналов".

Стр. 631, "Банки фильтров"

Или: Vaidyanathan, P. P

Всё через БПФ.
alexkok
Цитата(ame421 @ Apr 21 2009, 16:07) *
Надо сделать октавный эквалайзер.

Здесь есть октавный эквалайзер.
alex_os
Цитата(blackfin @ Apr 22 2009, 11:10) *
Или: Vaidyanathan, P. P

Всё через БПФ.


+100. ИМХО это наименее ресурсоемкий подход и ффт там маленькое...
ame421
кто-нибудь пользовался IIRCanonic библиотекb дсп в С30? эта функция рабочая? почему то у меня в Асс все время 0... О_О
genadiy
Вот почитайте. Я недавно делал виброанализатор для полосы 10-1000Гц. Тоже сразу сделал IIR как вам предлагали здесь на формуе, но как оказалось после квантования в формат 16.15 характеристика фильтра очень исказилась, А уже плату сделали по ДСПИК с достаточно маленькими ресурсами, та и количество каналов которое он должен был обрабатывать было 8 что критично сказывалось на время. Но всё оказалось проще - три КИХ фильтра, децимация и сумма квадратов на выходе фильтров. Вообщем смотрите рисунок который я прикрепил. Мне после него стало понятно как нужно делать. Надеюсь и у вас получиться.
Нажмите для просмотра прикрепленного файла
PS. Да чуть не забыл. Сделал свой сайт http://www.nemczov.com/ На котором есть и будут размещаться мои статьи по ЦОС.
Vlad27
Цитата(ame421 @ Apr 29 2009, 16:05) *
кто-нибудь пользовался IIRCanonic библиотекb дсп в С30? эта функция рабочая? почему то у меня в Асс все время 0... О_О


Привели бы Ваш код, был бы более предметный разговор. А библиотеки вполне рабочие.
furymaxx
Цитата(genadiy @ Apr 30 2009, 18:14) *
Вообщем смотрите рисунок который я прикрепил. Мне после него стало понятно как нужно делать. Надеюсь и у вас получиться.


Можно полюбопытствовать, откуда рисунок?
genadiy
Цитата(furymaxx @ May 3 2009, 20:36) *
Можно полюбопытствовать, откуда рисунок?

Глинченко А. С.
Г54 Цифровая обработка сигналов: Учеб. пособие: В 2 ч. Ч. 2. Красно-
ярск: ИПЦ КГТУ, 2001. 184 с.
ame421
как регулируемые усилители делать в каждой полосе?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.