Все сигналы, независимо от того, вы их придумали или наблюдали во Вселенной, на самом деле просто сумма простых синусоид различных частот.
Я сделал небольшой аудио анализатор спектра (0 - 10 кГц) из ЖК-дисплея 16x2 и микроконтроллера ATmega32. Я начал с простых ДПФ (Дискретное Преобразование Фурье). БПФ (Быстрое Преобразование Фурье) отличается от ДПФ только большей скоростью и немного более сложным алгоритмом, я не стал его использовать, возможно я добавлю его позже.
ДПФ медленный по сравнению с БПФ. Мой ЖК анализатор спектра не требует большой скорости, которую может обеспечить БПФ, и если изображение на экране будет меняться с частотой около 30 кадров / сек, то это более чем достаточно для визуализации звукового спектра. Но я итак могу достичь частоты около 100 кадров / сек, однако для ЖК-дисплея не рекомендуется слишком высокая частота обновления. Звук с частотой дискретизации 20 кГц даёт 32 точки ДПФ. Поскольку результат преобразования симметричен, мне нужно использовать только первые 16 результатов. Соответственно максимальная частота 10 кГц. Таким образом, 10кГц/16 = 625Гц.
Я пытался увеличить скорость вычисления ДПФ. Если есть точка N ДПФ, то необходимо найти синус и косинус (N ^ 2) / 2. Для 32-точечного ДПФ, необходимо найти синус и косинус 512. Прежде чем искать синус и косинус, нам нужно найти угол (градусы), который занимает некоторое время процессора. Для этого я сделал таблицы для синуса и косинуса. Я сделал синус и косинус 16-битными переменными, умножив значения синуса и косинуса на 10000. После преобразования я должен разделить каждый результат на 10000. Теперь я могу рассчитать 120 32-точечных ДПФ в секунду, что более чем достаточно для анализатора спектра.
Дисплей
Я использовал пользовательские символы для ЖК-дисплея загруженные в 64 Байт встроенной памяти ЖК-дисплея. В интернете я увидел видео, где ЖК-дисплей 16х2 используется в качестве дисплея анализатора спектра и использовал эту идею.
Аудио вход
Одной из наиболее важных частей анализатора спектра является получение сигнала с электретного микрофона. Особое внимание должно быть уделено разработке предварительного усилителя для микрофона. Нам нужно установить нулевой уровень на входе АЦП и максимальный уровень равный половине напряжения питания, т.е. 2,5В. На него может подаваться напряжение от -2,5В до +2,5В. Предусилитель должен быть настроен так, чтобы не превышать этих границ. Я использовал операционный усилитель LM324 в качестве предварительного усилителя для микрофона.
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот | |
---|---|---|---|---|---|---|---|
Дисплей | |||||||
МК AVR 8-бит | ATmega32 | 1 | Поиск в магазине Отрон | ||||
Конденсатор | 22 пФ | 2 | Поиск в магазине Отрон | ||||
Конденсатор | 0.1 мкФ | 1 | Поиск в магазине Отрон | ||||
Электролитический конденсатор | 100 мкФ | 1 | Поиск в магазине Отрон | ||||
Резистор | 100 Ом | 1 | Поиск в магазине Отрон | ||||
Подстроечный резистор | 4.7 кОм | 1 | Поиск в магазине Отрон | ||||
Кварцевый резонатор | 16 МГц | 1 | Поиск в магазине Отрон | ||||
LCD-дисплей | 16х2 | 1 | Поиск в магазине Отрон | ||||
Блок питания | 5 В | 1 | Поиск в магазине Отрон | ||||
Аудио вход | |||||||
U1 | Операционный усилитель | LM324 | 1 | Поиск в магазине Отрон | |||
С1 | Конденсатор | 1 мкФ | 1 | Поиск в магазине Отрон | |||
С8 | Конденсатор | 0.01 мкФ | 1 | Поиск в магазине Отрон | |||
R1 | Резистор | 220 кОм | 1 | Поиск в магазине Отрон | |||
R2, R3 | Резистор | 10 кОм | 2 | Поиск в магазине Отрон | |||
R4, R9 | Резистор | 1 кОм | 2 | Поиск в магазине Отрон | |||
R5 | Резистор | 1.5 кОм | 1 | Поиск в магазине Отрон | |||
MIC | Микрофон | 1 | Поиск в магазине Отрон | ||||
Скачать список элементов (PDF)
Прикрепленные файлы:
- atmega32_spectr.rar (3 Кб)
Комментарии (3) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация