Устройство отображения аудио спектра

Устройство отображения аудио спектра

В этой статье показано оригинальное применение небольшого графического LCD-модуля. Прошлым летом, графический LCD-модуль SG12232C продавался за 1500 йен и я купил его. Но я не мог найти хорошее применение ЖК-модулю, и собирался отправить его в коробку с хламом, поэтому я пытался найти ему хоть какое-то применение.

Просто отображение любых неподвижных изображений не круто, сначала я пытался отображать форму звуковой волны в режиме реального времени как цифровой осциллограф, а затем и спектральный анализ при помощи FFT. Устройство контроля спектра, кажется сделано хорошо, с учетом реализации на дешевом микроконтроллере.

Аппаратная часть

SG12232C является полноценным графическим ЖК-модулем с  разрешением 122(H)х32(V) точек. На плате есть два LCD контроллера Epson S1D15200. S1D15200 может отображать до 61(H)х32(V) точек и каждый управляет половиной ЖК-дисплея. SG12232C требуется меандр 2 кГц в качестве тактового сигнала для ЖК-дисплея и оно должно подаваться пока питание включено, иначе  ЖК-дисплей может быть поврежден. Можно выбрать интерфейс шины на основе 8080 или 6800. 4-битного режима как у HD447880 нет, доступен только 8-битный режим  и это требует как минимум 14 линий ввода/вывода.

На изображении показана собранная плата и её схема. Использован микроконтроллер Atmel ATmega8, который  оцифровывает входящей звуковой сигнал и отображает формы волн на ЖК-модуле. Это не сложно для изготовления. Я использовал MAX293, эллиптический фильтр 8-го порядка в качестве сглаживающего фильтра. SCF очень полезен и дешев по сравнению с дискретным LPF.

Программа

Изображение ниже показывает процесс  внутреннего прохождения сигнала. Оцифрованные блоки данных преобразуется FFT  и отображаются как бары  в левой половине (64 точки) ЖК-дисплея. Форма волны отображаются в правой половине (58 точек) с циклическим сдвигом сигнала.

Операции выполняются с 16-битной фиксированной точкой. Эти 128 точечные процессы FFT, применяющие интервалы, операции бабочки и скалярный выход, могут быть выполнены в режиме реального времени (в течение 7,3 мс). Это довольно быстро, учитывая обработку дешёвым микроконтроллером. Спектр делений отображается в порядке основной частоты х0 (постоянная составляющая), основной частоты x1, x2, x3, … слева направо. Частота дискретизации составляет 9,6 кГц и основная частота (частотное разрешение) примет вид: 9.6k/128=75 Гц.

Также есть библиотеки FFT с неподвижной точкой для AVR-GCC. Они написаны на ассемблере и оптимизированы для megaAVR.

Вот некоторые формы волн, меандр, пилообразная волна и sin(х)/х. Вы можете обнаружить, что они отображаются так же, как в учебнике.

Видео работы: видео 1, видео 2, видео 3, видео 4

Прикрепленные файлы:


Категория: Цветомузыка
Метки:

Написать коментарий

*
= 5 + 7

Добавить изображение

Последние статьи