спектроанализатор с выводом в программу на ПК
- Войдите на сайт для отправки комментариев
Пт, 17/06/2011 - 17:21
после изучения курса "Цифровая обработка сигналов" появилась идея замутить семе спектроанализатор. Может быть кто-то уже делал или поможет советом? как строятся спектры, я думаю, знают все, меня же интересует аппаратная часть (прием сигнала микроконтроллером) ну и программная соответственно (как и на чем писать для ПК модуль ну и соответственно скетч для дуины)
Мне это тоже интересно)
Много чего зубрил и изучал, но толком ничего пока не понял с этими алгоритмами фурье;)
Есть непростой код программы анализатора, 8ми битный алгоритм преобразования Фурье. от 20 до 500Гц на аналоговый вход ардуино. Есть вариант обрабатывать всё на компе и через юсб на ардуину данные отправлять для вывода но что-то.
Я себе выбрал самый простой вариант на одной микросхеме))) 7мь полос фиксированных, полностью цифровая обработка и управление и проста как полено) MSGEQ7 называется, проблема только в том что я её смог купить только через ебай. Цена в принципе нормальная 10$ за 2 с доставкой))) Уже имею две но пока не дошли до неё руки
Кстате на той микросхемке можно построить и без ардуино 7ми полсный спектроанализатор. Понадобятся еще 7 микросхем led dotbar driver.
спасибо, что откликнулись)
мой мозг пока вынашивает проект такого характера - по аналоговому входу подавать сигнал, далее контроллером делать быстрое преобразование фурье для разложения в спектр, а потом этот массив значений спектральной плотности отправлять через какие то промежутки времени (100-500 мс) в СОМ-порт. Ну а там его перехватит прога и выведет гистограмму (ну и соответственно будет обновлть график через такие же промежутки времени). Как думаете, осуществимо?
Скорости и разрешения АЦП ардуино не хватит на спектр полный от 20 до 20кГц.
Есть готовая библиотека преобразований до 500Гц для ардуино, вытягиваний значений частот и т.д.)
Теперь еще одно сигнал музыкальный это синусоида тоесть и плюс и минус, а ардуино принимает только плюс, от 0 до 5В
вот об этом я как раз и не подумал) а если использовать диодный мост, предварительно усилим сигнал входной? тогда будем иметь, так сказать, fabs(sin(x)) - или не прокатит?
P.S. вчера для развлечения написал простенький осциллограф, правда форму сигнала можно построить в экселе)) ща разбираюст с работой C++ с СОМ-портом (хочу выводить график в прогу на компе), о результатах буду писать тут.
P.S.S. как лучше отправлять данные в ком-порт - по одному или массивом (если возможно)? с построением графика, думаю, проблем не возникнет
Тут ни чем не смогу помочь, знаний пока не хватает. Вот тут в первой теме есть проект http://arduino.ru/projects а от него по ссылкам доберешься до источников библиотеки анализатора спектра
пока сделал считывание данных по компорту в прогу (на билдере написал), как думаете, лучше будет так - записал массив считанных значений, сделел преобразование ФурьЁ, вывел. и так, например, раз в секунду. потом конечно можно скорость компорта выше выставить, но это уже другая история))
силами дуино можно только один поток сформировать тут нужно смотреть в сторону ПЛИСины http://www.seeedstudio.com/depot/gameduino-a-game-adapter-for-microcontr... в таком тандеме другое дело
ну это мне пока не по карману, пока так попробую, не получится - так не получится, мне пока интересней сопряжение девайсов низкого уровня и высокого, хотя бы просто для обмена данными))
задачку для начала вы выбрали не простую пробывать наверно всетаки луч с медленно тякущих процессов
взять например датчик тока через дуино завести данные в комп а там екселем ращитывать сколько денег в режиме он лайн потребляет прибор или даж вся квартира по электричеству
про эксель я имел в виду, что из терминала массив данных брать, а в экселе по нем просто график построить
http://www.kernelchip.ru/articles/KA011.php вот вам пригодится я на этих примерах учился http://www.pcports.ru/Articles.php