Перейти к содержимому


 

 

Информация Посмотреть топик с обсуждением

  • Добавлен: 10 Feb 2016 14:10
  • Просмотров: 1881
 


* * * * *
0 Рейтинг

Методика по компенсации комнатных резонансов

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

Написано onto_log on 10 Feb 2016 14:10
Часть 1. Акустическая подготовка места прослушивания.

Много лет я был противником любой электрической корректировки аудиосигнала - только расположение, акустические развязки, провода и проч. В этот раз тоже пошел таким же путем. Для начала электрически вычистил тракт - от источника до акустики. Можно еще разобрать сами АС и поменять внутри нее проводку, но она и так довольно компактная и качественная, может замена что-то даст в +, но несущественно.

Первое, что я сделал - поменял стол, на котором стоит монитор и акустика. Критично была толщина и жесткость столешницы, металлический каркас для ножек стола. Когда собирал стол, сделал акустическую развязку между его ногами и столешницей (резиновые прокладки проложил в месте контакта). Установил стол, все собрал, включил. С одной стороны стало лучше, но добавилась резонансы самой столешницы (длина 180 см). Подумав, купил отдельно еще одну ногу стола и в распорку поставил ее под стол посередине - резко снизилась вибрация от самой столешницы. Но все равно гудит, уменьшение уровня баса на самой акустике помогает, но частично.

Второе, что я сделал, озадачился как можно погасить главную резонансную моду - стол стоит в нише шириной 2 м, между его ножками и стенкой есть зазор в 10 см с каждой стороны. Помещение жилое (спальня вообще-то), кардинальный ремонт с потолком/стенами сделать нельзя. В результате нашел вот такой звукопоглощающий материал  http://www.maxforte....e-ekoplita.html у которого лучшее в своем классе поглощение в НЧ-диапазоне, купил упаковку и сделал из нее 2 мата: два листа 60x100 см запихиваются в мусорный мешок на 240 л. и полученные маты помещаются между стенками ножек стола и стеной. Это дало свой + в виде снижения подгуживания на 165 Гц, но совсем не убрало.

Третье: я решил дополнительно сделать акустическую развязку самих АС от поверхности стола. Перепробовал множество разных вибропрокладок, но они только ухудшали звук. В результате купил в строительном магазине готовые дощечки размером с основание АС, нашел 2 комплектов конусов Dali (30 мм высотой), приклеил конусы к дощечке, поставил доску с конусами на подпятники, а уже на доску ставил сами АС. Это лучший вид акустической развязки, который я смог придумать и относительно бюджетный (конусы дорогие), около 4 тыс руб вышло. Такая развязка сильнее всего повлияла на звук - столешница теперь практически не вибрирует даже на высоких уровнях. Но комната все равно гудит на повышенной громкости, местоположение акустики никак не влияет на гудеж, перестановки мебели тоже.
Значит надо переходить ко второй части подстройки, чисто акустически я резонансы убрать больше не могу.

Часть вторая. Измерения АЧХ АС+комната

Резонансы надо убирать программно, на уровне DSP. Но сделать надо и точно, и аккуратно, не убрав ничего лишнего и не добавляя искажений. Поискал существующие плагины эквалайзера для foobar2000 - их всего 2 штуки (штатный и еще один с большим количеством полос). Беда такой обработки звука - они однозначно портят фазочастотную характеристику, добавляя искажений от своей работы, по этой причине я давно отказался от каких-либо регуляторов тембра. Но деваться некуда, решил исследовать вопрос подробнее. Выяснилось, что если стоит задача корректно убрать комнатные резонансы не портя ФЧХ, то нужен линейно-фазовый параметрический эквалайзер. По причине сложности в реализации такого алгоритма в виде цифровых плагинов таких эквалайзеров тоже не сильно много - всего несколько от разных производителей софта и все они сделаны в виде VST-плагинов. Foobar2000 можно заставить работать с VST плагинами (http://www.hydrogena...showtopic=84947 или http://www.hydrogena...showtopic=59206), первый вариант мне нравится больше. Наткнулся вот на эту ветку: http://foobar2000.ru...opic.php?t=2152, где человек озадачился похожим вопросом, но с другим сетапом. Я перепробовал несколько vst эквалайзеров и самым удобным и лучшим для настройки все же стал MAutoEqualizerLinearPhase.dll от MeldaProduction. Одну из последних версий нашел на всемизвестныйторренттрекер.org. Electri-Q хорош, но у меня постоянно глючил, вешая намертво foobar. Поначалу я затупил, пытаясь подсунуть foobar 64-битные плагины, с которыми он категорически отказывался работать - сам foobar 32 битное приложение.
Делал почти все, как описано в статье, но с существенными изменениями. Первым пунктом стал выбор микрофона.  Есть специальные измерительные микрофоны вроде http://www.behringer...ts/ECM8000.aspx которые требуют отдельного питания и стоят половину M-DAC. По сути нужен микрофон с линейной характеристикой где-то от 50 до 1000 Гц, остальной диапазон менее важен. Я уже отчаялся найти что-то вменяемое, как наткнулся на вот этот необычный usb микрофон: http://www.samsontec...rophones/gomic/ У него есть два режима: всенаправленный и кардиоидный. Во всенаправленном режиме у него характеристика строго линейна от 30 до 5000 Гц, потом идет подъем. В кардиоидном режиме он линеен от 500 до 10000 Гц, что более чем достаточно для почти любых настроек. И стоит в пределах 2 тыс. руб., что вполне терпимо и опять же можно использовать с любым компьютером с USB для других целей.
Приобрел микрофон, настроил плугин, стал вопрос в источнике эталонного сигнала. Поэксперементировав, убедился в том, что белый шум плохо годится для отстройки, а вот розовый шум подходит лучше всего, причем лучше нормировать его на 100% или сразу таким создавать. Я создавал отдельно розовый шум для левого и правого каналов, записывал потом как стерео дорожку (4 мин длиной). Попытка создать сразу розовый шум в стерео давала какие-то странные осцилляции на графике АЧХ. По шагам:
1. Создать розовый шум (двойное моно), записать в виде wav или flac. Разрядность я брал 16/44. Использовал Audacity.
2. Запускаем проигрывание розового шума в foobar с громкостью, превышающей обычную - чтобы гарантированно возбудить резонансы.
3. Располагаем микрофон в точке прослушивания
4. Одновременно с проигрыванием шума запускаем его запись - я записывал в том же Audacity с микрофона, разрешение  те же 16/44. Чувствительность микрофона выставлял так, чтобы в пиках было примерно -3 Дб.
5. Записываем весь трек, обрезаем хвосты (включение, выключение и проч посторонние звуки).
6. Нормализуем запись на те же 100%, чтобы в пиках по амплитуде было как и на источнике.
7. Подключаем в foobar в разделе DSP MAutoEqualizerLinearPhase.dll и вызываем его настройки.
8. В настройках плагина желательно поставить ultra resolution (там, где анализатор), чтобы по нч диапазону было больше диапазонов.
9. Запускаем проигрывание эталонного розового шума, жмем анализ источника - в течении минуты спектр устаканится и примет вид почти прямой линии. В настройках задавая параметр усиления на октаву можно эту линию сделать горизонтальной - так проще будет потом подгонять измеренный сигнал к эталонному.
10. Остановить анализ, зафиксировав спектр эталонного розового шума
11. Запустить на проигрывание файл с записанным шумом, нажать на анализ target  - то же самое, выждать, пока форма АЧХ не зафиксируется, потом остановить анализ target.
12. Сразу видно, что такое эталонный сигнал и что получается на входе микрофона - все резонансы и провалы прекрасно видно.
13. А вот дальше все мои попытки автоматически рассчитать эквализацию приводили к крайне неудовлетворительному результату - в лучшем случае с занижением уровня в -15 Дб.

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

Поначалу трудно выводить все эти кривые, поскольку трогая одну точку, плывут все остальные, я приспособился к изменения где-то за 2 часа. Создал несколько пресетов, которые отличались в основном уровнем самого нижнего баса в районе 50 Гц - некоторые записи сведены с избытком бас-гитары, а некоторые наоборот с недостатком.

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

Все, можно слушать и наслаждаться студийным качеством звука в совсем неидеальных условиях прослушивания. Можно поиграться с ресемплером эквалайзера, но тогда анализ всех спектров надо заново делать. Я отказался от ресемплера, многовато он отсебятины добавляет, хотя в СЧ диапазоне хорошо вокал и инструменты выделяет.
Можно было бы на этом и остановиться, но комплекс перфекциониста не дал мне такой возможности, поэтому будет третья часть :)

Часть третья. Дельта-функция Дирака, конволюция и нафига козе боян :)

Отслушивая разные записи уже без гудения комнаты, которое раньше забивало много деталей, обратил внимание на то, что слишком сильно все стало звенеть и тембры в верхнем СЧ - нижнем ВЧ слишком выпячены. На графике АЧХ, снятой с микрофона, также есть горб в диапазоне 3-10 Кгц, но я списывал это на нелинейность самого микрофона в этом диапазоне (по паспорту там и должен быть горб с 5 Кгц). Отмотав все события и изменения в сетапе, вспомнил, что вывешивание на шипы дает на слух похожий эффект - подбирается бас и добавляется звона на ВЧ. Прошивка на M-DAC стояла A.09.  Решил поменять прошивку на А.10 и заново снять спектры. Результатом был удивлен - тот самый горб 3-10 Кгц снизился на 2-3 Дб и в целом АЧХ стала более линейной на остальном диапазоне. Получается, что в А.09 зачем-то задрана середина АЧХ на те самые 2-3 Дб, из-за чего детализация выше, но при длительном прослушивании начинает утомлять. На акустику не грешу, у нее честно по паспорту ± 2.5 dB (58 Hz - 20kHz). С А.10 звук стал гораздо более комфортный и ровный, хотя раньше эта версия прошивки мне не нравилась именно из-за сниженной детализации, но не все так просто.

Заново снял все нужные спектры, опять подогнал кривые эквализации - гораздо комфортнее в целом стало. Но вылез существенный недостаток плагина - очень большая задержка и существенное потребление процессорной мощности. Плагин запихивает данные в свой буфер и там их обрабатывает, при последовательном воспроизведении это никак не сказывается, но если скакать с трека на трек или в пределах одного трека, то при переходе он сначала доигрывает 1,5-2 сек. старый кусок и только после этого начинает играть новый. Стал искать решение, наткнулся на страшное слово конволвер :) Раскопал тему и был изрядно удивлен.

Есть такой математический изврат в виде дельта-функции Дирака, который иногда используют физики для выделения из неприрывного спектра какого-то узкого пика - экзотическая штука, но полезная при некоторых расчетах. Оказалось, что это преобразование получило свое наименование (конволюция) и сейчас активно используется для широкого класса задач по преобразования одного спектра сигнала в другой. Самое главное качество конволвера - преобразование происходит быстро и линейно-фазово. Все, что нужно - сгенерировать правильный импульс, который и служит основой для работы конволвера. Долго не мог понять, где взять или как создать нужный импульс, в конечном итоге нашел тот самый дираковский импульс здесь: http://www.sjeng.org...sc_impulses.zip, файл Unitpulse2K.wav. В этом файле длиной 92 мс есть только нули и один-единственный отсчет в центре со 100% амплитудой. Чтобы получить из этого импульса параметры эквализации, нужно его прогнать через настроенный vst плагин. У меня не получилось это сделать в Audacity (одни нули выдавал на выходе), пришлось качать триальную версию Adobe Audition и там подключать vst плагин, которым обрабатывать импульс. Последовательность такая:

1. Берем исходный файл Unitpulse2K.wav и открываем его в аудиоредакторе (я использовал Audition).
2. Расширяем границы тишины импульса в обе стороны. Я добавлял по 100 мс цифровой тишины в начале и в конце файла. Исходной длины в 92 мс недостаточно для отработки плагина.
3. Подключаем vst плагин, в нем загружаем нужный пресет и применяем на весь файл импульса длиной 292 мс.
4. Переключаем режим отображения в сонограмму и видим результат отработки плагина - от центра тянуться хвосты в обе стороны.
5. Обрезаем в начале и в конце области, в которых одни нули по отсчетам (абсолютная тишина, на сонограмме там заканчивается серый хвост). У меня получилось по 32 мс в начале и в конце.
6. Сохраняем итоговый файл в виде wav  - у меня получилось 228 мс.
7. Убираем в foobar все DSP, загружаем плагин конволвера (я брал здесь http://cdpos.biz/sho...ver-(Конвольвер)), в настройках плагина загружаем полученный wav файл.
8. Жмем apply и слушаем. Теперь нет ни большой загрузки процессора, ни малейших запаздываний при перемещениях по аудиозаписи и идеальный звук :)

Я сделал несколько wav файлов с разными пресетами, в зависимости от записи загружаю нужный файл в конволвер. Самое интересное, что возможности конволвера этим не исчерпываются, он может делать любую обработку сигнала, в том числе и эмулировать работу цифровых фильтров, встроенных в M-DAC. Минимально-фазовую характеристику можно получить, если обработать исходный файл импульса в vst плагине с соотвествующей настройкой или просто в редакторе обрезав предшествующий импульсу хвост (и заменив тишиной). Полагаю, что дополнительное обрезание хвоста после импульса даст звук, схожий с фильтром Optimal Transient - т.е. даже если аудиокарта или внешний DAC не поддерживает цифровую фильтрацию, то ее можно создать таким образом, но сам я пока не эксперементировал.
Powered by Tutorials 1.3.3 © 2018, by Michael McCune
Изображение
Беспроводные наушники в магазине Dr.Head.

Rambler's Top100 Рейтинг@Mail.ru