Реклама ⓘ
Главная » Звук
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Похожие статьи:


Реклама ⓘ

Компрессор аудиосигнала на SSM2167

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

Краткая теория: что такое компрессия, относительно звука? Компрессия - это сжатие звукового диапазона воспроизводимого материала, то есть уменьшение разницы между громкими и тихими звуками. Т.е. громкие становятся тише, тихие - громче. Зачем и кому это надо? Чаще всего применение компрессора оправдано когда имеются какие либо недоработки и косяки со стороны звукорежиссера, либо просто аудио материал без обработки, или сам по себе низкого качества, обычно это некоторые пиратские копии фильмов, старые аудиозаписи с изношенных кассет или пластинок, ну и более актуальный и современный пример - это, конечно, видео-блогеры. Очень часто они или забывают обработать звук в своих видео, или просто забивают/не умеют, и голос становится плохо различим на фоне шума ветра или проезжающих машин. Ну и еще один вариант применения - это при прослушивании музыки фоном на очень малой громкости (делаю так порой, когда занят какой то другой работой), в такой ситуации компрессор выступает как некая альтернатива тонокомпенсации. 

Немного предыстории: первое, что попалось по данной теме, это схема 4-х полосного АРУ от товарища stalker29218, про которую он рассказывает на своем канале на youtube, (умеющий пользоваться поиском да отыщет) схема была собрана в железе, протестирована, но большого удовольствия не доставила. Она, безусловно, рабочая, но дает небольшой уровень компрессии, как по мне, недостаточный, не исключаю, конечно, что причина может не в схеме, а в моих каких-то косяках, однако интерес к ней я потерял и принялся искать другие варианты. 

И наткнулся на описание микросхемы SSM2167, она рассчитана больше на работу с микрофонами, но по всем характеристикам подходит и для вышеуказанных целей, и поэтому было решено использовать ее. На Али продаются как микросхемы, так и уже готовые платы с обвязкой

Итак, поехали. Микросхема SSM2167 от Analog Devices, представляет из себя микрофонный предусилитель со встроенным шумоподавлением и компрессией.

Даташит SSM2167

Немного о самой микросхеме: питается напряжением от 2,5В до 5,5В, потребляя при этом не более 5 мА. Схема включения взята из даташита:

Подключение SSM2167

 Уровень шумоподавления (Gate) регулируется внешним резистором R gate:

Тоже самое и с уровнем сжатия (компрессии), резистор R comp:

Теперь конкретно о реализации: как я уже писал, схема взята из документов на микросхему, с небольшими изменениями, итак, сама схема:

Схема компрессора на SSM2167

Питается все это хозяйство от 5 В, от любого источника с выходом USB, для подключения которого на плате имеется разъем micro USB, далее идет понижающий линейный преобразователь LD1117S33CTR (или любой подобный), который выдает на выходе +3,3 в, которые уже идут на усилители. Номиналы элементов обвязки микросхем усилителей обозначены на схеме. Резисторы, отвечающие за пороговое шумоподавление (шумообрезание?)), - это R2 GATE и R29 GATE, в моем случае запаяны перемычками (0 ом), что соответствует минимальной чувствительности -40 dBV , т.к. в этой схеме источник сигнала линейный выход (ПК, смартфон, плеер и пр.) и он, как правило, имеет достаточный уровень сигнала, увеличение чувствительности приведет лишь к увеличению шумов. Еще один нюанс по поводу чувствительности: у данной микросхемы, помимо режима компрессии, есть также область жесткого ограничения сигнала (лимитер), он срабатывает когда на вход подается сигнал более 600 мВ, и срезает все, что находится выше, а это означает клиппинг и искажение сигнала, что нам совсем не нужно.

Для предотвращения таких ситуаций нужно следить, чтоб сигнал не превышал указанный уровень. За это в схеме отвечает двойной дифференциальный компаратор LM2903D. На оба его неинвертирующих входа подается опорное напряжение, которое формируется делителем, состоящим из резистора R6 и подстроечного резистора PR1. В свою очередь на инвертирующие входы подается сигнал с левого и правого каналов источника звука, если этот сигнал превышает напряжение установленное на неинвертирующем входе, то компаратор выдает на выходе низкий уровень (сажает выход на землю) и загорается светодиод, это означает что входной сигнал слишком велик, и необходимо понизить его уровень. Путем экспериментов в моем случае было установлено, оптимальное напряжение в +1,3 В (примерно 0,93В RMS для звукового сигнала соответственно).

Получается следующий порядок работы этой системы: включаем фильм, видео или еще что-то, увеличиваем громкость, пока светодиоды не начнут мигать в такт звуку, это значит, что верхний порог достигнут. Далее уменьшаем громкость источника, пока диоды не перестанут мигать совсем, это будет означать что клиппинга не будет и уровень звука на входе оптимальный. 

Далее что касается компрессии: за нее отвечают резисторы R COMP (R3 и R28 по схеме), тут, согласно таблице, я выбрал максимальную степень сжатия 1:10, что соответствует их значениям 175Ком (у меня 180K). 

За скорость срабатывания компрессора отвечают конденсаторы C6 и С9, их значение можно изменять, но более 10 мкф я бы ставить не рекомендовал. 

Еще, в отличие от оригинальной схемы, был убран резистор в 100KOM, подтягивающий выход к земле (на плате это резисторы R1 и R30, они не запаиваются), субъективно без него лучше.

Процесс изготовления

Изначально схема была вытравлена с помощью фоторезиста (ЛУТом лучше и не пытаться) и собрана для тестов, не знаю, что мне больше понравилось: травить дорожки 0,25мм или паять к ним потом микруху, но, тем не менее, удалось и все заработало)
 

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

Модуль SSM2167

Все устройство был решено собирать в корпусе  Gainta  G706 140х110х35 мм, под него и делалась плата. Можно, конечно, сделать в корпусе и меньшего размера, но мне нужно было установить 4 разъема RCA, поэтому мельчить не было смысла. Плата была разведена из расчета на промышленное изготовление, можно, конечно, и фоторезистом, но с утюгом и принтером лучше не пытаться.

Печатная плата для SSM2167Печатная плата для SSM2167

И, собственно, материализация:

Ну что сказать, китайцы как всегда молодцы, качество на высоте.

Выводы под входы/выходы сделал в виде штырьков, изначально хотел сделать всю коммутацию на разъемах, но потом от этой идеи отказался, и просто припаял к ним все что необходимо:

На фото еще присутствуют резисторы R7 и R8, они тоже не нужны, в проекте на плате их уже нет. Земля на плате выполнена в виде сплошного полигона с двух сторон платы, полигоны соединены переходными отверстиями в достаточном количестве, шума и наводок нет, все в порядке.

На передней панели устройства расположены светодиоды: индикатор включения, два индикатора перегрузки и движковый переключатель, который отключает компрессор и подключает напрямую вход к выходу (bypass), схема его коммутации такова:

На задней панели находятся разъемы RCA (Вход/выход), включатель питания и гнездо micro USB для питания устройства. Общий вид устройства в сборе:

Извиняюсь за качество съемки, как говориться, чем богаты. Расскажу немного о том, что происходит на видео: вначале видна работа индикатора перегрузки (при определенном уровне входного сигнала загорается индикатор, (на видео только один, т.к. ко второму каналу подключен выход для осциллографа) изначально щуп подключен к выходу звуковой карты, и при изменении уровня громкости соответственно меняется и уровень сигнала. Потом подключаем осциллограф на выход компрессора, и наблюдаем непосредственно его работу,  при снижении уровня сигнала на входе, на выходе сигнал остается постоянной величины. В диапазоне входящего сигнала от 220 mV до 550mV (RMS) сигнал на выходе поддерживается на уровне в 800mV (RMS).

На этом, пожалуй, все. Схема и плата проекта в открытом доступе по ссылке: EasyEDA


UPD:

По просьбам трудящихся, сделал записи различных звуков до и после обработки, все файлы (графики и примеры звука)  можно скачать по ссылке. Пару картинок для наглядности:

Общий вид файла до компрессии (сверху) и после (снизу).

А здесь непосредственно основная работа компрессора, амплитуда исходного сигнала уменьшается а обработанного поддерживается на постоянном уровне:

Еще пример, более детально, исходная амплитуда меняется, компрессор старается этого не допустить:

 

А здесь хорошо видна атака, (время на срабатывание) за которую отвечают конденсаторы C6 и С9:

 

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

Теги:

Опубликована: Изменена: 03.05.2020 0 0
Я собрал 0 3
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 4.9 Проголосовало: 3 чел.

Комментарии (22) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
+3
andro #
Лично мне нравятся звуковые эффекты в фильмах, но на самом деле это не очень радует других членов семьи и соседей, так что тема актуальная для тех, кто смотрит фильмы по ночам.
Ответить
+1
AndreyCh #
Да это отличное устройство, реклама когда врубается или фильмы русские, которые озвучивают то громко то тихо, отлично.
Ответить
0
Shida #
Накачал песен с разных сайтов перед поездкой себе на флэшку в автомагнитолу, еду, а громкость у песен разная. Одна тихо играет, а другая как заорёт! Вот всю дорогу кручу регулятор громкости. Такой компрессов как у Вас как раз к месту будет...
Ответить
+1
Zlodey #
Было бы неплохо добавить в видеообзор примеры звука, прошедшего через компрессор, и "оригинал" записи для сравнения
Ответить
0

[Автор]
AMatroskin #
Добавил
Ответить
0

[Автор]
AMatroskin #
Да, Вы уже не первый, кто про это пишет, постараюсь в ближайшее время сделать.
Ответить
0
RussKeeper #
Сомнительно, что светодиоды вообще загорятся с ограничительными резисторами в 30к и питанием в 5В
Ответить
0

[Автор]
AMatroskin #
А вы попробуйте, откроете для себя много нового, ну или хотя бы потрудитесь запустить прикрепленное видео.
Ответить
0
евгений #
А с гитарой не пробовали?
Ответить
0

[Автор]
AMatroskin #
Не, с гитарой не прокатит, там слишком специфический сигнал, там атака очень важна и возможность ее регулировать и настраивать, в общем там все по другому.
Ответить
0
SiNuS #
Очень полезный и нужный блок, рекомендую всегда использовать в связке с записью голоса через микрофон. Не знал что так просто можно собрать с такими характеристиками.
Ответить
0
Turist #
Обязательная опция при записи вокала или трансляции эфира, жаль что многие этим пренебрегают. Интересно только, почему получились слишком большие размеры?
Ответить
0

[Автор]
AMatroskin #
Я ж писал, во-первых для того чтоб на корпусе нормально поместились 4 тюльпана, и вторая причина собственно под этот корпус плата и делалась, а так конечно можно гораздо меньше сделать.
Ответить
+1
Юрий #
Проблема с компрессией выходящего с звука с аудиокарты легко решается программно! Тоже долго мучился с этим, особенно когда на ютубе один ролик тихо, другой громко, а потом реклама... Решения на форумах не нашёл и придумал сам.

Используем связку виртуальный аудиокабель + VST host + VST плагин для коррекции громкости. Применение VST плагинов позволяет включать в обработку и компрессоры и эквалайзеры и автоматическую регулировку громкости, и тд. Диапазон использования очень широкий. Это просто спасение для ушей и нервов!

Ставим программу виртуального аудиокабеля VB-CABLE https://vb-audio.com/Cable/index.htm , и в системном микшере выбираете его как устройство вывода по умолчанию, тогда звук со всех плееров, браузеров, скайпов будет отправляться на виртуальный кабель.

VST host мне понравился Pedalboard2 но можно и другие. Бесплатна, портативная версия, есть опция автозагрузки сразу с нужными настройками плагинов и опция прятать в трей http://www.niallmoody.com/apps/pedalboard2

Ключевым плагином для нас будет MAutoVolume (платный) https://www.meldaproduction.com/MAutoVolume, бесплатного варианта пока не нашёл (где взять не покупая найдёте сами). Играйтесь с его настройками и будет счастье! В отличии от компрессоров, этот плагин не столько сжимает сколько выравнивает средний уровень громкости, гдето добавляя, гдето прибавляя оставаясь в желательном диапазоне.
Есть ещё Voxengo Elephant, но он много жрёт ресурсов.

Дополнительные плагины для удобства: шумодав бесплатный "reafir standalone" в режиме subtract / эквалайзер - Voxengo Marvel GEQ (бесплатный), FabFilter Pro-Q 2 / VU Meter встроенный в Pedalboard2 - индикатор громкости, измерение громкости по разным стандартам типа LUFS это MLoudnessAnalyzer / MUtility - настройка баланса, инверсии каналов, поменять местами каналы и сведение в моно / анализатор спектра SPAN или встроенный в FabFilter Pro-Q 2/3.


В настройках аудио в Pedalboard2 выбираем для output наш встроенный кодек (скорее всего будет под названием Realtek),
input выбираем виртуальный кабель VB-audio.
В misc settings галочки на Start in tray и Display tray icon.
В plagin list сделать сканирование системы на установленные VST плагины (предварительно установить в систему те которые потребуются).
Далее двойным кликом в главном окне из раскрывшегося списка выбираем плагины и размещаем по порядку, соединяем мышкой провода с Audio input на входы плагинов.

При попытке изменить громкость горячими клавишами (удобно на ноутбуках) с выбранным по умолчанию виртуальным кабелем винда (win 7,8) будет пытаться регулировать громкость на микшере виртуального кабеля, а не аппаратного кодека, то изменять громкость горячими клавишами не получится (у VB-CABLE громкость не регулируется, чтобы звук передавался неискажённым). Поэтому для удобства можно поставить Volumouse https://www.nirsoft.net/utils/volumouse.html В ней настроить для регулировки нужное утройство и подходящий способ, например колёсиком мыши с зажатой ctrl+shift.

Расписал конечно не все мелочи, так что с программами и плагинами придётся немного разобраться самостоятельно, но оно того стоит!
Прикрепленный файл: Pedalboard2 settings.png
Ответить
0

[Автор]
AMatroskin #
Спасибо большое, за подробное описание ПО! очень интересно, я думал только на линуксе так можно маршрутизировать сигнал.
Ответить
0
SavaFilin #
А ссылки то битые на файлы с тестами.
Ответить
0

[Автор]
AMatroskin #
Пожалуйста:
Примеры и графики
Отредактирован 20.12.2020 10:51
Ответить
+1
Павел #
Спасибо Вам за подробное описание и главное - примеры аудиофайлов обработанного звука.
Ответить
+1
Vadim #
Подскажите, а можно его использовать для пьезо звукоснимателя?
Ответить
0

[Автор]
AMatroskin #
Теоретически можно, но для инструментального сигнала может потребоваться еще частотокоррекция, а так вполне должно работать.
Ответить
0

[Автор]
AMatroskin #
Ну и конденсатор, задающий время атаки, или убрать вообще или поставить минимальной ёмкости.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Осциллограф DSO138
Осциллограф DSO138
Набор 4WD Kit Bluetooth Discovery V8
вверх