June 12th, 2020

DC removal



Предыдущий раз речь шла про оцифровку звукового сигнала в измерителе уровня. Оцифровка работает, массивы успешно заполняются. Реализовать это на STM32 стоило немалых трудов. Справедливости ради надо сказать, что STM32 сложен лишь в части программирования периферии. Когда это сделано, начинается обычное программирование, как и любого другого контроллера. Тут даже легче, потому что его высокая скорость и разрядность позволяют более вольно обходиться с алгоритмами.

Измерители уровня аудиосигнала часто строят примитивным способом, когда контроллер оцифровывает готовое постоянное напряжение. Входной сигнал в таком случае выпрямляется аппаратным детектором. Такой способ очень прост в реализации, но имеет ряд существенных недостатков. Поскольку детектор аппаратный, невозможно менять его тип и характеристики. Детектор только один, не получится сделать комбинированный измеритель (например, средний + пиковый уровень). Для детектирования малых сигналов диодный детектор не подходит по причине плохой линейности, приходится делать активный детектор на ОУ. При этом напряжение смещения ОУ ограничивает динамический диапазон детектора, и ничего с этим не поделать. При цифровой реализации процесс детектирования не вносит ошибки по постоянному напряжению. Поэтому достаточно удалить постоянную составляющую переменного входного сигнала. Чем и предстоит сейчас заняться.

Collapse )