Когда я учился в 10 классе, я усиливал аудио сигнал схемой на нескольких транзисторах bc547 — bc557. С помощью этой схемы я мог усиливать аудио сигнал, но не мог создать эффект эхо как в громкоговорителях. Я просто не мог себе представить, как реализовать такой эффект. Тогда это было за пределами моих знаний.
Сейчас я могу сделать это, просто произведя цифровую обработку сигнала с помощью микроконтроллера. Принцип работы очень прост – в кольцевом буфере применяется обратная связь с запаздыванием. Сделано это с помощью микроконтроллера ATmega32. Это простой, но очень интересный проект. По этому принципу мы можем сделать не лишь эхо, но и много других небольших DSP эффектов, если у микроконтроллера будет больше ОЗУ.
Принцип действия
В проекте я использовал микроконтроллер Atmega32. Он имеет 2КБ ОЗУ и АЦП, чего достаточно для реализации данного эффекта эхо. Для захвата голоса используется электретный микрофон. Сигнал с него подается на АЦП с соответствующим усилением и смещением уровня, что важно для качественной работы. АЦП преобразует аналоговый сигнал в цифровой, с определенной настраиваемой частотой дискретизации. Используется кольцевой буфер на 1900 байт. Нам необходимо сделать задержку при входе и выходе звука. Таким образом, для получения задержки мы можем заполнить буфер в одной точке, а прочитать в другой. Как сделать эту задержку максимальной? Это хорошо объясняется диаграммой.
uint8_t buf[1900];
Теперь необходимо сделать эффект эхо. Для этого нам необходимо обеспечить обратную связь от точки чтения, к точке записи. Говоря простыми словами, мы должны добавить уменьшенную модель считываемого сигнала вместе с образцом записи. Коэффициент обратной связи всегда должен быть <1. Таким образом, цифровой сигнал в буфере обрабатывается путем добавления эффекта эха. Считаные данные выходят из микроконтроллера в виде ШИМ сигнала, который может быть демодулирован с помощью простого RC фильтра, и усилен при помощи УНЧ.
В программе я добавил 5 уровней эхо – от эхо 0 до эхо 4.
Наблюдения
Если увеличить частоту дискретизации, то время от основного звука до эхо и длительность эхо будет меньше, но качество звука увеличится.
Если уменьшить частоту дискретизации, то время от основного звука до эхо и длительность эхо увеличится.
Если увеличить коэффициент усиления обратной связи, объем эхо и количество его повторения увеличится.
Если увеличить коэффициент усиления обратной связи выше 1, то звук испортится за счет колебаний.
Чтобы получить очень хорошее качество звука с хорошим эффектом эха, должно быть много ОЗУ и частота дискретизации должна быть высокой. Для этой цели лучше подойдет ATmega2560 с 8КБ ОЗУ.
Принципиальная схема устройства:
Схема микрофонного усилителя:
Схема фильтра:
Также необходим любой усилитель звука НЧ. Схему, подходящую к вашим колонкам можно легко найти в интернете, и я не стал давать её тут.
Исходник и прошивка прилагаются
Прикрепленные файлы:
- echo.rar (1 Кб)