DC offset
Недавно, редактируя звуки для своей новой поделки, столкнулся с такой напастью как DC offset. Штука крайне неприятная, потому как вносит искажения, которые сразу можно и не заметить: ну щелкнуло где-то и щелкнуло, а потом на сонограмме кошмар и ужас, да и динамическая обработка дурить начинает.
Напомню, если кто не знает, что DC offset (Direct current offset) — это отклонение всего сигнала от нулевой зоны. На слух определяется как щелчок в начале и конце семпла. В моем случае визуально это выглядело следующим образом:
DC offset
Казалось бы ситуация вполне себе обычная. Но мне с ходу вспомнился только один способ борьбы с этой химерой — галочка Remove DC Offset в семплере FL Studio.
Устранение DC offset в FL Studio
Конечно, не очень удобно загонять семпл в ФЛ, а потом рендерить. Тем более, что, как оказалось позже, работает этот способ не во всех случаях: иногда отклонение остается. Небольшое, но заметное. К тому же сама перегонка семпла через ФЛ чревата искажениями.
Тогда я обратился к Wavosaur. В нем есть готовый эффект DC remover (Process/DC remover). Но в моем случае и он оказался бессилен, т.к. лишь уменьшил смещение. Поэтому дальнейшие поиски были продолжены в любимом Adobe Audition 1.5, справка по которому сказала, что DC offset убирается с помощью эффекта Amplify/Fade с пресетом Center Wave:
Adobe Audition Amplify/Fade
Замечательно. Пробуем и смотрим:
Результат работы Amplify/Fade
Работает. Уводит в ноль. Но ведь и сигнал искажает. А это нам не совсем нужно, т.е. совсем не нужно. Что же делать?
Немного пораскинув мозгами, я пришел к выводу, что этот DC offset очень напоминает сигнал с низкой частотой. А чем режут частоты? Правильно, фильтрами!
Не покидая Audition, берем первый попавшийся фильтр (я предпочитаю FFT Filter) и вырезаем низкие частоты:
Adobe Audition FFT Filter
Вырезал я все до 60 Гц полностью и частично диапазон от 60 до 100 Гц. В моем случае это не критично, так как сам семпл имеет довольно узкий спектр. Смотрим результат:
Результат работы FFT Filter
Voila! Получилось!
Я понимаю, что у меня случай получился слегка нетипичный (40% отклонения это очень много), но самый что ни наесть практический. Однако один вопрос у меня, все же, остался открытым: может кто из читателей подскажет как исправлять DC offset без вырезания нижних частот? Ведь возможны случаи, когда низ нужно сохранить.




В Sound Forge алгоритм DC Offset ровно выправляет отклонение.
Даже такой как у меня? Сорокапроцентный?
Бывало и хуже:)
Если интересно сравнить, кинь на wavecraft@gmail.com этот сэмпл, прогоню его через DC Offset в SF и посмотрим как алгоритм сработает.
Отправил. Жду
Знал об этом всю жизнь ибо сразу же догадался что к чему
Владимир, но ведь не все же столь проницательны.
в Аудасити должно это якобы выравниваться применением эффекта Normalise (там есть отдельно кликабельный пункт «удалить отклонение центра сигнала от нуля», т.е. привязать центр к нулю). насколько помогает, не знаю, к сожалению. пока не приходилось пробовать.:)
Ну, вообще-то, нормализацией называют изменение амплитуды сигнала, а тут у нас изменение постоянного тока (честно говоря, я не знаю как корректно перевести на русский Direct Current в контексте работы с аудио)
про изменение амплитуды сигнала – это правильно. я это и не имел в виду. просто они автоматическую возможность remove any DC offset в эффект «Normalise» запихали.
тут есть небольшое видео:
http://www.sonovert.com/audio-conversion/73-removing-dc-offset-in-audacity-video-tutorial.html
извините, что я так по-русски коряво объясняюсь:)
Да нормально вы по-русски объясняетесь
Спасибо за видео. И как это я в Аудасити сам не полез? Надо будет проверить его на своем семпле.
DC offset обычно лежит значительно ниже герца, останутся кое-какие неровности по краям «квадрата», но обычно можно срезать ниже всего полезного звука. Щелчки убираются любым ремувером (я для этого тот же аудишен использую).
Ну, получается, что все так и сделал. Странно, что стандартные DC remover’ы не работают по этому алгоритму.
ну дык! Вроде и ежу понятно что это самое смещение можно считать модуляцией волной бесконечно низкой частоты. Ежели оную выпилить, то…. понятно в общем
Именно так. Просто сбивает с толку тот факт, что «стандартные» средства борьбы со смещением пытаются манипулировать амплитудной, а не частотной областью сигнала.
Во фрутике есть замут – Center вроде называется, так вот он для этих целей как б)
ну вот же:

Ну это само собой)) Но есть еще в виде эффекта (входит в состав стандартных), вешается в шину – более универсальная вещь.
кхм… Повар, а ты уверен, что автору это нужно? Что-то мне подсказывает, что он бы и тебя мог многому поучить.
(Простите, не сдержался)
Aksimet пропустил спаммера
Уже исправил. Спасибо за поддержку!
Женя, DC-оффсет убирается любым подручным ФВЧ. А всё потому что постоянное смещение – это самая низкая из возможных частота (с бесконечным периодом). Поэтому любой ФВЧ её срежет. Хотя, конечно, детектировать смещение и просто скомпенсировать его гораздо правильнее, ибо тогда никакие другие частоты больше не пострадают (в отличие от даже самого крутого фильтра).
Может тогда ФНЧ, а не ФВЧ?
тьфу.. ну да. HP я имел в виду
А, ну другой компот
На самом деле DC-remover это и есть ФВЧ, только с очень низкой (единицы или доли герца) частотой среза. Отсюда и видимые артефакты в виде «плавающей» линии – они заметны глазом, но акустическая энергия их ничтожна. То же самое мы увидим и после FFT Filter, только при намного большем приближении. Несмотря на субъективное впечатление от картинки, искажения, вносимые FFT Filter, формально больше, чем после Remove DC offset.
Спорить не буду, т.к. не знаю где какие алгоритмы применяются. Но ведь вполне реально устранить DC-offset и без фильтра. Я вот, кстати, до сих пор не встречал ни одного ремувера с возможностью вручную указать смещение. Ведь тогда можно было бы не полагаться на интеллект эффекта, а подобрать параметры «на глаз». И запрограммировать это — пара пустяков.
С искажениями, вносимыми FFT-фильтром, согласен категорически.
Я обычно использую для этих целей Waves Q1 в режиме Hi-Pass c частотой среза в 30Гц. Убирает офсет начисто (до нуля), гораздо лучше, чем специализированные функции в редакторах.
А сигнал не сильно страдает?
Да как-то не замечал какой-либо деградации сигнала.