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

uriy

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

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

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

Rimtotal

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

Zandy

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


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

uriy

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

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

uriy

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

Zandy

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

uriy

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

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

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

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

Zandy

1 ранг
Регистрация
30 Дек 2022
Сообщения
763
Реакции
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
Сообщения
378
Реакции
319
Репутация
16
Страна
Ukraine
Ни один фильтр, даже самый суперпуперский не избавит вас от шумов квантования!
А он и не должен нас избавлять от шума полностью, он подавляет шум т.е. уменьшает его уровень на величину согласно своих свойств.

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


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

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

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

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

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