Распознание нот AtMega8

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
isx
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Сообщение isx »

Добрый вечер)) Не спрашивайте зачем (дабы делаю из чистого любопытства :) ), но хетелось бы узнать, возможно ли реализовать на базе Атмеги распознаватель нот из окружающей среды?
Идея в том, чтобы при появлении звука устройство выдавало на дисплей ноту, которая соответствует данному звуку в данный момент. Поскольку каждая нота является по сути определённой частотой звуковых колебаний, задача сводится к распознаванию частоты, поступающего с микрофона сигнала.
Хотелось бы узнать, возможна ли реализация данной идеи вообще, и если возможна, то как именно?
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3793
Зарегистрирован: Ср дек 24, 2008 09:58:58

Сообщение Ser60 »

Смотря какие звуки.. Если, например, меандр или синус, то будет просто частотомер, каких полно. Беда только, что таких звуков практически не бывает. Проблема в том, что у каждого инструмента свой тембр звучания с многочисленнми гармониками. Например, у гитары амплитуда второй гармоники почти в 2 раза превышает амплитуду первой. Сделать настройщик даже для гитары - нетривиальная задача, где по-серьезному без DSP не обойтись. Меги для этого подходят крайне плохо. Имеются, конечно, проекты настройщиков и на Мегах, но это баловство. Впрочем, можете погуглить проекты настройщиков для понимания проблемы. При распознавании звуков, особенно без ограничения на инструмент, возникнут те-же проблемы, что и в настройщиках.
Реклама
isx
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Сообщение isx »

Распознавать нужно будет звук пианино.
Вот к примеру на картинке изображено соответствие нот и частот.
Изображение

здесь с учётом октавы http://www.myguitar1.narod.ru/index/les ... bl_not.htm

Если сделать частотомер и определёные интервалы присвоить определённым нотам, то как поведёт себя аппарат?
Друг Кота
Аватара пользователя
Сообщения: 3793
Зарегистрирован: Ср дек 24, 2008 09:58:58

Сообщение Ser60 »

Проблема не в частотомере, а в определении периода колебаний сложной формы с богатым спектром гармоник. Может это и проще для спектра пианино, но я сомневаюсь. Надо исследовать. Для начала посмотрите сигнал с микрофона на осциллографе при нажатии клавиш. У меня дома нет пианино.
Реклама
Эиком - электронные компоненты и радиодетали
isx
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Сообщение isx »

А у меня нет осциллографа :) .
Может вы сможете скачать эмулятор пианино и посмотреть сигнал, ато мне вообще никак :(
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3793
Зарегистрирован: Ср дек 24, 2008 09:58:58

Сообщение Ser60 »

Извините, я занят по горло другими проектами. Посмотрите для начала этот проект и особенно линки на аналогичные в конце.
Реклама
Мудрый кот
Аватара пользователя
Сообщения: 1802
Зарегистрирован: Ср сен 07, 2011 21:40:30

Сообщение Flasher »

эмулятор и живой инструмент- разные для исследования вещи. Запиши сигнал с микрофона в WaveLab или Sound Forge
Вымогатель припоя
Аватара пользователя
Сообщения: 544
Зарегистрирован: Пт июн 04, 2010 17:40:13
Откуда: Непокорный город-герой Севастополь

Сообщение zhu4er »

Котофеи! Пианино звучит, только за счёт механической вибрации струн. А если, допустим, в районе струн установить звукосниматель для гитары. Мне кажется замеры будут точнее чем с микрофона. Далее снятый звук разложить побыринькому с помощью господина Фурье, ну и выделить нужную частоту. Как идейка? Спектроанализатор нужно человеку сделать с точными частотами.
Даже у стен есть уши...
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

Далее снятый звук разложить побыринькому с помощью господина Фурье,
Тут лучше покатит алгоритм Герцеля, т.к. надо распознавать частоты из конечного набора. Сразу отпадает проблема формы, ибо основную гармонику нота уж точно будет содержать. По сути то же ДПФ, только в виде фильтра. И гораздо менее ресурсоемко.

1. Заполняем буфер отсчетами.
2. Прогоняем алгоритм Герцеля для интересующих нот.
3. Решаем, какие пристутствуют в сигнале, и гордо показываем результат.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
isx
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Сообщение isx »

Мдя... я конечно постораюсь понять принцип работы и использования алгоритма, но сомневаюсь что выйдет, пока для меня это другая планета :)
Пойду, окунусь в мир неизвестного :))
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

принцип работы и использования алгоритма
Сам алгоритм детально описан (я бы даже сказал, разжеван) по ссылке, что я дал выше. Сам ей пользовался.

Вкратце:

1. Считаем несколько волшебных коэффициентов.
2. N раз вычисляем несколько уравнений.
3. По простой формуле получаем амплитуду интересующей гармоники в попугаях. Чем больше попугаев, тем выраженнее интересующая гармоника в сигнале.

Единственное, для AVR желательно реализовать этот алгоритм для чисел с фиксированной точкой, ибо с float без FPU будет зело медленно. Т.е., тупо умножаем коэффициенты на, скажем, 10.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
isx
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Сообщение isx »

Похоже для моего полугуманитарного мозга это слишком сложная задача :(
Придётся заморозить проект....
Вымогатель припоя
Сообщения: 513
Зарегистрирован: Сб фев 19, 2011 18:04:08
Откуда: Татарстан, пос. Актюбинский

Сообщение phanis »

Если не много переделать http://elm-chan.org/works/akilcd/report_e.html то я думаю должно получится.
Контактная информация:
Держит паяльник хвостом
Аватара пользователя
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Сообщение ILYAUL »

Из Вашего пояснения не понятно в один момент времени , сколько нот будет звучать?
isx
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Сообщение isx »

в один момент одна нота.
Держит паяльник хвостом
Аватара пользователя
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Сообщение ILYAUL »

Частотомер + таблица нот. Коротко и быстро
isx
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Сообщение isx »

Я вот тоже такого мнения... Только никак не въеду в работу частотометра на атмеге. Там получается поступает сигнал на ногу, по таймеру считает (к примеру каждую секунду) количество импульсов и вычисляет частоту. Я в правильном направлении мыслю? :solder:
Держит паяльник хвостом
Аватара пользователя
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Сообщение ILYAUL »

В абсолютно правильном.
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

Лучше измерять период.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
isx
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Сообщение isx »

Кстати верно говорите... :) Подсчитать несколько периодов и вычислить амплитуду сигнала, дабы не принимать помехи за сигналы...
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»