0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 321
|
|
1 | |
БПФ(FFT) на микроконтроллерах AVR ???02.06.2011, 05:09. Показов 33287. Ответов 28
Метки нет (Все метки)
Обожаю цветомузыку, но к сожалению все отечественные варианты слишком громоздки, да и с появлением микроконтроллеров, они морально устарели. В сети множество примеров Быстрого Преобразования Фурье - основы любой цветомузыки на мк, но вот как его реализовать я так и не понял. Существует достаточно материала на эту тему, но либо на английском, либо написано так что сам чорт ногу сломит... Смысл как бы ясен: разложить сигнал на простые составляющие, а как реализовать - это вопрос.
0
|
02.06.2011, 05:09 | |
Ответы с готовыми решениями:
28
Эмуляция RFID ключа домофона на микроконтроллерах AVR Персональный компьютер ZX Spectrum на микроконтроллерах AVR своими руками БПФ FFT Выделение гармоники в БПФ (fft) Как можно получить амплитудный и фазовый спектры, коэффициенты разложения бпф без стандартной функции fft |
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
|
|
02.06.2011, 05:45 | 2 |
Думал тоже подобное сделать. Остановился на том, что надо на АЦП подавать сигнал, а МК будет работать частотомером, зажигая ту или иную лампочку в зависимости от частоты...
0
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 321
|
|
02.06.2011, 06:15 | 3 |
Сообщение от BykTiho
------------------------------------------------------------------ Вот нашел цветомузыку на меге8 с БПФ, пытался даже крякнуть прошивку, но к сожалению, ее было очень тяжело прочитать. Видео работы устройства.
0
|
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
|
|
02.06.2011, 06:22 | 4 |
Ну тогда набор фильтров на вход, а на выходе - зажигать лампочки. Но тогда уже МК вообще ненужная деталь. Проще на транзисторах сделать.
0
|
0 / 0 / 0
Регистрация: 12.10.2010
Сообщений: 82
|
|
02.06.2011, 06:33 | 5 |
Где то видел статью, по-моему здесь на форуме. Чувак в каску строительную засунул несколько линеек светодиодов, аврку, микрофон. Сделал типа индикатора спектра в винампе или кассетные нигнитофоны были тоже с таким индикатором. Торопился на какой то концерт пофорсить. Чем не выход? может у него и не было там именно БПФ, но задача сходная решалась. Уровень, спектр.
Вот кстати и ссылка
0
|
0 / 0 / 0
Регистрация: 01.02.2011
Сообщений: 275
|
|
02.06.2011, 06:39 | 6 |
0
|
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 177
|
|
02.06.2011, 12:52 | 7 |
Ну АЦП меги могет работать на 200 кГц. Преобразование - 13 тактов. Имеем 200/13 = 15.38 кГц - частота дискретизации. Верхнея входная частота по Котельникову получается 15.38 / 2 = 7.69 кГц. Маловато будет для классики, но для современной музыки пойдет. Буфер возьмём на 16 отсчетов. Тогда получим частотные отсчеты через каждые 513 Гц (7.69кГц / N-1 = 513). А вот это уже не оченьто культяписто - треба хоть пару канальчиков на низкие заиметь. Можно по пробывать увиличить буфер до N=64, тогда 7.68кГц / (64-1) = 122 Гц. Уже лучше, но все равно не достаточно треба каналы герц на 30 - 60 заиметь. Это уже буфер на 128 отсчетов. Но вот хватит ли ресурсов его обработать - хз. Требуемое кол-во операций сложения-перемножения X = N * log2(N). Для N = 64 X = 64 * log2(64) = 64 * 6 = 384. По тактам считайте сами - лениво. Только учитывайте время на перемножение и сложение по отдельности и не забудте добавить время на операции загрузки операндов.
0
|
0 / 0 / 0
Регистрация: 12.10.2010
Сообщений: 82
|
|
02.06.2011, 13:24 | 8 |
"Ну АЦП меги могет работать на 200 кГц. Преобразование - 13 тактов. Имеем 200/13 = 15.38 кГц"
да 15 кSPS. Но если не нужно 10 бит, то можно и больше подавать. Тут по идее и 4 бит хватит.
0
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
|
|
02.06.2011, 13:45 | 9 |
а можно делать не бпф на кучу отсчетов, а тупо N фильтров - вам же не нужны все 128 коэффициентов ПФ? там и вычисл. мощность будет не такая большая нужна. рекурсивный цифровой фильтр (на конкретную частоту дискретизации), смоделировать в матлабе.
0
|
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 177
|
|
02.06.2011, 14:19 | 10 |
Хватит, не спорю. Но вот памяти то хватит что бы расчитать преобразование? Увеличим частоту - увеличиться интервал между отсчетами, значит нужно больше буфер - что бы низкие компоненты были. больше буфер - больше ОЗУ сожрет, да и время вычисления больше.
По поводу реализации в виде N фильтров - алгоритм Герцеля - на низких частотах время накопления будет большое - 3-5 сек. А это уже инерционность что ни есть гуд на динамичной системе типа цветомузыки. Под классику типа Чайковского или Рахманинова, Бетховена - пойдет, а вот Rammstein или NightWish - не в красну армию.
0
|
0 / 0 / 0
Регистрация: 01.02.2011
Сообщений: 275
|
|
02.06.2011, 14:22 | 11 |
Сообщение от _kuordyomomkit
0
|
0 / 0 / 0
Регистрация: 07.04.2010
Сообщений: 880
|
|
02.06.2011, 17:52 | 12 |
А не проще ли сделать аналоговым методом (несколькими полосовыми фильтрами)?
0
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
|
|
02.06.2011, 20:03 | 13 |
я и говорил про полосовые фильтры! только цифровые. там не нужно накапливать и потом считать, нужно помнить НЕСКОЛЬКО предыдущих отсчетов. а с выхода фильтра считать амплитуду как обычно, раз за нужное время (20-100мс).
0
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 321
|
|
03.06.2011, 02:40 | 14 |
Сообщение от btymdmom
Сообщение от _kuordyomomkit
0
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 321
|
|
03.06.2011, 02:43 | 15 |
Сообщение от OTPINE
Сообщение от Ymk
0
|
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
|
|
03.06.2011, 04:11 | 16 |
0
|
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
|
|
03.06.2011, 04:20 | 17 |
0
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 321
|
|
03.06.2011, 04:33 | 18 |
1. И все таки какой алгоритм БПФ???
2. Как сделать дискретые фильтры(алгоритм) ??? 3. В варианте с несколькими дискретными полоскаими, может получится так, что музыка будет играть на определенной частоте (какой-либо инструмент), а отклика не будет !
0
|
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
|
|
03.06.2011, 04:37 | 19 |
Сообщение от proffissor
Сообщение от proffissor
Сообщение от proffissor
Во-вторых, фильтры тоже не идеальные, и подавление у них не стопроцентное. Так что этого можешь не бояться ))
0
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 321
|
|
03.06.2011, 04:51 | 20 |
Сообщение от Stiit.mi
Сообщение от proffissor
Сообщение от proffissor
Во-вторых, фильтры тоже не идеальные, и подавление у них не стопроцентное. Так что этого можешь не бояться )) С фильтрами разобрался, с БПФ - нет. Кучу формул, а толку 0 ! Да и пример на С# не очень разговорчив... =(
0
|
03.06.2011, 04:51 | |
03.06.2011, 04:51 | |
Помогаю со студенческими работами здесь
20
EV8031/AVR + atmega8515 + FFT + LED5x5x5 Cube! Придумать как посчитать FFT([a1, a2, . . . , an]) за время O(n), при известном FFT([a0, a1, . . . , an−1]) Как разбить одно БПФ на несколько БПФ? БПФ, поиск максимума спектральной плотности, поиск экстремума (максимума) в отсчетах БПФ Работа с USB в микроконтроллерах Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |