💫 Room Correction — измерение и коррекция акустики помещений + софт (REW, Dirac, Audiolense, Acourate)

Привел его, если вдруг одного моего мнение и каких-то коллег не достаточно :slight_smile:

Если нужно моё мнение - да, FIR в miniDSP играет хуже чем IIR, появляется больше синтетики, особенно на ВЧ.
При переходе на простой IIR звук становится более плавным.

Ну как достаточно или недостаточно. Мне надо отключить Дирак в связи с мнениями? Ну я не буду, по целому ряду причин :slight_smile:

К тому же, сам путь постоянного поиска дельты “лучше-хуже” в аудио порочный и ведет к неврозу :slight_smile: Меня интересует интегральный результат и за сколько он может быть достигнут. И какой-то список приоритетов, а у каждого он свой.

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

Зачем? Мы же тут мнениями обмениваемся лишь для поднятия опыта.
Но свои ощущения всегда важнее. Мне потребовалось два года, чтобы уйти от актива в пассив и кто бы что не говорил это не оказывало существенного веса :slight_smile:

А по поводу IIR - инициатором был не я, а коллега, который первый перешел с FIR на IIR, а за ним я уже досконально сравнил и пришел к такому же выводу. При этом коллега не слышит разницы в кабелях и не поддерживает моего энтузиазма по кабельной теме, но разницу между FIR и IIR слышит, а после моих экспериментов так же будет соскакивать в пассив :slight_smile:

Если помните, то я был первым кто агитировал за Audyssey MultEQ ХТ32 и провел сравнение разных систем. Но с тех времен все реже и реже хочу изменения в цифре для компенсации комнаты. В последнее время в активе был один параметрик на стояк на частоте 30 Гц и все.

Но это лишь мой опыт. У каждого он свой. Я лишь решил поделиться своими наблюдениями.

Я не помню, кто был первый :slight_smile: но я как-то лет… много назад, не помню уже когда, купил карточку KRK Ergo с рум-коррекцией (там только бас) и с тех пор не приемлю гудящий бас, торчащие моды и затяжку ритмики. И в принципе не против и даже за, если это все решено в пассиве и акустической обработкой, осознал важность акустики КДП тоже уже очень давно, побывав на студиях - вот только в реальности у коллег аудиофилов дома наверное и не слышал действительно приемлемую связку АС/комната. Ну кроме упомянутой цифроактивной системы, сведенной “на кресло”. Впрочем, кто-то может на это закрыть глаза и открыть на другие плюсы систем, каждому ж свое.

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

Спасибо, что делитесь - у вас интересная система, и наблюдения/выводы конечно тоже интересны. Единственное, что не нравится во всем этом обмене опытом - “культура эксперимента”. Я в том смысле, что сравниваются несравнимые вещи, и потом делаются выводы. В принципе, это приемлемо для собственной системы, но для обобщений… Но любая информация в любом случае интересна.

Сергей,
с моей точки зрения разработчик с Вегалаба выразился некорректно или слова вырваны из контекста. По крайней мере обе формулы - дискретного преобразования Фурье в комплексной форме.
FFT FIR, STR FIR - подобного не встречал. Не знаю что имеется ввиду. Ни в Matlab, ни в тех учебниках, которые я читал по цифровой обработке, разбираясь, подобного не встречал.

В конвольвере (части ПЛИС, например, или части ЦАП, в которой выполняется математическая операция свертки коэффициентов FIR фильтра с входящим сигналом) нет FFT и быть не может.
Конвольвер (convolution engine) - машина по выполнению операции Свертка (см Википедию для экономии времени).

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

Любой FIR фильтр характеризуется спецификациями (для примера LPF):

  1. количество коэффициентов (чем больше, тем лучше другие показатели, но дольше считать).
  2. узостью переходной зоны, крутизной среза - как быстро AЧХ фильтра уменьшается до зоны подавления. Чем уже, тем больше коэффициентов нужно.
  3. пульсациями в зоне пропускания. Чем меньше - тем больше коэффициентов нужно.
  4. Уровнем подавления в зоне подавления - чем больше подавление, тем больше коэффициентов нужно.

Для dam1121 лучшие фильтры - ~ 1200 коэффициентов, 2 кГц зона перехода, пульсации 0,00000001dB, уровень подавления -168dB.
В моем Auralic Vega ~ 64 коэффициента, 5-6кГц, 0,01/0,001 dB, -100dB.
Разницу между фильтрами с такими спецификациями услышать очень непросто. У меня получалось только на отдельных композициях между некоторыми видами фильтров.

В Roon Convolution Engine могут быть использованы фильтры длины до 64000 (могу ошибиться раза в 2), например.

Более детально посмотрите здесь (это мои эксперименты с FIR фильтрами для ЦАП, два поста)

Когда вы говорите, что FIR фильтры “портят” звук - вы какие спецификации имеете ввиду?

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

Проблемы могут быть вызваны и коррелированным шумом в результате цифровой обработки (это не имеет никакого отношения к FIR). Так, например, было в известном ЦАП Sygnalist DSC1. С этим явлением можно столкнуться уже по факту. Коррелированные искажения очень заметны.

Итог - я безусловно доверяю вашему опыту. И мне он интересен.

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

Мне, например, интересен именно такой подход.

2 симпатии

Это всё как бэ совсем из другой оперы, не вижу связи с топиком.

Не, ну вы хоть бы потрудились ссылки открыть, которые я дал в начале дня - там есть вполне взвешенные аргументы за и против, я с чем-то согласен, с чем-то нет. Никакого третирования сторонников “коррекции помещения” вроде не вижу. Дискуссия по теме, что не так-то?

Потрудился. Вы бы потрудились менторский тон сменить наконец, надоело уже.

Неужели? На этот момент каждая ссылка открыта 2(!) раза - один раз открыл я для проверки, второй - Виталий перед своим ответом.

Пипец, ну это уже за рамки, обе статьи просмотрены, обе отложены в закладки на прочитать по свободе внимательно, одна висит в браузере… Короче, с вами общаться более желания не имею.

Странно, а почему тогда возникают вопросы о правомерности этой дискуссии? Там всё как раз по теме, ну со своей спецификой конечно.

Да ради бога - я вам не навязываюсь.

Я дал ссылку - читайте выше/ниже, если интересно. Так же на сундуке есть похожая тема с разной реализацией FIR фильтров.

Вот еще небольшая цитата:

От Finite Impulse Response - ‘конечная отдача импульса’. Эти фильтры реализованы через процесс, называемый сверткой (convolution): есть таблица размера n, которая комбинирует (складывает) последние n точек функции в одну выходную точку, умножая каждую из них на определенное число - весовой коэффициент. Таблица свертки строится один раз в начале по требуемому частотному воздействию.
[На самом деле влоб делать свертку очень медленно. Применяется другой процесс, для больших сверток в сотни раз более быстрый, но полностью аналогичный этому - FFT, умножение в частотном пространстве, обратный синтез].

То что в большинстве случаев для FIR используется FFT преобразование не новость т.к. этот метод позволяет существенно сократить требуемые вычислительные мощности. Именно такой метод позволяет в miniSHARK получить приемлемое количество taps для всех каналов.

Но лично мой опыт касается только продукции miniDSP. И в их реализации FIR вносит слышимые искажения в сигнал относительно IIR. Возможно это косяк именно реализации в miniDSP, но у меня есть предположение, что все-таки это проблема использования FFT преобразований.

Да, я понял о чем вы. Согласен. Спасибо что разъяснили.

Крайне маловероятно, что это проблема в FFT конвольвере как таковом.
В Roon, как софтовом DSP, я подобной разницы не замечал. Скорее FIR имеет преимущество.
Хотя, конечно, подробных сравнений не проводил.
Нужно будет попробовать.

1 симпатия

Вообще-то в DSC1 как раз 32taps FIR, только аналоговый, а не цифровой.

Да, так. 32 тапа, суть - простое плавающее среднее.

Почему аналоговый? На входе - однобитный поток с определенной частотой дискретизации, на выходе - многобитный поток с той же частотой дискретизации. Который в первоначальной схеме идет на LPF.

Если аналоговый потому, что используется для восстановления аналоговой формы сигнала, то понял.

Но суть в другом - к коррелированному шуму в не балансной версии ЦАП этот FIR не имеет (с моей точки зрения) отношения.

Таков комментарий разработчика DSC1:

Analog FIR… :wink:

Since there are 32 elements, there are 33 different possible output levels. The shift registers essentially create a scrambled unary coded value (as opposed to binary coded with PCM), sometimes called “thermometer code”. This is how most SDM converters work (for example ESS Sabre, which has 64 elements). Compared to R2R ladder, in this type of converter, accuracy of the resistors don’t affect conversion accuracy, only filter’s frequency response. Every bit goes through every element once and every bit is converted 32 times.

Since every new sample has only 1/32th contribution to the converted value, it has filtering effect and thus reduces the slew rate I/V section is seeing which makes it easier to create good I/V and analog filter stages - lower level high frequency content. So the maximum sample-to-sample voltage step after I/V is 1/32th of the full range.

Using equal weighting for each element provides best possible jitter rejection but less filtering effect.

После FIR следует Sallen-Key фильтр четвертого порядка и, собственно, LPF. Согласен, что указанный FIR (в данном случае даже не суть важно - аналоговый он, цифровой или гибридный) наверняка не является причиной коррелированного шума, в противном случае “журчание” присутствовало бы и в балансной версии ЦАП.
В предыдущем сообщении Вы указали на коррелированный шум как возможное следствие цифровой обработки в DSC1. Я не совсем понимаю, о какой обработке идет речь?

Да, Герман, я понял в каком контексте FIR назван аналоговым. Спасибо.

По поводу фильтров Саллена Кея - в такой конфигурации (рисунок ниже аналогичн схеме с сайта Signalyst.com) они представляют собой именно LPF.

OPsLowPass

Изменяя порядок расположение сопротивлений, емкостей и их номиналы можно создать большое количество разных IIR фильтров (LPF, HPF, notch …), LPF могут быть Баттерворта, Чебышева, эллиптические итд. Их два последовательно - поэтому конечно, в данном случае LPF второго порядка.

По поводу цифровой обработки - поясню что я имел ввиду:

  1. Я условно (для себя) разделил Signalyst DCS1 на два блока - “цифровой” (вполне уместно и “аналоговый”) FIR и последующий “аналоговый” - IV конвертер, LPF, выходной буфер.
  2. Одна из модификаций схемы предполагала фактическую замену всего “аналогового” блока на выходной трансформатор и в не балансной версии не привела к устранению коррелированных шумов (“журчания”, заметного на определенных уровнях громкости).
  3. К устранению упомянутых шумов привела дальнейшая модификация в балансную схему.
  4. Мой вывод - проблема в “цифровой части”, а именно в сдвиговых регистрах (в оригинальной версии ЦАП 74AHCT595). Связанно ли это с конкретным продуктом конкретного производителя или с разводкой платы или чем то другим - сказать сложно. Но других причин не вижу.

Это я, возможно не удачно, и назвал “коррелированным шумом в результате цифровой обработки”.

Суть моего высказывания - использование FIR безопасно, но конкретная реализация в железе может быть связана с появлением неожиданных последствий. Но не математика DSP в этом виновата.

Что бы быть совсем точным - в Signalyst DCS1 два последовательных фильтра LPF Саллена Кея.
Каждый может иметь 1 или 2 полюса (в зависимости от номиналов R,C и коэффициента усиления операционника).

По утверждению Miska (разработчик ЦАП) там 2 полюса в каждом.
Итого, действительно, 4.

Сорри за неточность.

Навесик от Linn

Виталий, спасибо за уточнение - действительно, два последовательных фильтра SK второго порядка работают как LPF. Jussi Laako (aka Miska) относит DSC1 к когорте NOS DAC, т.е. постулируется концепция “невмешательства”.
Касательно “журчания”: в публикации Idle tone behavior in Sigma Delta Modulation указано, что фундаментальная частота idle tones пропорциональна частоте несущей. Есть подозрение, что собака порылась где-то близко, ибо наблюдаемый характер шума усиливается в ряду DSD64-DSD128-DSD256-DSD512.

The implications of idle tone aliasing are quite important because it means that an idle tone located
outside the audible range can become audible when having an appropriate amount of DC offset.

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

1 симпатия