реклама на сайте
подробности

 
 
> FFT + ATmega8, Быстрое преобразование Фурье
Wart
сообщение Sep 25 2012, 18:03
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 25-09-12
Пользователь №: 73 685



Всем добрый вечер.
Возникла у меня проблема. Пытаюсь сделать анализатор спектра на atmega8, используя библиотеку avrfft, написанную специально для MegaAVRs. За основу брал код со страницы http://www.jnutthailand.com/FFT.html, но ничем не могу открыть схему, приведенную там. Как нужно фильтровать звуковой сигнал? Сейчас на вход АЦП подаю звуковой сигнал амплитуды 2.5V, сдвинутый на 2.5V вверх (0V-5V). Но получаются редкие бары-банды (не знаю как правильно назвать эти столбики), а в целом скачат одновременно все 24 полоски. Есть проект в Протеусе + код под WinAvr (в приложении). Там нужно подать любую wav мелодию на вход АЦП (осторожно, генерация очень тормозит). Очень рассчитываю на вашу помощь.

Прикрепленный файл  fft.rar ( 77.49 килобайт ) Кол-во скачиваний: 259


И кстати как избежать проседания напряжения во время просчета fft в функции? В реальности диоды слегка мигают. Без этой функции свечение диодов стабильно. Нижняя полоска светится всегда.
Спасибо.

Сообщение отредактировал Wart - Sep 25 2012, 18:04
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 8)
_Артём_
сообщение Sep 25 2012, 19:30
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(Wart @ Sep 25 2012, 21:03) *
И кстати как избежать проседания напряжения во время просчета fft в функции? В реальности диоды слегка мигают.

Вы хотите сказать что ядро так напрягается, что питание аж просаживается? Тогда схема питания кривая.

Или задержка на вычисления слишком большая?
Go to the top of the page
 
+Quote Post
Wart
сообщение Sep 25 2012, 21:34
Сообщение #3





Группа: Новичок
Сообщений: 4
Регистрация: 25-09-12
Пользователь №: 73 685



Цитата(_Артём_ @ Sep 25 2012, 23:30) *
Вы хотите сказать что ядро так напрягается, что питание аж просаживается? Тогда схема питания кривая.

Или задержка на вычисления слишком большая?

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

Сообщение отредактировал Wart - Sep 25 2012, 21:35
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Sep 25 2012, 23:43
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(Wart @ Sep 26 2012, 00:34) *
Теперь буду думать как этого избежать.

А чего там думать-то...
Если хотите вычислять в прерывании - разрешайте вложенные прерывания.
Если не хотите вложенных прерываний - ставьте в прерывании флаг, что прерывание было и в основной программе считайте (если флаг установлен).
Go to the top of the page
 
+Quote Post
V_G
сообщение Sep 26 2012, 02:28
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Вы хотите сказать, что мега справляется с FFT реального звукового сигнала в реальном времени?
1. Если у вас 24 полоски (т.е. точки FFT), то на таком количестве дискрет FFT неэффективен.
2. Какова частота дискретизации? Не забывайте про теорему Котельникова, и давите аналоговым ФНЧ перед АЦП все, что выше половины частоты дискретизации
Go to the top of the page
 
+Quote Post
ARV
сообщение Sep 26 2012, 04:51
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



1. по ссылкам топикстартера используется Ченовская библиотека FFT - по-моему единственный действительно быстро работающий вариант FFT для AVR
2. AVR действительно справляется с FFT реального звукового сигнала в реальном времени благодаря этой библиотеке
3. я чуток модифицировал эту библиотеку в своих проектах и достигал вот этого http://www.youtube.com/watch?v=WefMRAn6UZM&feature=g-upl и вот этого http://www.youtube.com/watch?v=ol-tNkIDzks&feature=g-upl не говоря уже об этом http://www.youtube.com/watch?v=VhUWL7wSMQA&feature=g-upl


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
Wart
сообщение Sep 26 2012, 05:07
Сообщение #7





Группа: Новичок
Сообщений: 4
Регистрация: 25-09-12
Пользователь №: 73 685



ARV, нашел где почитать, буду разбираться.
_Артём_, спасибо sm.gif

Сообщение отредактировал Wart - Sep 26 2012, 05:08
Go to the top of the page
 
+Quote Post
Wart
сообщение Sep 26 2012, 06:23
Сообщение #8





Группа: Новичок
Сообщений: 4
Регистрация: 25-09-12
Пользователь №: 73 685



ARV, хотелось бы подробней, схемы хотяб. Какой сигнал подавать на АЦП? Через что пропускать?
Go to the top of the page
 
+Quote Post
ARV
сообщение Sep 26 2012, 11:10
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



я в своих тестовых проектах, видео которых приводил ранее, подавал на вход АЦП сигнал без всяких усилителей и фильтров: делителем смещал уровень на входе на 1,25В и через конденсатор подавал сигнал. для "настоящих" проектов, естественно, необходим на входе фильтр, желательно активный, желательно высоких порядков, с полосой пропускания не шире анализируемой полосы сигнала, и при этом частота среза должна быть не менее чем в 2 раза ниже, чем частота дискредитации АЦП. для "цветного" спектроанализатора 10х16 я использовал двухэтапное FFT, т.к. иначе получить логарифмическую сетку частот не выйдет - не хватит у AVR силенок, а для этого случая потребуется 2 фильтра с разной частотой среза.

схема простейшего анализатора 8х8 есть на моем сайте (см. профиль).


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 11:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.01409 секунд с 7
ELECTRONIX ©2004-2016