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

Zandy

1 ранг
Регистрация
30 Дек 2022
Сообщения
762
Реакции
955
Репутация
37
Страна
РФ
Город
Москва
Имя
Zandy
На нашем форуме есть люди, которых интересует данная тематика, поэтому я и решил создать отдельную тему. Тут на форуме много разрозненных сообщений, касающихся данной тематики потому что почти всегда одну и ту же проблему можно решить разными путями, в том числе и с помощью цифровой обработки. Но эти сообщения вязнут в могучих "телесах" форума, поэтому подчас остаются незамеченными. Конечно, эквалайзеры - немного не тот раздел для проживания этой темы, но другие еще дальше по смыслу. Только прошу, давайте не затевать бессмысленных споров, типа цифровой/аналоговый звук, что лучше, что хуже. Мы живем уже в таком мире, где чисто аналогового звука уже не существует, разве что, кроме старинного раритетного винила и каких-то где-то сохранившихся мастер-лент. В создание современного звука, как бы мы этого ни не хотели, "цифра" запустила свои всепроникающие клешни. Я понимаю, что очень хочется на эту тему поговорить, но прошу, давайте ограничимся здесь чисто теническими вопросами и высказываниями. В основном, разговор будет касаться работе с DSP и приложениями для ПК, которые позволяют программировать эти DSP.
 

Rimtotal

2 ранг
Регистрация
12 Сен 2022
Сообщения
648
Реакции
186
Репутация
20
Страна
Россия
Город
Калуга
Имя
Роман
В основном, разговор будет касаться работе с DSP и приложениями для ПК, которые позволяют программировать эти DSP.
Периодически пытаюсь найти на просторах интернета хоть что то похожее на Equalizer APO, программа отлично подходит для организации ДСП кроссовера на базе звуковой карты ПК. и все четно, это направление к сожалению совсем не развивается.
 

Zandy

1 ранг
Регистрация
30 Дек 2022
Сообщения
762
Реакции
955
Репутация
37
Страна
РФ
Город
Москва
Имя
Zandy
Задам свой первый вопрос (может чуть-чуть провокационный). Речь про Sigma Studio. Кто в теме, надеюсь знает о чем речь. Кто не в теме - это такая среда проектирования для DSP семейства ADAU и др.
Фильтры, которые есть в арсенале этой программы, могут работать только со звуковыми сигналами? Могут ли они работать с сигналами, которые подаются на вход AUX_ADC? Чисто по моим наблюдениям - нет не могут. Перепробовал разные фильтры, и только Nth Order Filter при определенных настройках как-то что-то пытается работать, но некорректно. Модули Simulation Probe и Simulation Stimuli с этими сигналами тоже не работают. Вопрос адресуется в первую очередь Юрию. Я видел в вашем проекте фильтр с очень низкой частотой среза, который якобы должен давить шумы на входе АЦП регулировки.
 
Последнее редактирование:

uriy

2 ранг
Регистрация
22 Янв 2024
Сообщения
376
Реакции
319
Репутация
16
Страна
Ukraine
Могут ли они работать с сигналами, которые подаются на вход AUX_ADC?
Как я понимаю, что бы сигнал с АЦП мог корректно обрабатываться программными фильтрами, вам нужно реализовать преобразование числа получаемого от АЦП Т.к. выход вспомогательного АЦП имеет другое числовое исчисление в отличии от внутри программного исчисления, тем более вход АЦП однополяторный т.е. не имеет отрицательного знака, если вы приведёте числа получаемые с АЦП к нужному формату, то фильтр будет работать с ним корректно. В моём проекте формат числа меняестя с помощью модуоя DC2-6 что бы далее это число могло проходить алгоритм обработки и сранвения. Но я не знаю какой нужен преоброзователь числа для вашего случая.
Да и сама затея применять вспогательный АЦП для подачи звука в ДСП - утопичская. Это очень шумные АЦП, мне пришлось ставить фильтр высокго порядка, что бы убрать шум из звуковой полосы, да и разрядов у АЦП всего 10, а с учётом занка будет всего 9. По этому, если вам нужен АЦП для подачи звука в адау1452, то нужно ставить внешний АЦП с I2S выходом. В противном случае толку не будет.
Screenshot_1.png
 

Zandy

1 ранг
Регистрация
30 Дек 2022
Сообщения
762
Реакции
955
Репутация
37
Страна
РФ
Город
Москва
Имя
Zandy
С форматами представления чисел я все прекрасно понимаю и понимаю как эти форматы преобразовывать..., но я не понимаю о чем вы говорите. Как-то все в одну кучу свалили. И не собираюсь я звуковой сигнал на вход измерительного АЦП подавать.
Попробую повторить свой вопрос иначе, тем более, что вы привели схему. Вопрос в правильности вашей схемы!
На вашей схеме сигнал с AUX_ADC подается на Nth Order Filter. Вот в чем вопрос. На мой взгляд этот фильтр корректно не работает с сигналом постоянного уровня.
Вы сами пишете:
Это очень шумные АЦП, мне пришлось ставить фильтр высокго порядка
И как этот фильтр работает по-вашему? Вы же сами говорите: Звуковой сигнал имеет целочисленный формат со знаком 32.0. Т. е. постоянная составляющая отсутствует. Сигнал же с AUX_ADC имеет тот же формат. Просто ему до знакового бита формата 32.0 не хватает кучи разрядов. Он же 10-битовый. Другими словами на выходе только постоянная положительная составляющая плюс шум наводок и шум квантования. О формате 8.24 с фиксированной точкой тут вообще речи и вопросов пока нет! Этот формат у вас появляется дальше для работы с индексами табличных массивов, таким образом ограничивая размер массива.
Теперь перечитайте мое предыдущее сообщение с моим вопросом.
______________________________
Хочу добавить. Включите перед и после фильтра блочок "DSP Readback". Он будет показывать совершенно разные, хотя и местами близкие числа. Т. е. вы просто не замечаете некорректности работы фильтра. Может конечно он что-то и фильтрует, но постоянную составляющую искажает. Причем это зависит от настроек фильтра.
 
Последнее редактирование:

uriy

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

И как этот фильтр работает по-вашему?
Вот реально я без понятия как там ДСП обрабатывает такое схемное соединение, я смотрел на результат т.е. на уровень шума на выходе ЦАПа.

Может конечно он что-то и фильтрует, но постоянную составляющую искажает.
Да, так и есть.
В моём случае мне нужно было получить регулировку громкости с помощью внешнего потенциометра. Я стянул чужой проект и взял из него регулировку громкости с помощью АЦП, и тут же я обнаружил что я поймал шум на выходе ЦАПа, шум который пролазил со входа АЦП, я просто вставил фильтр ВЧ и подогнал его параметры так, что бы избавится от шума, при этом кривая регулировки громкости заложена табличным методом, которую я подкорректировал на слух. У меня не было цели получить некую точную кривую регулировки громкости, так как это решение для моего случая вспомогательное, а не основное, я громкость регулирую на стороне источника звука используя 24 битовый поток.
 

Zandy

1 ранг
Регистрация
30 Дек 2022
Сообщения
762
Реакции
955
Репутация
37
Страна
РФ
Город
Москва
Имя
Zandy
У вас 65 уровней регулировки. Если бы вы задались 64-мя уровнями, можно было не делать всей этой трихомундии до Index Lookup Table, а сделать простой сдвиг вправо на 4 бита. Тем самым вы бы отсекли шум с амплитудой, не превышающей эти 4 бита.

Снимок.JPG

А чтобы подавить шумы наводок достаточно на входную ногу микрухи повесить керамику 1 мкФ. Но... Остаются шумы квантования, от которых никаким фильтром избавиться невозможно. Просто в диапазоне регулировки появляются пораженные точки, в которых эти шумы проявляются. Когда я делал цифровое управление громкостью на микроконтроллере, я в коде вводил цифровой гистерезис и это прекрасно работало. Как ввести гистерезис тут, я не знаю. И это еще один вопрос.
я громкость регулирую на стороне источника звука используя 24 битовый поток
Вот и третий вопрос. Я не знаю, как это все устроено, но... не кажется ли вам, что регулировка громкости в ADAU осуществляется с меньшими потерями. Ведь звук представлен не 24-мя, а 32-мя битами?
 

uriy

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

Я не знаю, как это все устроено, но... не кажется ли вам, что регулировка громкости в ADAU осуществляется с меньшими потерями. Ведь звук представлен не 24-мя, а 32-мя битами?
Я прям досконально эту тему не копал, но как я догадываюсь, десятая винда уже намного правильнее регулирует громкость чем 98 винда. По этому детские болезни 98 винды и дешёвых интегральных 16 битных ЦАПов, в десятке отсутствуют, так же цифровые проигрыватели уже давно побороли эту детскую болезнь. И по сути с цифровой стороны уже давно нет разнице где регулируется громкость, в адау или в винде. Я выставляю в проигрывателе музыки 24 информативных бит при 32 разрядном слове, а далее мне не важно, что, где, и как регулирует громкость и занимается увеличением разрядности 16 битного мр3 до 24 бит. Суть в том, что система мне даёт 24 информативных бита и адау их может принять. При уменьшении громкости на 15дБ поток данных потеряет менее трёх старших битов. Ну предположим система расширила 16 бит не до 24, а до 20+4 бита шума, ну и фиг по нему, в итоге на ЦАП при -15дБ приходит 17 реальных бит+4 бита шума, т.е. реальная потеря разрядности от исходного 16 битного файла стремится как бы к нулю, при этом гарантировано имеем чистый д/д в 17бит= 102дБ чего с головой хватает т.к. реальный д/д музыки редко когда превышает 40дБ, а чаще всего он 10дБ. Но тут опять же, мой силовой цап ограничен своим шумами силовой части, и если учесть уровень гармоник при 100Вт на выходе, то ENOB моего ЦАПа составляет не более 13 бит. И какой мне тут смысл гонятся за сверх точной регулировкой громкости? Хотя в моём случае, всё немного сложнее, но так или иначе, конкретно в моём случае, я не слышу разницы между регулировкой громкости в винде или в адау. Ну нету слышимой разницы, и всё.

Многие кстати забывают что д/д музыки ограничен шумами в комнате и громкостью на которой мы слушаем АС. И поиметь реальный д/д в 102дБ+шум комнаты, нереально на бытовых системах. Т.е. по факту мы редко когда слушаем музыку с реальным д/д в 40дБ. По этому, если даже просто подрезать разрядность в 24 битном потоке, то мы просто не можем услышать деградацию звука, как это было ранее в некоторых 16 битных ЦАПах начального уровня.

Тут следует учитывать то, что я веду речь именно о сквозном цифровом потоке данных который берётся в источнике и поступает в адау1452 без преобразования цифры в аналог, и обратно из аналога в цифру как это происходит для АДАУ1701. Я слышал что в адау1701 растёт уровень шума на выходах его ЦАПов если уменьшить в адау усиление канала. Я никогда не работал с 1701, и не знаю её подводных камней с её АЦП и ЦАПами. Так же, вроде в 1701 по слухам относительно плохой ASRC по сравнению с 1452, может мне при регулировке громкости помогает не нахвататься артефактов то, что в 1452 хороший ASRC и нет необходимости применять АЦП по входу и ЦАП по выходу из ДСП.
 
Регистрация
24 Янв 2023
Сообщения
268
Реакции
68
Репутация
7
Город
Ростовская обл.
Имя
Владимир
Периодически пытаюсь найти на просторах интернета хоть что то похожее на Equalizer APO, программа отлично подходит для организации ДСП кроссовера на базе звуковой карты ПК. и все четно, это направление к сожалению совсем не развивается.
 

Zandy

1 ранг
Регистрация
30 Дек 2022
Сообщения
762
Реакции
955
Репутация
37
Страна
РФ
Город
Москва
Имя
Zandy
Я слышал что в адау1701 растёт уровень шума на выходах его ЦАПов если уменьшить в адау усиление канала.
Это миф. Я работал. Начинал с него. Ноги растут из евалюшн борды производства ЧИП и ДИП. Я покупал такую. Потом выпаял процессор, а плату выкинул. Ужасная разводка п/п. Сделал нормальную разводку, шум пропал от слова абсолютно.

Так же, вроде в 1701 по слухам относительно плохой ASRC по сравнению с 1452
Так его там вообще нет!
 

Rimtotal

2 ранг
Регистрация
12 Сен 2022
Сообщения
648
Реакции
186
Репутация
20
Страна
Россия
Город
Калуга
Имя
Роман
Дефоника не подходит?
пробовал, пожалуй самая крутая прога из всех существующих.
НО на моей вин 10 (пиратка) дефоника к сожалению корректно работать не захотела.
автор проект забросил помоем в 2015 году.

Можно при помощи этого реализовать многоканальный кроссовер с индивидуальной настройкой каждого канала?
 

Ky3ne4ik

1 ранг
Регистрация
6 Янв 2020
Сообщения
1,214
Реакции
729
Репутация
55
Возраст
53
Страна
Россия
Город
Королёв
Имя
Станислав
Немного не тему. В фубаре для ПК были настройки реверберации. Можно было получить звучание 6.5 " НЧ "как у 15 дюймовых". С эффектом "перспективы_глубины сцены_3д". НО. Фильтр работал на всем диапазоне. И если для НЧ это суер_Гуд!, то для СЧ и тем более ВЧ -это неприемлемая каша. Четкого ТЗ сформулировать для разрабов Фубура я не смог, поэтому - просто поставил на подзвучку 15" динамики.
А так они бы нафик не нужны были- 12" легче и быстрее отрабатывают басы+до 1 кГц вытягивают влегкую. Оно вроде бы столько и не надо-но для гладкого пассивного фильтра это всегда плюс.
Так что перспективы дээспи есть - нужная реверберация на НЧ + многополосный фильтр, с перестраиваемой АЧХ. В т.ч. ФиНЧ-рокот_фильтр как у винила, для торможения хода диффузора вблизи резонансной и ниже.
 
Последнее редактирование:

Rimtotal

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

Zandy

1 ранг
Регистрация
30 Дек 2022
Сообщения
762
Реакции
955
Репутация
37
Страна
РФ
Город
Москва
Имя
Zandy
Zandy
В автомобильных так называемых головных устройствах (DSP), где реализован поканальный кроссовер, фильтры можно настраивать подключив голову к ПК, там в качестве DSP что используют, чипы от АДАУ или что то более серьезное?
Роман, к сожалению не могу вам ничего сказать. Не интересовался, какие там чипы используются. Да и вообще не интересовался автомобильными DSP. Мне хватает штатного звука. Но, думаю, что по многообразию функциональных узлов Sigma Studio переплюнет любой "железный" DSP, а уж тем более автомобильный. Конечно это накладывает определенные ограничения при эксплуатации, но для тех, кто любит поковыряться своими ручонками, не вникая глубоко в программирование, Sigma Studio это самое то!
 

uriy

2 ранг
Регистрация
22 Янв 2024
Сообщения
376
Реакции
319
Репутация
16
Страна
Ukraine
Как ввести гистерезис тут, я не знаю. И это еще один вопрос.
Нашёл я то сообщение, они использовали модуль Software Debonce который используется в сигма студио для устранения дребезга контактов, это не гистерезис, так что я не знаю, есть ли гистерезис в сигма студио.
スクリーンショット 2024-04-17 22.25.18(1).png


Схема выше не удовлетворила вопрошающего но мой вариант НЧ фильтра ему подошёл и он сделал такое включение.

Screenshot_7.png

Ковырялся сегодня с ЦАПом и решил проверить ваш вариант регулировки громкости в железе. Ниже результат. Скажу что такое происходит не на всём диапазоне регулировки громкости, а только в "узких" местах. Наверно можно заморочиться с числами в таблице, и учесть эти узкие места применив некое подобие "гистерезиса" на уровне таблицы. Но меня чёт это вообще не вдохновляет.
Screenshot_1.png

Ниже результат моего неправильного применения НЧ фильтра, на том же уровне громкости на потенциометре.

Screenshot_2.png

Гистерезис я не нашёл в сигма студио, но в целом понятно что для гашения шума с выхода АЦП для сохранения разрядности АЦП нужен не гистерезис, а интегратор с полосой среза выше 10Гц. Ну, а если хочется избавится вообще от всяких интеграторов и шума с АЦП, то можно применить валкодер и не морочить себе голову шумами со входа АЦП.
 
Последнее редактирование:
Регистрация
24 Янв 2023
Сообщения
268
Реакции
68
Репутация
7
Город
Ростовская обл.
Имя
Владимир
пробовал, пожалуй самая крутая прога из всех существующих.
НО на моей вин 10 (пиратка) дефоника к сожалению корректно работать не захотела.
автор проект забросил помоем в 2015 году.


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

Zandy

1 ранг
Регистрация
30 Дек 2022
Сообщения
762
Реакции
955
Репутация
37
Страна
РФ
Город
Москва
Имя
Zandy
они использовали модуль Software Debonce
Ну конечно, это программный устранитель дребезга контактов. Работает только с бинарными сигналами и с АЦП конечно работать не будет.
Ниже результат.
А это уже гораздо интереснее. Как спектр измеряли и чем?
а только в "узких" местах.
Я ранее писал о пораженных точках. Когда они возникают? Вот смотрите - два десятиразрядных числа:
0b1000000000 и 0b0111111111 Они отличаются на 1 в младшем бите. Мизер, правильно? Округляем оба числа до старшего разряда. Получаем 0b1000000000 и 0b0000000000. И они уже отличаются на 1 в старшем бите. А это уже огого! А мы всего лишь округлили числа. Понимаете? И интеграторы и фильтры тут не помогают. Да, они могут уменьшать количество пораженных точек, сводя их к минимуму, но не устраняют их совсем в силу специфики двоичного исчисления!

Тем не менее фильтр как-то работает. Да. Хоть некорректно, но как-то на пользу. Я тоже это заметил. Но после него тоже должны быть пораженные точки. И то, что мы их не чувствуем, может быть по двум причинам. Первая - за счет задержки в регулировке (а он должен ее давать, частота среза достаточно низкая). Ручку крутим туда-сюда, и все время их проскакиваем. Вторая - несовпадение этих точек с индексами переменных табличного массива.

Теперь про какой гистерезис я говорил... Смотрите объясняю алгоритм на пальцах. Допустим, зададимся гистерезисом в 4 единицы отсчета. Производим периодическое считывание АЦП с фиксированным периодом (поллинг). Объявляем переменную, в которой храним флаг знака регулировки. Сравниваем текущее значение АЦП с предыдущим. Если флаг положительный и текущее больше предыдущего, запоминаем текущее. Следущее текущее сравниваем с запомненным. Если оно больше и флаг положительный, записываем его в запомненное. И т. д. Если текущее меньше запомненного при положительном флаге, смотрим, насколько меньше. Если разница меньше гистерезиса - ничего не записываем. Смотрим следующий отсчет. Если опять меньше гистерезиса -опять ничего не делаем. И только если текущее становится меньше запомненного на величину гистерезиса или больше, записываем это значение и при этом перекидываем флаг знака регулировки в минус. Далее все тоже самое, только с изменеными знаками. Может сумбурно объяснил, но как-то так. В коде - проще! Немного похоже на способ устранения шумов квантования в старинных дельта или сигма-дельта модуляторах. Так называемое устранение шума незанятого канала. Сейчас такое наверное не применяется, наверное, но когда-то было актуально. Я когда-то занимался речевыми кодеками, но было это очень давно. Еще до вокодеров.
Можно привести механический аналог такого гистерезиса. Представьте себе обычный регулятор громкости, но ручка его имеет большой люфт, а у вас трясучка в руках (не про вас конечно, а чисто виртуально). Рука трясется (за рамки люфта трясучка не заходит) резистор стоит на месте. И только если осознанно начинам вращать, резистор крутится. Остановили. Резистор может еще повернуться чуть-чуть за счет тремора в руке. Но дальше будет работать люфт в ручке, защищающий резистор от поворота.

А вот спектрами вашими я очень заинтересовался! Очень странно, как регулировка может так влиять на спектр? Ну очень интересно! Конечно мы не знаем, на каком клоке работает эта управляющая билеберда. Или знаем? Наверняка в прерываниях по таймеру... Или под это у них там отдельное низкоскоростное ядро? Честно, я не изучал проц до такой степени. Чего изучать, если повлиять на все это все равно не можешь...

Времени, к сожалению, совершенно нет этим заниматься. А очень хочется.

Вот кусок кода гистерезиса:
C:
while (1)
    {      
    U_inst = 0;
    for (x=0;x<8;x++) U_inst += read_adc(0x01);
    U_inst = U_inst >> 4;        //Ïîëó÷àåì 7-áèòíîå ÷èñëî
    delta_u = U_inst - U_curr;
         
    if (Flag_direct == UP)
      {
       if (delta_u > 0)         // ðåãóëèðîâêà ââåðõ
          {
           U_curr = U_inst;
           MA12070P_write(0x40, U_curr); // ïåðåäà÷à óðîâíÿ ãðîìêîñòè
          }
         
       if (delta_u < -U_HIST)        // ðåãóëèðîâêà âíèç
          {
           Flag_direct = DOWN;
          }        
      }
    if (Flag_direct == DOWN)
      {
       if (delta_u < 0)         // ðåãóëèðîâêà âíèç
          {
           U_curr = U_inst;
           MA12070P_write(0x40, U_curr + U_HIST);   // ïåðåäà÷à óðîâíÿ ãðîìêîñòè
          }
       if (delta_u > U_HIST)    // ðåãóëèðîâêà ââåðõ  
          {
           Flag_direct = UP;
          }    
      }
Это для регулировки MA12070P по I2C. С русской кодировкой нелады, но я не стал править... Ну это так, для примера...
 

uriy

2 ранг
Регистрация
22 Янв 2024
Сообщения
376
Реакции
319
Репутация
16
Страна
Ukraine
Как спектр измеряли и чем?
Вас название железа интересует или название софта?

Я ранее писал о пораженных точках. Когда они возникают?
Ну я просто крутил потенциометр и смотрел на спектр, момент когда появляется шум я зафиксировал на фото. Этот шум есть в разных местах регулировки. Так же я обратил внимание, что внешние импульсные помехи вносят свою погоду т.е. можно стоять в зоне где спектр красивый, но есть однократные проскоки шума, в общем, без гистерезиса или интегратора ожидать стабильности не приходится. Тут ещё момент в том, что у меня этот потенциометр может быть перемещен на удлинителе на приличные расстояния, а усилитель у меня импульсный, да на 100Вт на канал, да таких канала три, фонит это дело хорошо т.е. защита от внешних помех должна быть железобетонная, и я покуда не вижу иного пути получить её, кроме как интегратор высокого порядка.

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


Теперь про какой гистерезис я говорил...
Я знаком с понятием гистерезиса и знаю его принцип действия, как не крути гистерезис требует некую слепую зону, которая в свою очередь будет зависеть от уровня шумов проникающих в АЦП и в дсп. Считаю это весьма сложной затеей т.к. интегратор не требует потерю разрядности на слепую зону и при этом позволяет получить приемлемый результат.
Я ранее писал о пораженных точках. Когда они возникают?
Я не уверен что это применимо к АЦП в АДАУ. В моём понимании в дсп приходит некое число и это число имеет шумовую составляющую т.е. каждый такт выборки, у нас просто разное число, а т.к. 10 разрядов это всего 1024 вариантов то в итоге не нужно иметь особо высокий уровень шума на входе АЦП, что бы получить проблему с влиянием этого шума на полезный 32 разрядный сигнал. Тут опять же прикол, шум этот хорошо видно на спектрограмме, но он порой находится ниже 10 разрядов т.к. мы числа преобразуем и умножаем. В целом не вижу причин копать эту тему так глубоко т.к. мой вариант мне подходит и не мешает.

Очень странно, как регулировка может так влиять на спектр?
Думаю тут следует учитывать то, что спектрометр имеет инерцию и он не может отображать мгновенное значение сигнала, т.е. к примеру мы резко изменили громкость с -15дБ до -10дБ и обратно до -15дБ но с неким нестабильным периодом, и спектрометр эту пакость размажет по частотке. Т.е. на выходе ЦАПа не то, что мы видим на спектрометре. Меня мало интересует что на выходе ЦАПа на самом деле, для меня само наличие неправильного отображение тонального сигнала, является критерием того, что некий принцип не стоит использовать, если есть желание поиметь стабильный результат.

Или знаем? Наверняка в прерываниях по таймеру...
По таймеру, в даташите есть значения счётчика для таймера, в целом так или иначе АЦП синхронизирован с основным клоком дсп, и вроде клок опроса АЦП 48кГц, там от частоты плл зависит.

Так или иначе, если для регулировки громкости с АЦП лезет шум, то его легко подавить интегратором и не залазить в глубины архитектуры дсп.
 

Zandy

1 ранг
Регистрация
30 Дек 2022
Сообщения
762
Реакции
955
Репутация
37
Страна
РФ
Город
Москва
Имя
Zandy
Вас название железа интересует или название софта?
"И то и другое, и можно без хлеба".
У меня ничего такого нет.
Да... моя следующая реализация будет только с энкодером!
 

uriy

2 ранг
Регистрация
22 Янв 2024
Сообщения
376
Реакции
319
Репутация
16
Страна
Ukraine
Винда дестяка.
Звуковая карта ASUS Xonar Essence STXII
Для согласования мостового выхода силового ЦАПа с несимметричным входом звуковой карты я собрал схему на ОУ которая преобразует симметричный сигнал в несимметричный. Собственно это согласование ограничивает меня по тем шумам, которые я могу увидеть.
Программа на которой мне удобно смотреть спектр "онлайн" - DSSF3.v5.0.8.x
Звук идёт на силовой ЦАП по оптике со звуковой карты.

Да... моя следующая реализация будет только с энкодером!
Я глубоко не копал это направление, вроде как недостатком энкодера можно считать отсутствие памяти, или в адау можно писать в еепром значение громкости с энкодера?
 

Zandy

1 ранг
Регистрация
30 Дек 2022
Сообщения
762
Реакции
955
Репутация
37
Страна
РФ
Город
Москва
Имя
Zandy
вроде как недостатком энкодера можно считать отсутствие памяти, или в адау можно писать в еепром значение громкости с энкодера?
Да конечно все элементарно записывается: состояние кнопок, состояние громкости с энкодером...
Меня напрягает немного другое. История такая. Кто покупал борду с 1452 в ЧИП и ДИП через какое-то время начинали жаловаться, что перестает работать еепром. Причем я читал это во многих местах, и на форуме ЧИП и ДИПа, и на др. форумах, и на ютубе жаловались. Что это? Непонятно. Никто это детально не исследовал и вразумительного ответа не дал. Я не покупал плату у ЧИПа с ДИПом, был уже научен горьким опытом. Заказал на алике небольшой мешочек процессоров ADAU1452 (они тогда еще были дешевые), а платки разводить мы и сами могем. И еще получше ЧИПа с ДИПом. Так вот у меня такого не было замечено. Сувал туда разные еепромки и все было нормально. Вообще-то у них громадный ресурс. Как то мы на работе проводили эксперимент. Записывали и считывали еепромку непрерывно (зараза, не помню с какой периодичностью, а это важно конечно). Ну с какой-то скоростью, близкой к максимальной. Проработала около 3 месяцев. Прикинули, раза в 4 превысила ресурс по даташиту. Не знаю, может ЧИПиДИПовцы закупили для своих плат какие-нибудь левые еепромки?
Но, тем не менее... Мы обычно работаем с еепромкой как... В процессе работы ничего в нее не пишем. Процессор всегда контролирует питание и на его питании сидят большие электролиты. Питается через диод шотки. Когда питание вырубается, процессор это фиксирует и входит в режим сохранения контента. Корректно завершаются все процедуры и происходит сохранение в еепромку. Заряда емкостей хватает для этого. Всего 1 раз за весь рабочий цикл! В SigmaStudio, я так понимаю, сохранение идет постоянно, по крайней мере при регулировке точно. Это немного смущает.

я собрал схему на ОУ которая преобразует симметричный сигнал в несимметричный.
У меня карта древнейшая E-MUшка, но имеет баллансный XLR вход. Тоже спектры измерял, но не так часто. Просто подумал, может у вас симулятор какой или в самой среде я что-то проглядел...
Ну спектры у вас очень хорошие!
 

uriy

2 ранг
Регистрация
22 Янв 2024
Сообщения
376
Реакции
319
Репутация
16
Страна
Ukraine
Что это? Непонятно. Никто это детально не исследовал и вразумительного ответа не дал.
Да есть такое наблюдение. И ни где нету точного ответа. У меня тоже пару раз на паре плат вылетала еепром, я грешу на заводской брак еепром. Хотя ваша версия что адау в еепром чёт пишет без спросу, хороша, нужно глянуть на шине данных, общается адау с еепром без спросу или не общается.

Ну спектры у вас очень хорошие!
Пришлось немного помудохаться с платой согласования, тем более у меня на ней ещё усиление можно регулировать, что порой доставляет неудобства, но зато можно использовать больший д/д АЦП звуковухи при разной мощности на выходе ЦАПа.

Да конечно все элементарно записывается:
Тогда да, валкодер это лучше чем вспомогательный АЦП, в плане предотвращения попадания внешнего шума в полезный сигнал.
 

Rimtotal

2 ранг
Регистрация
12 Сен 2022
Сообщения
648
Реакции
186
Репутация
20
Страна
Россия
Город
Калуга
Имя
Роман
есть возможность использовать этот фильтр как плагин для Equalizer APO
Equalizer APO такая уникальная прога что она может использовать профессиональные (дорогие буржуйские звукорижесерский) VST/VST2 плагины.
НО годы идут а у АРО есть один большой минус и делать что то с этим не делают.
Режим ASIO или WASAPI, использовать нельзя!!
 

Zandy

1 ранг
Регистрация
30 Дек 2022
Сообщения
762
Реакции
955
Репутация
37
Страна
РФ
Город
Москва
Имя
Zandy
у АРО есть один большой минус и делать что то с этим не делают.
Режим ASIO или WASAPI, использовать нельзя!!
А вы что, хотели бы "свадьбу без невесты"? _hm_
____________________
Юрий, я кажется понял, как сделать нечто похожее на гистерезис. Сейчас поздно, попробую завтра сформулировать.
 

Zandy

1 ранг
Регистрация
30 Дек 2022
Сообщения
762
Реакции
955
Репутация
37
Страна
РФ
Город
Москва
Имя
Zandy
Юрий, я кажется понял, как сделать нечто похожее на гистерезис. Сейчас поздно, попробую завтра сформулировать.
Я знаком с понятием гистерезиса и знаю его принцип действия, как не крути гистерезис требует некую слепую зону, которая в свою очередь будет зависеть от уровня шумов проникающих в АЦП и в дсп. Считаю это весьма сложной затеей

Блин, совершенно нет времени. Работа, дача, родственники, дети, внуки и т. д. и т. п.
Поэтому то самое "завтра" переносится на "сегодня".
И тем не менее, затея оказалась совсем не сложной. Так что... Эврика! Свершилось!
Вот рабочая схема обработки сигнала с ЦАПа с помощью гистерезиса.
Гистерезис2.jpg

Гистерезис задается блоком Tol1. Блок Hold1 защелкивает значение ЦАПа, если разность защелкнутого и текущего значения не превышает величину гистерезиса. И только, при превышении гистерезиса происходит разблокировка защелки и записывается новое состояние ЦАПа. Блок Fb1 организует задержку на 1 сэмпл и создает возможность защелкивать Hold1. Блок ZeroComp1 тупо инвертирует логическое состояние, обеспечивая нужный знак для защелкивания.
Можете понаблюдать. Показания ReadBack1_3 постоянно дергаются (у меня в пределах 1-2 единиц, это еще конденсатор стоит, как я писал). А показания ReadBack1_5 стоят мертво, не шелохнутся! И только при вращении ручки переменника показания меняются. Гистерезис можно менять в окнах блока Tol1. Не знаю, может быть гистерезис лучше поставить после Shift1? Может сделать сдвиг на 2, потом гистерезис, потом еще сдвиг на 2? Может и сам гистерезис как-нибудь улучшить? Это на ваш суд.
Юрий, у меня к вам большая просьба, тем более вы сами вроде тоже заинтересованное лицо, покритиковать данную схему на предмет модернизации и проверить ее на чистоту спектра, как вы это делали прошлый раз. Мне просто с измерением спектров сейчас возиться, ну совсем не с руки, а у вас вроде это дело "на мази"...
 

uriy

2 ранг
Регистрация
22 Янв 2024
Сообщения
376
Реакции
319
Репутация
16
Страна
Ukraine
и проверить ее на чистоту спектра
Завтра если свет не выключат проверю.

Сегодня игрался с валкодером. Там оказывается есть три вида записи в еепром на выбор - периодическое, по изменению значения, и по сигналу с порта. В общем боятся за еепром не стоит. Правда я так и не смог заставить дсп запомнить значения валкодера. Хотя сигнал на запись из дсп в еепром выдаётся.
 
Последнее редактирование:

uriy

2 ранг
Регистрация
22 Янв 2024
Сообщения
376
Реакции
319
Репутация
16
Страна
Ukraine
Проверил я вашу схему. Работает с маленьким изменением, мне пришлось сдвиг разрядов переместить на вход схемы, в моём случае у меня RC цепочка 1кОм/100нФ на входе АЦП и у меня на выходе АЦП дребезжат три младших разряда в 8,24 исчислении, по этому были прострелы на выход. Если разряды подрезать с самого начала, то прострелы отсутствую на всём диапазоне регулировки громкости. Собственно блоки ReadBack достаточно чётко показывают когда есть проблема т.е. если вы видите в свей схеме стабильные показания блока ReadBack перед таблицей уровней громкости, значит у вас всё хорошо и на выходе.
Ваша схема достаточно хорошо справляется с шумом при значениях в -1/1 в блоке Tol1, плюсом такого подхода можно считать хорошую отзывчивость, т.е. нету ощутимой задержки в изменении уровня громкости на выходе, как в моём варианте.
Схема немного контр интуитивна для простого прохожего, но в целом она лучше выполняет своё назначение чем просто интегратор на выходе АЦП.
Пожалуй возьму её в оборот в следующих своих проектах.

Гистирезис.png
Гистирезис2.png
 

Zandy

1 ранг
Регистрация
30 Дек 2022
Сообщения
762
Реакции
955
Репутация
37
Страна
РФ
Город
Москва
Имя
Zandy
Юрий, спасибо за проверку.
А у меня тут родилась новая идея, пока только в голове (во время обеда). Попробую воплотить ее в схему вечерком, если время будет.
 

Freepainter

3 ранг
Новый
Регистрация
11 Авг 2024
Сообщения
10
Реакции
3
Репутация
2
Страна
Ukraine
Город
Kyiv
Equalizer APO такая уникальная прога что она может использовать профессиональные (дорогие буржуйские звукорижесерский) VST/VST2 плагины.
НО годы идут а у АРО есть один большой минус и делать что то с этим не делают.
Режим ASIO или WASAPI, использовать нельзя!!
Да кажись можно, есть два независимых проекта по коммутации при помощи ВАК (виртуальный аудио кабель). В одном проекте точно указана возможность через ASIO...
P.S.: вот одну ссылку нашел https://vac.muzychenko.net/en/
 
Последнее редактирование:

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

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