Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Цифровой фильтр на AVR....
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Potter
Задача собственно такая..... Есть звуковой диапазон 10 Гц - 25 кГц(собственно аудио сигнал)..... Разделить весь звуковой диапазон на 3 части: низкие, средние и высокие спомощью математических преобразований.... Причем дискритизация оцифрованного сигнала не меньше 16 бит.

Понятно что встроеное АЦП в AVR контроллерах не подходит.... Реализовывать надо на внешнем высоскоросном АЦП. С помощью этого АЦП преобразовать аудио сигнал в цифру... Вопрос собственно такой: Хватит ли потом конроллера AVR для математических преобразований(я так понимаю это преобразования фурье)? Или надо ставить сигнальный конроллер?

Если у кого есть информация про АЦП под решение этой задачи просьба поделиться....

Заранее большое спасибо за ответы.....
Petka
Цитата(Potter @ Sep 12 2006, 20:30) *
Задача собственно такая..... Есть звуковой диапазон 10 Гц - 25 кГц(собственно аудио сигнал)..... Разделить весь звуковой диапазон на 3 части: низкие, средние и высокие спомощью математических преобразований.... Причем дискритизация оцифрованного сигнала не меньше 16 бит.

Понятно что встроеное АЦП в AVR контроллерах не подходит.... Реализовывать надо на внешнем высоскоросном АЦП. С помощью этого АЦП преобразовать аудио сигнал в цифру... Вопрос собственно такой: Хватит ли потом конроллера AVR для математических преобразований(я так понимаю это преобразования фурье)? Или надо ставить сигнальный конроллер?

Если у кого есть информация про АЦП под решение этой задачи просьба поделиться....

Заранее большое спасибо за ответы.....


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

P.S. Судя по описанию вы делаете "светомузыку", но зачем тогда входные 16 бит?
Potter
Цитата(Petka @ Sep 12 2006, 19:42) *
смотря насколько качественное разделение на три полосы необходимо. насколько допустимы задержки? Кстати для реазизации фильтров совсем не обязательно делать преобразование Фурье. Может Вам подойдут рекурсивные фильтры, которые не требовательны к ресурсам (относительно Фурье). Опишите Вашу задачу более детально. Тогда попробуем дать более толковые советы.


Идея собственно в том что б зделать кроссовер на цифровых фильтрах....
какое нужно качество? Как можно лучше в разумных пределах.... Исходить из соотношения цена качество....
Petka
Цитата(Potter @ Sep 12 2006, 20:50) *
Идея собственно в том что б зделать кроссовер на цифровых фильтрах....
какое нужно качество? Как можно лучше в разумных пределах.... Исходить из соотношения цена качество....


Хм. ИМХО если дело дошло до трёхполосного звука, то необходимо делать НЕрекурсивные фильтры высоких порядков, на что у АВР однозначно не хватит производительности.
Shurmas
Уверен не реально! Если только на AVR32.
Potter
Цитата(Petka @ Sep 12 2006, 20:04) *
Цитата(Potter @ Sep 12 2006, 20:50) *

Идея собственно в том что б зделать кроссовер на цифровых фильтрах....
какое нужно качество? Как можно лучше в разумных пределах.... Исходить из соотношения цена качество....


Хм. ИМХО если дело дошло до трёхполосного звука, то необходимо делать НЕрекурсивные фильтры высоких порядков, на что у АВР однозначно не хватит производительности.


Что б вы посоветовали?

Цитата(Shurmas @ Sep 12 2006, 20:07) *
Уверен не реально! Если только на AVR32.


Пожалуйта поконкретней.... AVR32 это какие конроллеры? Назовите пожалуйста пару моделей.....
Shurmas
avr32 это совсем не AVR это на atmel.com

А по существу советую взять звуковой процессор
филипс или какой-то другой и просто управлять им АВРкой.
Petka
Цитата(Potter @ Sep 12 2006, 21:20) *
Цитата(Petka @ Sep 12 2006, 20:04) *

Цитата(Potter @ Sep 12 2006, 20:50) *

Идея собственно в том что б зделать кроссовер на цифровых фильтрах....
какое нужно качество? Как можно лучше в разумных пределах.... Исходить из соотношения цена качество....


Хм. ИМХО если дело дошло до трёхполосного звука, то необходимо делать НЕрекурсивные фильтры высоких порядков, на что у АВР однозначно не хватит производительности.


Что б вы посоветовали?

Цитата(Shurmas @ Sep 12 2006, 20:07) *
Уверен не реально! Если только на AVR32.


Пожалуйта поконкретней.... AVR32 это какие конроллеры? Назовите пожалуйста пару моделей.....


Для любых фильтров хорошо подходят DSP. Но делать на них кроссовер наверное неоправданно... в принципе и на АВР32 тоже. Наверняка есть специализированные микросхемы. Кстати а чем Вам уже готовые кроссоверы не годятся?
Potter
Цитата(Petka @ Sep 12 2006, 20:26) *
Для любых фильтров хорошо подходят DSP. Но делать на них кроссовер наверное неоправданно... в принципе и на АВР32 тоже. Наверняка есть специализированные микросхемы. Кстати а чем Вам уже готовые кроссоверы не годятся?


Значит будем искать специализированные микросхеммы....

Я вообще-то готовых в продаже не видел..... Я их не искал.... Но на глаза не попадались..... И мне кажеться что они будут дорого стоить..... Это раз.... Потом мне интересно разобраться как делать цифровые фильтры.... Почему б при этом не зделать хорошую вещь.....

Может у вас есть или знаете ссылку на информацию про математику для цифровых фильров был бы очень признателен....


Цитата(Shurmas @ Sep 12 2006, 20:23) *
avr32 это совсем не AVR это на atmel.com

А по существу советую взять звуковой процессор
филипс или какой-то другой и просто управлять им АВРкой.


Может вы хотели сказать сигнальный процессор или именно звуковой? Если звуковой просьбы в двух словах пояснить чем звуковой отличается от сигнального....
Petka
Цитата(Potter @ Sep 12 2006, 21:46) *
Значит будем искать специализированные микросхеммы....

Я вообще-то готовых в продаже не видел..... Я их не искал.... Но на глаза не попадались..... И мне кажеться что они будут дорого стоить..... Это раз.... Потом мне интересно разобраться как делать цифровые фильтры.... Почему б при этом не зделать хорошую вещь.....

Может у вас есть или знаете ссылку на информацию про математику для цифровых фильров был бы очень признателен....


1) если хотите по простому, то воспользуйтесь программой FilterSolutions она умеет по заданным характеристикам расчитывать практически любые фильтры, и цифровые в том числе. На выходе программа сгенерит кусок кода на Си, который выполняет нужную фильтрацию.
2) если хотите по "большому кругу", то следует почитать учебники по цифрофой обработке сигналов (ЦОС) тогда и понимание придёт.


Цитата(Potter @ Sep 12 2006, 21:46) *
Может вы хотели сказать сигнальный процессор или именно звуковой? Если звуковой просьбы в двух словах пояснить чем звуковой отличается от сигнального....

сигнальный процессор это универсальное средство, с набором возможностей по математической обработке больших обьёмов данных за малое время =). а звуковой процессор, это узкоспециализированное устройство, которое предназначено только для проведения операций, типичных для аудио.
Potter
Цитата(Petka @ Sep 12 2006, 20:52) *
1) если хотите по простому, то воспользуйтесь программой FilterSolutions она умеет по заданным характеристикам расчитывать практически любые фильтры, и цифровые в том числе. На выходе программа сгенерит кусок кода на Си, который выполняет нужную фильтрацию.
2) если хотите по "большому кругу", то следует почитать учебники по цифрофой обработке сигналов (ЦОС) тогда и понимание придёт.


Ясно... Спасибо... Наверно так и поступлю.....
Shurmas
Цитата(Potter @ Sep 12 2006, 21:46) *
Может у вас есть или знаете ссылку на информацию про математику
для цифровых фильров был бы очень признателен....


Есть Апноуты по цифровой фильтрации и целую библиотеку книг
для скачивания рекомендовали недавно в соседней ветке:
Цитата(Alizei @ Sep 12 2006, 11:25) *
на kazus.ru теперь скачка платная. бесплатно в библиотеке там: [banned]

там есть все и по МК и по цифровой фильтрации.
muravei
Цитата(Shurmas @ Sep 12 2006, 21:07) *
Уверен не реально! Если только на AVR32.

На сайте TI есть апликуха распознавания DTMF с помощью Wave Digital Filter на MSP 430, причем без аппаратного умножителя и клоком 3мГц.А это 8 полосовых фильтров.
Я нашел статью по которой расчитывались эти WDF , но к сожалению не все там понялsad.gif
Potter
Спасибо....
pokos
Цитата(Potter @ Sep 12 2006, 20:30) *
Есть звуковой диапазон 10 Гц - 25 кГц(собственно аудио сигнал)..... Разделить весь звуковой диапазон на 3 части: низкие, средние и высокие спомощью математических преобразований....

Не хватит кокса, это точно. При похожей задаче у меня хватило кокса только на частоту дискретизации 20кГц. При том, что склоны фильтров все 2-го порядка.
Что касается распознавалок DTMF, то там обходятся вовсе без полосовых фильтров.
muravei
Цитата(pokos @ Sep 13 2006, 10:43) *
Что касается распознавалок DTMF, то там обходятся вовсе без полосовых фильтров.

Мало ли где без чего обходятся. Я утверждаю , что в этом случае именно плосовые фильтры WDF , аналоги LC.
Единственное сомнение в "успевалости" АЦП - 50кГц он ,думаю не потянет.
Stanislav
Цитата(Potter @ Sep 12 2006, 20:30) *
Задача собственно такая..... Есть звуковой диапазон 10 Гц - 25 кГц(собственно аудио сигнал)..... Разделить весь звуковой диапазон на 3 части: низкие, средние и высокие спомощью математических преобразований.... Причем дискритизация оцифрованного сигнала не меньше 16 бит.

Понятно что встроеное АЦП в AVR контроллерах не подходит.... Реализовывать надо на внешнем высоскоросном АЦП. С помощью этого АЦП преобразовать аудио сигнал в цифру... Вопрос собственно такой: Хватит ли потом конроллера AVR для математических преобразований(я так понимаю это преобразования фурье)? Или надо ставить сигнальный конроллер?
Если DSP по каким-то причинам неприменим, можно попробовать ARM. Недорогие LPC21xx от Филипс, или, например, AT91SAM7 от Атмел с этой задачей, безусловно, справятся.

Цитата(Potter @ Sep 12 2006, 20:30) *
...Если у кого есть информация про АЦП под решение этой задачи просьба поделиться...
В качестве АЦП лучше всего взять аудио сигма-дельта кодек - подобные приборы специально предназначены для оцифровки звука, и имеют относительно низкую цену. Посмотреть можно у TI, AD, Philips, etc. Только следует обратить внимание на совместимость интерфейса с процессорной периферией.
DRUID3
Ко всему вышесказанному остается добавить, что буквально все задачи ЦОС отлично поддаются распараллеливанию (те же ЦФ или БПФ). И раз автор топика имеет опыт программирования на AVR а один кристалл может не справляться (что тоже не факт) то вполне можно поставить и 2-а и 4-е контроллера. Тем более, как я понял, человека больше интересует изучение (педагогические цели) а не кроссовер как таковой (как советовали выйти в магазин и купить). А ведь ничто так хорошо не учит как трудности biggrin.gif , и работая над проектом с кристаллом малой "битности" и относительно не высокой тактовой частотой можно гораздо глубже понять тонкости параллелизма процессов в ЦОС, эффектов конечной разрядности, реально требуемые MIPS и MFLOPS для конкретных задач и т.д. и т.п. чем копируя стандартные библиотеки и обрабатывая DTMF на каком-нибудь "Блекфине" или хотя-бы TMS320C80 ( laugh.gif )...
pokos
Цитата(muravei @ Sep 13 2006, 15:56) *
Мало ли где без чего обходятся. Я утверждаю , что в этом случае именно плосовые фильтры WDF , аналоги LC.

Это не полосовые фильтры, а одиночные резонансные контуры. Не видите разницы? Взгляните на АЧХ в том документе.
Stanislav
Цитата(pokos @ Sep 13 2006, 16:44) *
Цитата(muravei @ Sep 13 2006, 15:56) *
Мало ли где без чего обходятся. Я утверждаю , что в этом случае именно плосовые фильтры WDF , аналоги LC.

Это не полосовые фильтры, а одиночные резонансные контуры. Не видите разницы? Взгляните на АЧХ в том документе.
Друзья, не нужно спорить. Дело в том, что для решения поставленной задачи полосовые фильтры вовсе не нужны - достаточно одного ФНЧ и одного ФВЧ. smile.gif
pokos
Цитата(Stanislav @ Sep 13 2006, 16:50) *
...Дело в том, что для решения поставленной задачи полосовые фильтры вовсе не нужны - достаточно одного ФНЧ и одного ФВЧ. smile.gif

Кажется. Хотя, если забить на кривость ГВЗ фильтов и соответствующую кривизну АЧХ псевдофильтра СЧ, тогда покатит и так. ФНЧ и ФВЧ (2-го порядка) у меня занимают что-то в районе 170 тактов.
Кстати, Stanislav, Ваши рекомендации по применению железа полностью поддерживаю.
Stanislav
Цитата(pokos @ Sep 13 2006, 16:55) *
Цитата(Stanislav @ Sep 13 2006, 16:50) *
...Дело в том, что для решения поставленной задачи полосовые фильтры вовсе не нужны - достаточно одного ФНЧ и одного ФВЧ. smile.gif

Кажется. Хотя, если забить на кривость ГВЗ фильтов и соответствующую кривизну АЧХ псевдофильтра СЧ, тогда покатит и так...
Ну, для постоянства ГВЗ можно и КИХ-фильтры в качестве ФНЧ и ФВЧ применить.
А из-за "кривости" ГВЗ в БИХ-фильтрах разделение полос путём вычитания только и нужно делать. Иначе потом, при суммировании сигналов, неприятности неизбежны.
muravei
Цитата(pokos @ Sep 13 2006, 16:44) *
Цитата(muravei @ Sep 13 2006, 15:56) *
Мало ли где без чего обходятся. Я утверждаю , что в этом случае именно плосовые фильтры WDF , аналоги LC.

Это не полосовые фильтры, а одиночные резонансные контуры. Не видите разницы? Взгляните на АЧХ в том документе.

А я чего говорю!LC и вообще хрен редьки не слаще.
И почему резонансный контур не может быть в полосовом фильтре?
А ширина полосы зависит от его добротности.
Вы же утверждали что DTMF фильтрами не определяют.
И плевать на DTMF. главное восьми полосный фильтр на смешных аппаратных ресурсах.см стр. 27
muravei
Кстати , кто заитересовался файлом slaae16.pdf, могут найти статью №4 из библиографии в /upload/DSP/ или попросить меня прислать.
Очень хотелось бы в ней разобраться полностью.
pokos
Цитата(muravei @ Sep 13 2006, 18:47) *
И почему резонансный контур не может быть в полосовом фильтре?

Может. Но не может быть приличного полосового фильтра на единственном контуре.
Цитата
А ширина полосы зависит от его добротности.

Вот именно поэтому.
Цитата
Вы же утверждали что DTMF фильтрами не определяют.

Я утверждал, что DTMF определяют и без фильтров.
Цитата
главное восьми полосный фильтр на смешных аппаратных ресурсах.см стр. 27

Ещё раз поясняю. Это НЕ полосовые фильтры. Ресурсы, действительно, смешные. Наверное из-за ещё более смешных коэффициентов, подогнанных специально под алгоритм.
Serj78
2 potter:
если у вас задача не для обучения, а для результата- например для создания трехполосной акустики- то оно того не стоит...
Мы изучали и слушали несколько популярных звуковых процессоров- все 24 бита, кстати. самый дорогой (1500$) был оставлен для целей предварительной подборки фильтров для колонок. там СТОЛЬКО внутри наворочено, что его разработка не выгодна... хотя качество звука все равно страдает- в основном из-за говняных цапов на выходе.
evg123
Цитата(Potter @ Sep 12 2006, 20:30) *
Задача собственно такая..... Есть звуковой диапазон 10 Гц - 25 кГц(собственно аудио сигнал)..... Разделить весь звуковой диапазон на 3 части: низкие, средние и высокие спомощью математических преобразований.... Причем дискритизация оцифрованного сигнала не меньше 16 бит.

Понятно что встроеное АЦП в AVR контроллерах не подходит.... Реализовывать надо на внешнем высоскоросном АЦП. С помощью этого АЦП преобразовать аудио сигнал в цифру... Вопрос собственно такой: Хватит ли потом конроллера AVR для математических преобразований(я так понимаю это преобразования фурье)? Или надо ставить сигнальный конроллер?

Если у кого есть информация про АЦП под решение этой задачи просьба поделиться....

Заранее большое спасибо за ответы.....

У каждого семейства микроконтроллеров своя ниша. Сначала был 51-ый (89-ая серия) (для управления приборами и механикой: включить, выключить, измерить, выдать тревогу и т.д.), затем появились AVR-ы (90 серия), котороые могли больше и работали быстрее, но по сути для тех же целей. Затем появились ARMы (91-ая серия), на которых уже начали люди сжимать-разжимать звук, воспроизводить и т.д. Не надо использовать AVR для того, что не есть его ниша. Начинайте с ARM. Дальше недорогой ADSP, дальше TI320, дальше BlackFin 530. Чтобы не утонуть оцените, какая производительность в MIPSах (для нужной разрядности) вам нужна и выбирайте соответствующий процессор (или тот, что чуть помощнее).
Potter
Цитата(Stanislav @ Sep 13 2006, 15:17) *
Если DSP по каким-то причинам неприменим, можно попробовать ARM. Недорогие LPC21xx от Филипс, или, например, AT91SAM7 от Атмел с этой задачей, безусловно, справятся.


Искал в инете PDF на AT91SAM7 (заходил даже на сайт Атмела) нашел какой-то урезанный документ на 42 страницы, вот этот.

Неужели это все что есть по этому контроллеру??? Большая просьба если у кого есть PDF на AT91SAM7 выложить или дать ссылку......

Большое спасибо всем за участие....
Potter
Цитата(Potter @ Sep 14 2006, 22:31) *
Искал в инете PDF на AT91SAM7 (заходил даже на сайт Атмела) нашел какой-то урезанный документ на 42 страницы, вот этот.

Неужели это все что есть по этому контроллеру??? Большая просьба если у кого есть PDF на AT91SAM7 выложить или дать ссылку......

Большое спасибо всем за участие....


Все!!! Нашел и полный ПДФ.... Извените за беспокойство..... Остается еще один маленький вопросик.... Скачивал недавно Embedded Workbench 4.20 A Evaluation.... Посмотрел там 91 первых контроллеров нет... Может кто знает где можно скачать для работы компилятор под эту серию конроллеров.... Большая просьбы дать ссылку... Очень желательно что б компилятор был сишный..... Заранее приогромнешее спасибо....
IgorKossak
Цитата(Potter @ Sep 14 2006, 22:48) *
Скачивал недавно Embedded Workbench 4.20 A Evaluation.... Посмотрел там 91 первых контроллеров нет... Может кто знает где можно скачать для работы компилятор под эту серию конроллеров.... Большая просьбы дать ссылку... Очень желательно что б компилятор был сишный..... Заранее приогромнешее спасибо....

Вы очевидно EWAVR скачивали, а надо EWARM v4.40A.
Дело не в фирме-производителе, а в платформе.
Potter
Цитата(IgorKossak @ Sep 15 2006, 08:26) *
Вы очевидно EWAVR скачивали, а надо EWARM v4.40A.
Дело не в фирме-производителе, а в платформе.


Дайте пожалуйста ссылку на компилятор..... Был бы очень признателен......
muravei
Цитата(pokos @ Sep 14 2006, 10:54) *
Ресурсы, действительно, смешные. Наверное из-за ещё более смешных коэффициентов, подогнанных специально под алгоритм.

Пусть козффициенты и смешные , но но и с ними , макс ошибка состовляет 0,55%, что совсем не смешно.
И не критичность к точности коэффициетов является несомненным достоинством WDF.
2pokos.
Раз Вы так хорошо разбираетесь в цифровых фильтрах, то возможно , Вам не составит труда помочь мне понять как расчитывается "a “lossy” adapter"?Это всего лишь одна формула.
Если Вы не против , я Вам вышлю статью.
pokos
Цитата(muravei @ Sep 15 2006, 10:19) *
,...то возможно , Вам не составит труда помочь мне понять как расчитывается "a “lossy” adapter"?Если Вы не против , я Вам вышлю статью.

Попробую на досуге. Статью не надо, у меня есть.
Формула там не одна, а несколько. http://ieeexplore.ieee.org/iel5/31/799/000...?arnumber=20205 стр.277 и 278 - довольно понятно написано. Ценно, можно получить и режекторный фильтр. Ф-лы (19), (20), (22a) и (22b).
IgorKossak
Цитата(Potter @ Sep 15 2006, 08:53) *
Цитата(IgorKossak @ Sep 15 2006, 08:26) *

Вы очевидно EWAVR скачивали, а надо EWARM v4.40A.
Дело не в фирме-производителе, а в платформе.

Дайте пожалуйста ссылку на компилятор..... Был бы очень признателен......

Здесь перед закачкой попросят заполнить форму.
Потом по Вашему адресу пришлют триальный ключ.
muravei
Цитата(pokos @ Sep 18 2006, 10:37) *
Формула там не одна, а несколько.

Но сильно непонятны 17-19
pokos
Цитата(muravei @ Sep 18 2006, 16:29) *
Но сильно непонятны 17-19

Что конкретно непонятно?
muravei
Цитата(pokos @ Sep 19 2006, 09:34) *
Что конкретно непонятно?

Напр. 17
Для начала - корень , что под ним?
К - в чем, в разах, в дБ?
Как опред. полосу по уровню 10дБ(для В), если знаешь по 20 дБ(сам задаешь)
pokos
Цитата(muravei @ Sep 19 2006, 09:59) *
Для начала - корень , что под ним?

Всё, что дальше.
Цитата
К - в чем, в разах, в дБ?

Разы.
Цитата
Как опред. полосу по уровню 10дБ(для В), если знаешь по 20 дБ(сам задаешь)

Fb задаётся по уровню -6дБ, а не -10.
Here, the pad loss is 20 log K , f, is the center frequency, and
is the so-called frequency of half pad loss of the cut or boost
sections, i.e., the frequency, where the pad loss is exactly equal to
1Olog K.
Принять спад за 40дБ/дек. и посчитать.
muravei
Цитата(pokos @ Sep 19 2006, 10:52) *
Fb задаётся по уровню -6дБ, а не -10.

Опять не понял blink.gif
На фиг.1 же черным по белому 10? blink.gif
pokos
Цитата(muravei @ Sep 19 2006, 11:18) *
Опять не понял blink.gif
На фиг.1 же черным по белому 10? blink.gif

Вообще-то, какая-то странно. Поскольку 20logK и 10logK отличаются всегда в 2 раза, т.е. это может быть 100 и 50 дБ, к примеру, если К=100000. Т.е. и 10, и 6дБ - неправильно.
Первый раз в жизни вижу, чтобы так задавали понятие полосы фильтра.
Проверять вывод формул влом, проще попробовать два значения К и смоделировать результат.
muravei
Цитата(pokos @ Sep 19 2006, 11:44) *
Вообще-то, какая-то странно. Поскольку 20logK и 10logK отличаются всегда в 2 раза, т.е. это может быть 100 и 50 дБ, к примеру, если К=100000. Т.е. и 10, и 6дБ - неправильно.

А 20logK и 10logK это не 20дБ и 10дБ?
Как я помню - 10 и 20 дБ по напряжению отличаются не в 2, а в 3 раза.
10дБ это в 3, с чем-то (15-17)smile.gif, а 20 дБ - в 10 раз.
pokos
Цитата(muravei @ Sep 19 2006, 13:24) *
А 20logK и 10logK это не 20дБ и 10дБ?

Да хрен его знает. Чем гадать, проще попробовать.
А вообще Fb у них - это частота, где "усиление" достигает корень(К) раз. Возможно, в этом и заключён весь суровый смысл.....
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.