ame421
Apr 21 2009, 13:07
Здравствуйте!
Помогите пожалуйста разобраться со следующим вопросом.
Надо сделать октавный эквалайзер. Частота дискретизации сигнала 24кГц. По идее надо выделить каждую полосу, уменьшить\увеличить в ней сигнал, а потом все сложить в выходной сигнал. Хочу все сделать на КИХ фильтрах. Но отфильтровать нижние полосы 250, 500. 1000Гц сложно, так как при частоте дискретизации 24кГц получаются большие порядки фильтров.
Следовательно, понижаем частоту: например для полосы 500Гц надо фильтровать полосу 350-710Гц. Понижаем частоту дискретизации с 24кГц до 1,5кГц, то есть в 16 раз, то есть (как я это понимаю) на линию задержки фильтра для 500Гц подаем каждый 16 отсчет входного сигнала. Дальше надо обратно увеличить частоту с 1,5 до 24кГц, для этого:
1. Сразу интерполировать в 16 раз нельзя, так как потом придется подавлять зеркальные частоты, то есть опять же делать узкополосный фильтр при 24кГц
2. Использовать многокаскадную интерполяцию, но имхо это не айс
3. В книжках что то говорится про полифазные фильтры в контексте многоскоростной обработки сигнала, типа они разбивают входной сигнал на полосы, снижают количество операций. Но я не могу понять, как же они разбивают сигнал на полосы ((((
Собственно вопрос в том, как нормальные люди делают эквалайзеры, правильны ли мои рассуждения (см выше) и в чем фишка полифазных фильтров, как разбить входной сигнал на октавные полосы и потом собрать его?
Может какие книжки посоветуете? Т.к. те, что я читала, мне не совсем понятны ((
Надеюсь на вашу помощь
DRUID3
Apr 21 2009, 14:47
Долго объяснять, но так как Вы предлагаете эквалайзеры не делают. Тем более что это для обработки звука, я так понял. Да и методика Ваша с децимацией-интерполяцией имеет изъяны - фильтры не полосовые получаются - ФВЧ все-равно FIR делать

, появление гребенок частот Найквиста-Котельникова - как их потом "душить"

, еще неизвестно насколько "меньше" будут ресурсозатраты и т.д.
Не нравится порядок FIR, сядьте почитайте, что есть IIR, методику их расчета и те или иные особенности АЧХ в зависимости от методики синтеза.
Книгу не посоветую т.к. это из цикла - "хочу стать программистом, посоветуйте книжку но что-бы кратко и про все"...
ame421
Apr 21 2009, 15:28
а как их делают?
http://www.dj.ru/djlab/studio/djlab_eq.phtml а вот тут написано что полосовыми фильтрами, или я где-то очень сильно ошибаюсь?
расскажите все же про полифазные фильтры, в чем соль?
Vlad27
Apr 21 2009, 15:39
Цитата(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
Apr 21 2009, 15:45
Vlad27, спасибо, посмотрю )) но я по русски то с трудом понимаю в теме ДСП, не то что по английски...
Vlad27
Apr 21 2009, 16:01
Цитата(ame421 @ Apr 21 2009, 18:45)

Vlad27, спасибо, посмотрю )) но я по русски то с трудом понимаю в теме ДСП, не то что по английски...
Здесь еще посмотрите.
ame421
Apr 21 2009, 16:25
а что никто тут не делал эквалайзеры? я думала это довольно распространенная штука... у меня такое чувство, что я сейчас велосипед изобретаю))
DRUID3
Apr 21 2009, 16:43
Ну Вы все-таки почитайте про фильтры с бесконечной импульсной характеристикой, я же не просто так "от балды" предложил...

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

Надо сделать октавный эквалайзер.
Если надо, делайте!
А.Б.Сергиенко, "Цифровая обработка сигналов", Питер, 2006.
Глава 10. "Многоскоростная обработка сигналов".
Стр. 631, "Банки фильтров"
Или:
Vaidyanathan, P. PВсё через БПФ.
alexkok
Apr 23 2009, 03:13
Цитата(ame421 @ Apr 21 2009, 16:07)

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

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

кто-нибудь пользовался IIRCanonic библиотекb дсп в С30? эта функция рабочая? почему то у меня в Асс все время 0... О_О
Привели бы Ваш код, был бы более предметный разговор. А библиотеки вполне рабочие.
furymaxx
May 3 2009, 16:36
Цитата(genadiy @ Apr 30 2009, 18:14)

Вообщем смотрите рисунок который я прикрепил. Мне после него стало понятно как нужно делать. Надеюсь и у вас получиться.
Можно полюбопытствовать, откуда рисунок?
genadiy
May 5 2009, 08:37
Цитата(furymaxx @ May 3 2009, 20:36)

Можно полюбопытствовать, откуда рисунок?
Глинченко А. С.
Г54 Цифровая обработка сигналов: Учеб. пособие: В 2 ч. Ч. 2. Красно-
ярск: ИПЦ КГТУ, 2001. 184 с.
ame421
May 23 2009, 16:21
как регулируемые усилители делать в каждой полосе?
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.