Цифровая обработка звуковых сигналов

uriy

2 ранг
Регистрация
22 Янв 2024
Сообщения
377
Реакции
319
Репутация
16
Страна
Ukraine
Да кажись можно, есть два независимых проекта по коммутации при помощи ВАК (виртуальный аудио кабель). В одном проекте точно указана возможность через ASIO...
Как я понимаю сама суть асио это прямой эксклюзивный доступ одного софта к драйверу звуковой карты, и ни какой другой софт не может перехватывать соединение. Если между софтом и звуковой картой есть другой софт прокладка, то это уже не асио режим. Да и потом, асио нужно для реалтайма обработки звука т.е. получить минимальную задержку между звуком на выходе/ входе звуковой карты и софтом, а если применять АРО с КИХами то это всё преимущество накроется медным тазом т.к. КИХ имеет задержку.
 

Freepainter

3 ранг
Новый
Регистрация
11 Авг 2024
Сообщения
10
Реакции
3
Репутация
2
Страна
Ukraine
Город
Kyiv
Как я понимаю сама суть асио это прямой эксклюзивный доступ одного софта к драйверу звуковой карты, и ни какой другой софт не может перехватывать соединение. Если между софтом и звуковой картой есть другой софт прокладка, то это уже не асио режим. Да и потом, асио нужно для реалтайма обработки звука т.е. получить минимальную задержку между звуком на выходе/ входе звуковой карты и софтом, а если применять АРО с КИХами то это всё преимущество накроется медным тазом т.к. КИХ имеет задержку.
Так у асио тоже есть задержка. Я, так понимаю: если слушать музыку, то главное как она звучит, а какая там задержка не имеет значения. А вот, например, подключить муз. инструмент и что то играть в реальном времени, то задержка должна быть минимальна.
На FL Studio у меня задержка 4мкс и нет проблем в игре на эл.гитаре и записи...
Кроссовер высококачественный проще сделать в "железе" , я так и поступил и идеи с софтом давно оставил...
Вот еще одна ссыль на VAC с асио : http://jackaudio.org
 

Rimtotal

2 ранг
Регистрация
12 Сен 2022
Сообщения
648
Реакции
186
Репутация
20
Страна
Россия
Город
Калуга
Имя
Роман
Да кажись можно, есть два независимых проекта по коммутации при помощи ВАК
Спасибо, с Virtual Audio Cable я уже имел знакомство, устанавливал настраивал, но не смог разобраться.
Доп каналы создал, как на каждый отдельный канал перед тем как он уходит на усилитель навесить VST плагин Fabfilter Pro-Q 3, что бы уже в нем настроить фильтр, разобраться не смог.
инструкции на просторах инета все о другом.

а если применять АРО с КИХами то это всё преимущество накроется медным тазом т.к. КИХ имеет задержку.
Задержки не так страшны для музыки, точнее наоборот полезны когда ими можно управлять.
а вот обойти системный микшер виндовса при помощи асио и не лишиться всех настроек АРО было бы здорово
 

Freepainter

3 ранг
Новый
Регистрация
11 Авг 2024
Сообщения
10
Реакции
3
Репутация
2
Страна
Ukraine
Город
Kyiv
Вот еще нашел у себя в архиве док. по настройке vac по первой ссылке, там в конце есть описание настройки кроссовера...
Фраза в конце: "...данные графики и идеальный импульс через виртуальный кабель идут бит в битик, по крайней мере REW при замере через него рисует идеальные" (с)!
 

Вложения

  • Help_settings VAC.pdf
    1.1 MB · Просмотры: 8

Zandy

1 ранг
Регистрация
30 Дек 2022
Сообщения
765
Реакции
955
Репутация
37
Страна
РФ
Город
Москва
Имя
Zandy
Юрий, спасибо за проверку.
А у меня тут родилась новая идея, пока только в голове (во время обеда). Попробую воплотить ее в схему вечерком, если время будет.
Итак это целая эпопея. Попробую покороче, но вряд ли получится.
Сначала я уяснил, что моя схема гистерезиса работает совершенно не по тому алгоритму, который я приводил выше. У этой схемы алгоритм работы гораздо проще. Начал изобретать новую схему, работающую именно по задуманному алгоритму. Изобретал - изобретал, схема разрослась до неприличия, но не работала. И тут меня осенило! Спрашивается, а нахуа? Ведь чем плоха эта схема? А плоха она тем, что переключения идут не на каждую единицу, а перескакивают через несколько единиц. Например, если гистерезис стоит +4/-4, то наше число (макс. 1023) будет увеличиваться/уменьшаться четверками. Сколько ступенек получается? А получается 1024/4=256 ступенек. А сколько нам ступенек надо? А надо нам 64 ступеньки. А это значит, что если мы поставим гистерезис +16/-16, то мы как раз и получим 1024/16=64 ступеньки. Таким образом +16/-16 это критический гистерезис. Поставим ниже, промежуточные значения все равно пропадут впустую. Поставим выше - будут потери в количестве ступенек.
Итак, ставим гистерезис +16/-16 и не паримся !!!!!!!!!!!!!!! А это ого-го, какой большой гистерезис!!! Представляете, какой должна быть помеха, чтобы попасть в такой диапазон!
Ну а дальше все тоже самое.
Вот вы Юрий в своей схеме сделали почти также, но немного по-другому. Вы сначала диапазон поделили на 16 (эквивалент сдвигу на 4), а потом сделали гистерезис +1/-1. Больше уже сделать нельзя, это приведет к потерям.
Я приведу свою окончательную схему.
Гистерезис3.jpg

Не могу сказать, чья схема лучше с точки зрения нечувствительности к помехам. Вроде одинаково должно быть. smile_30 А может и нет. Что-то мне интуиция подсказывает, что моя расстановка более помехоустойчива... ;)
А скажите, вы пришли к своей схеме эмпирически или тоже расчетом?
Я поставил ReadBackи в целочисленном формате 32.0. Все прекрасно видно. ReadBack после блока сдвига четко пробегает все числа от 0 и до 63.

И еще. У меня Index Lookup Table стоит стандартный. Видите на нем 2 точки зеленая и синяя. Можно переключать форматы ввода и вывода. У меня формат ввода стоит целочисленный 32.0. Просто представление более привычное и легко отслеживаемое.
 
Последнее редактирование:

uriy

2 ранг
Регистрация
22 Янв 2024
Сообщения
377
Реакции
319
Репутация
16
Страна
Ukraine
А скажите, вы пришли к своей схеме эмпирически или тоже расчетом?
Вы про мою схему с НЧ фильтром или про свою схему в которой я перенёс операцию сдвига на выход АЦП?

Хотя наверно не важно, в обоих случаях я это делал в большей мере эмпирически, так сказать на глазок, или как ещё любят говорить некоторые математики - методом научного тыка. Я к расчётам прибегаю в очень крайних случаях, когда это очень важно для достижения некой конкретной цели.
Но в целом ваша затея мне понятна и мне просто было видно, что в моём случае лучше резать помеху сразу на выходе АЦП. Я в принципе понимаю что сдвиг это отбрасывание разрядов и мы этим действием отбрасываем четыре младших разряда от десяти разряов, но это нас не избавляет от "проброса" шумовой единицы в пятый разряд, когда четыре младших разряда равны единице, что в итоге и заставляет вводить некий гистерезис во всё это мероприятие.
Я не хотел увеличивать разрядность в блоке сравнения Tol т.к. это приводит к большему замораживаемому значению в крайних зонах. т.е. очень редко можно получить нуль на выходе такой схемы когда потенциометр уходит в ноль но медленно, и так как мне было лень считать насколько это важно, или не важно, я просто перекинул сдвиг разрядов на выход ЦАПа и получил очень малое выходное значение на выходе схемы при нулевом входе в АЦП.
По поводу помехоустойчивости, на вскидку вроде как очевидно то, что эти два метода эквивалентны, если на гистерезис задействовано одинаковое число разрядов, а вот какой метод более устойчив при минимальном количестве разрядов затраченных на гистерезис, я затрудняюсь сказать. Тут уже нужно считать. _net_1
В целом ваша схема на мой взгляд довольно оригинальная и проста и самоео главное - рабочая.

Видите на нем 2 точки зеленая и синяя. Можно переключать форматы ввода и вывода.
Хммм... незнал, буду знать.
 
Последнее редактирование:

Rimtotal

2 ранг
Регистрация
12 Сен 2022
Сообщения
648
Реакции
186
Репутация
20
Страна
Россия
Город
Калуга
Имя
Роман
там в конце есть описание настройки кроссовера...
Kyiv
Спасибо большое!
Но если честно, я не понял пример настройки кроссовера с Дефоникой.
Я немного знаком с ней, просто под Виндовс 10 у меня не хочет она корректно работать.
Ну так вот, насколько я понял дефоника вполне самодостаточная прога, сама может раскладывает на каналы и отдает на указные выходы, виртуальный кабель ей зачем?
Я правильно понимаю что ВАК самостоятельно не умеет работать с VST плагинами?
 

Zandy

1 ранг
Регистрация
30 Дек 2022
Сообщения
765
Реакции
955
Репутация
37
Страна
РФ
Город
Москва
Имя
Zandy
Юрий, а хотите удивлю еще разок? Вот смотрите:
Гистерезис4.jpg


Обратите внимание на то, что стоит между гистерезисом и AUX_ADC. А стоит там своеобразный фильтр, который называют субтрактивным фильтром! Ни один из библиотечных фильтров не работает корректно, а этот работает!
Блок DCB1 - отсекатель постоянной составляющей. Почему-то его не называют ФВЧ, хотя он вроде таковым должен являться. Так вот, из смеси постоянной составляющей и переменного шума помехи мы вычитаем переменный шум помехи и... вуаля... остается чистая постоянная составляющая без помехи! В эквиваленте получаем субтрактивный ФНЧ. И что самое интересное, эта хрень работает!!! Первый ридбэк мельтешит младшим разрядом. А второй - стоит, как вкопанный! Причем постоянная составляющая передается без искажений.
 

uriy

2 ранг
Регистрация
22 Янв 2024
Сообщения
377
Реакции
319
Репутация
16
Страна
Ukraine
Юрий, а хотите удивлю еще разок? Вот смотрите:
Да, удивили.
Весьма оригинальное решение, и аудиофилов можно завлекать - АЦП с субтрактивнйо фильтрацией обеспечивает максимально качественную регулировку громкости без вращения фазы. _da

Завтра проверю её в железе, если инерция на регулировку громкости у схемы умеренная, и шум будет подавлен, то это пожалуй будет самой простой схемой борьбы с шумом на выходе АЦП.

Решил я не ждать, больно заманчивая схема.
В общем облом с этим подходом, при моём уровне шума на входе АЦП появляется узкое место как раз на числе 623=1001101111 что явно указывает на "проброс" шумовой единицы выше 4 разряда, даже при шуме 1 младший бит.
А так в целом схема отзывчивая на регулирование громкости, но к сожалению инерции которую должен давать блокиратор постоянки, недостаточно что бы сгладить шум полностью.
Я кстати у себя вижу дребезг младшего разряда до и после субтрактивной фильтрации. С АЦП я вижу диапазон чисел 624-622 после фильтрации крайне редко виден дребезг 623-624. Хотя частота и уровень дребезга после фильтрации меньше и реже, но он есть.
Subtract2.png
 

Zandy

1 ранг
Регистрация
30 Дек 2022
Сообщения
765
Реакции
955
Репутация
37
Страна
РФ
Город
Москва
Имя
Zandy
В общем облом с этим подходом, при моём уровне шума на входе АЦП появляется узкое место как раз на числе 623=1001101111 что явно указывает на "проброс" шумовой единицы выше 4 разряда, даже при шуме 1 младший бит.
Я ведь и раньше говорил, что фильтр в принципе не должен спасать от пораженных точек. Как ни фильтруй, они все равно должны оставаться, просто количество их падает. Поэтому тот фильтр, который вы "нащупали" заслуживает отдельного внимания. Вместе с некорректностью в работе мы бонусом получаем отсутствие пораженных точек, что я никак не могу объяснить.
_____________________________________
Кстати, вы обратили внимание, что в схеме, которую я привел, гистерезис я не стал удалять. Я просто добавил этот фильтр для повышения помехозащищенности. _kluch
 

uriy

2 ранг
Регистрация
22 Янв 2024
Сообщения
377
Реакции
319
Репутация
16
Страна
Ukraine
Я ведь и раньше говорил, что фильтр в принципе не должен спасать от пораженных точек.
Не вижу причин по которым ФНЧ не должен убирать шум в не послы его пропускания. По этому я и применил срез ФНЧ в 3Гц, что бы шум выше 3Гц был подавлен, что в итоге и убирает "дребезг" разрядов который происходит с частотой выше частоты среза фильтра, но при этом я получаю большую инерцию по отношению к вашему варианту на гистерезисе.

Рассматривайте "поражённые точки" как шум определённой амплитуды и частоты, шум который складывается с постоянной составляющей, и тогда у вас всё сложится в голове. Шум у нас распространяется на весь спектр частот, но его уровень в диапазоне частот 0-3ГЦ ничтожно мал, а всё что выше 3Гц, шум подавляется ФНЧ и он не пропускает его на свой выход. Вот и всё, не суть важно как далеко пробрасывается шумовая единица на выходе АЦП, суть важно это частота этого процесса т.е. спектральное распределение шума, это важно если применять ФНЧ.

Я просто добавил этот фильтр для повышения помехозащищенности.

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

Zandy

1 ранг
Регистрация
30 Дек 2022
Сообщения
765
Реакции
955
Репутация
37
Страна
РФ
Город
Москва
Имя
Zandy
но его уровень в диапазоне частот 0-3ГЦ ничтожно мал
Когда мы имеем дело с цифровой интерпретацией аналогового сигнала, уровень всегда определяется разрядностью его представления. Я сейчас про амплитуду, а не про спектральную плотность!
Я все понимаю, что вы говорите, а вы почему-то не хотите понять меня. Еще раз. Ни один фильтр, даже самый суперпуперский не избавит вас от шумов квантования! Фильтрация - это линейное преобразование, работающее во временной области. Этот шум квантования, амплитуда которого изначально в идеале равна 1/1024 при 10 битном АЦП, при отсекании разрядов (тем или иным способом) пролезает в любой разряд. Даже, если мы отсечем 9 младших разрядов и оставим всего 1 (!) разряд, все равно он будет там присутствовать. Но это будет всего одна пораженная точка на весь диапазон. Она будет ровно посередине диапазона. В нашем случае, где мы делим весь диапазон на 64 ступеньки по 1 дб на каждую ступеньку, дребезг в пораженных точках, вызванный шумом квантования, будет с амплитудой коэффициента передачи в 1 дб. Другими словами, это будет модуляция усиления в 1 дБ. Конечно, можно сказать, что мы не услышим такую модуляцию, точно также, как мы не слышим 0.1% THD, но тут мы уже вторгаемся в область субъективного...
Теперь о частотной полосе среза. Представьте тональный сигнал, например 1000Гц. Замодулируем его амплитуду в 1 дБ с частотой 3Гц. Неужели вы этого не услышите?
__________________________
Понимаете, я сейчас говорю не про помеху. Помеху, да, вы отфильтруете. А шум квантования никогда! Вы только сместите его в другую частотную область. Конечно, пораженных точек может быть немного, допустим только 2-4 на весь диапазон, при хорошем раскладе может их вообще не быть. Я сейчас не готов сказать, как определить количество этих точек. Но... вероятность нарваться на такую точку при регулировке по закону бутерброда всегда есть. И тут спасает только гистерезис, или введение зоны нечувствительности (нелинейное преобразование). Да, при регулировке появляется неопределенность в 1 шаг регулирования, но при этом будет отсутствовать дребезг этого шага в процессе работы.
 

uriy

2 ранг
Регистрация
22 Янв 2024
Сообщения
377
Реакции
319
Репутация
16
Страна
Ukraine
Ни один фильтр, даже самый суперпуперский не избавит вас от шумов квантования!
А он и не должен нас избавлять от шума полностью, он подавляет шум т.е. уменьшает его уровень на величину согласно своих свойств.

Теперь, если мы возьмём узкополосный полосовой фильтр с полосой пропускания 1Гц, то уровень шума на выходе этого фильтра во всей полосе частот значительно уменьшится т.к. шум распределён по частотной шкале, а полосовой фильтр пропускает сигнала только в полосе 1Гц т.е. всё что выше и ниже частоты настройки фильтра, подавляется этим фильтром. Это касается и шумов квантования, как явный и простой пример смотрите на мои спектрограммы, уровень полки шума на них находится на уровне -130дБ при реальном уровне полки шума на уровне -96дБ т.к. сам принцип спектрографа это фильтрация сигнала в узкой после частот т.е. подавление всего и вся что не входит в измеряемую частоту. По этому шум проникающий в полосу измерения спектрометра всегда ниже чем на самом деле, и шум будет тем ниже, чем уже полоса пропускания спектрографа которая в свою очередь зависит от величины окна - FFT Size.


Теперь о частотной полосе среза. Представьте тональный сигнал, например 1000Гц. Замодулируем его амплитуду в 1 дБ с частотой 3Гц. Неужели вы этого не услышите?
Вы не хотите понять что ФНЧ не позволяет произойти этому событию т.к. уровень шума в полосе частот 0-3Гц ничтожно мал, так мал, что на выходе фильтра мы всегда видим одно число, без дребезга разрядов.

Помеху, да, вы отфильтруете. А шум квантования никогда!
Шумы квантования фильтруются ФНЧ ровно так же, как и просто шумы. Уменьшение полосы пропускания частот всегда приводит к уменьшению уровня шума в этой уменьшенной полосе частот.

З.Ы.
Что бы не попасть в дебри отраженных частот и наложения спектров и не запутаться там, стоит оговорить, что рассматривайте всё казанное мною как о диапазоне звуковых частот при минимальной частоте дискретизации сигнала в 40кГц. Т.е. оцифрованный сигнал удовлетворяет критерию Найквиста-Шеннона.
 
Последнее редактирование:

Zandy

1 ранг
Регистрация
30 Дек 2022
Сообщения
765
Реакции
955
Репутация
37
Страна
РФ
Город
Москва
Имя
Zandy
Для меня,то что измеряет спектрометр, загадка загадочная. Вы же измеряете шум основного канала, а не канала регулирования. Шумы двух каналов перемножаются, а не складываются! Шум канала регулирования мультипликативен, а не аддитивен. Другими словами, шум канала регулирования должен проявляться во всей своей красе при наличии сигнала в основном канале. Если сигнал в основном канале равен нулю, то и шум канала регулирования не должен никак влиять. Поэтому я сразу принял эту спектрограмму за чудеса именно цифровой обработки. Мы толком не знаем, что и как там делается. Функциональная, по сути схема, которую мы рисуем, может не отражать реальную. Подходить с аналоговыми мерками, думаю, не совсем правильно.
Вы не хотите понять что ФНЧ не позволяет произойти этому событию т.к. уровень шума в полосе частот 0-3Гц ничтожно мал, так мал, что на выходе фильтра мы всегда видим одно число, без дребезга разрядов.
Я хочу вас понять, но не понимаю. О каком уровне шума вы говорите? Об амплитудном? Так амплитуда этого шума всегда будет равна величине младшего разряда. О спектральной плотности? Да, действительно, спектральная плотность в полосе 0-3Гц гораздо меньше, чем во всей полосе. Но что с того? Просто после ФНЧ полоса частот, в которой происходит дребезг, сместится в более низкочастотную область и упадет его спектральная плотность. Но амплитуда этого дребезга не поменяется, т. к. она зависит только от разрядности ЦАПа! И меньше младшего разряда просто физически не может быть.
 

Zandy

1 ранг
Регистрация
30 Дек 2022
Сообщения
765
Реакции
955
Репутация
37
Страна
РФ
Город
Москва
Имя
Zandy
уровень шума в полосе частот 0-3Гц ничтожно мал, так мал, что на выходе фильтра мы всегда видим одно число, без дребезга разрядов.
Давайте на конкретном примере. Задам провокационный вопрос. На входе фильтра мы наблюдаем шум квантования. Положим число меняется 345...346. Если вы говорите, что на выходе фильтра будет одно число, то какое, 345 или 346? ;)
 

Статистика форума

Темы
2,562
Сообщения
187,634
Пользователи
2,044
Новый пользователь
Андрей Мирошников
Сверху Снизу