Страница 1 из 3 123 Последняя
Показано с 1 по 20 из 42

Тема: Калибровка линейности ЦАП и АЦП

  1. #1
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,224

    По умолчанию Калибровка линейности ЦАП и АЦП

    Предлагаю ветку для обсуждения вопросов повышения линейности преобразователей с помощью дополнительной калибровки.
    В первую очередь данный вопрос актуален конечно же для параллельных преобразователей, но и ДС приборы также имеют потенциал для улучшения линейности. И если для первых корректировать нужно DNL и INL, то для вторых достаточно только скорректировать INL.
    Для затравки приведу несколько примеров:

    Многие параллельные ЦАП имеют специальные выводы для подключения внешних подстроечных потенциометров, однако они, как правило исправляют нелинейность только на середине шкалы (исключение только PCM58/PCM1701). В то же время, интегральные конвертеры, как правило, обладают достаточно высокой стабильностью для получения точности много выше их исходной разрядности. Пример использования конверторов невысокой разрядности для построения ЦАП высокого разрешения я предложил еще в ветке: https://forum.vegalab.ru/showthread.php?t=67739
    Однако из-за сложности предложенного метода калибровки такая схемотехника не нашла популярности у любителей.
    Для ЦАП с двоичной матрицей преобразования (типа TDA1541) я придумал более простой способ калибровки:

    Аналоговая подстройка линейности параллельных ЦАП с двоично-весовой матрицей

    Нажмите на изображение для увеличения. 

Название:	R2R_DAC_analog_trim.png 
Просмотров:	203 
Размер:	35.2 Кб 
ID:	412903
    [свернуть]

    Такой метод требует по одному потенциометру на каждый бит, по аналогии с подстройкой в PCM58. Эту же схемотехнику можно применить и для PCM58. Например: если нужно подстроить не только старшие 4 бита, но и еще несколько младших.
    Подстройка двоичный весов - процедура достаточно простая (исправляет одновременно DNL и INL) и позволяет вывести линейность ЦАП вплоть до ограничения по тепловой стабильности: Инструкция калибровки.pdf

    Однако, многие ЦАПы имеют сегментированную структуру старших разрядов с кол-вом сегментов обычно 8..16. Такое кол-во потенциометров уже не рационально.
    Подстройку линейности в таком случае можно выполнять либо с помощью дополнительного калибровочного ЦАП. Либо, как предложил Сергей Агеев - суммируя погрешности в шум ноизшейпера. При этом, процедура калибровки для параллельного конвертера не всегда ограничивается сшивкой сегментов по DNL погрешности. А иногда разбивается на две процедуры: исправление DNL, и последующее исправление INL.

    С ДС конвертерами ситуация иная: у них практически отсутствуют DNL погрешности, и калибровать нужно только INL.
    Для примера можно рассмотреть INL ДС АЦП:

    Графики INL для AD7760

    Нажмите на изображение для увеличения. 

Название:	AD7760_INL.png 
Просмотров:	118 
Размер:	118.1 Кб 
ID:	412902
    [свернуть]

    Суть калибровки в таком случае сводится к искривлению ХП (хар-ки преобразования) конвертера таким образом, чтобы скомпенсировать кривую INL. Если нелинейность гладкая, то ее можно исправлять линейной интерполяцией по нескольким точкам. Но в случае более кривой INL арифметика усложняется.
    И в любом случае калибровка INL получается сложнее, т.к. в данной процедуре нет очевидных разрывов ф-ии, которые видны на осциллограмме. Исправлять INL можно либо анализируя спектр, либо автоматизировав процедуру с помощью прецизионного измерительного АЦП.

    В заключение отмечу, что вопросы калибровки интересны не только в любительской сфере, но и в коммерческой, т.к. калибровка позволяют на любом, самом дешманском чипе сделать ультралинейный девайс.

    Тематическая литература:
    Вложения Вложения
    Последний раз редактировалось dortonyan; 03.01.2022 в 22:15.

  2. #2
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    61
    Сообщений
    36,234

    По умолчанию Re: Калибровка линейности ЦАП и АЦП

    Цитата Сообщение от dortonyan Посмотреть сообщение
    т.к. калибровка позволяют на любом, самом дешманском чипе сделать ультралинейный девайс.
    Да, вопрос только еще в результате не только по приборам. Например ту компенсцию THD что есть в ЦАПах от ESS, многие предпочитают отключать (если есть такая возможность), т.к. результат "на слух" все-же важнее места в известном рейтинге от Амира.



    Цитата Сообщение от dortonyan Посмотреть сообщение
    Суть калибровки в таком случае сводится к искривлению ХП (хар-ки преобразования) конвертера таким образом, чтобы скомпенсировать кривую INL. Если нелинейность гладкая, то ее можно исправлять линейной интерполяцией по нескольким точкам.
    Если сигнал (цифра) проходит МК/ФПГА, и считать полиномы некогда а память еще есть, мне кажется самое простое - через LUT делать суммирование. Типа такого:
    int8_t LUT[n];
    ...
    Dout = Din + LUT[Din];

    Для 16-битных данных это всего 64 килобайта таблица. 8 бит коррекции даже с избытком. Если хватит 4-х, то таблица будет вдвое короче, ценой еще пары быстрых операций, типа выборки соотв. нибла и сдвига).
    Для более высокоразрядных ЦАПов - я еще не пробовал, но не уверен что надо делать таблицу на все 2^bit, может достаточно использовать только 16 старших.
    (на самом деле, я не уверен что более высокоразрядным это вообще надо....)
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Ну что, можете меняться обратно."(с)типа анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  3. #3
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,224

    По умолчанию Re: Калибровка линейности ЦАП и АЦП

    Цитата Сообщение от Alex Посмотреть сообщение
    Да, вопрос только еще в результате не только по приборам. Например ту компенсцию THD что есть в ЦАПах от ESS, многие предпочитают отключать (если есть такая возможность), т.к. результат "на слух" все-же важнее места в известном рейтинге от Амира.
    Может это из-за калибровки под одну частоту?

    Цитата Сообщение от Alex Посмотреть сообщение
    Если сигнал (цифра) проходит МК/ФПГА, и считать полиномы некогда а память еще есть, мне кажется самое простое - через LUT делать суммирование. Типа такого:
    int8_t LUT[n];
    ...
    Dout = Din + LUT[Din];

    Для 16-битных данных это всего 64 килобайта таблица. 8 бит коррекции даже с избытком. Если хватит 4-х, то таблица будет вдвое короче, ценой еще пары быстрых операций, типа выборки соотв. нибла и сдвига).
    Для более высокоразрядных ЦАПов - я еще не пробовал, но не уверен что надо делать таблицу на все 2^bit, может достаточно использовать только 16 старших.
    (на самом деле, я не уверен что более высокоразрядным это вообще надо....)
    Мне кажется, что в любом случае не нужно делать LUT на всю разрядность. По крайней мере для случаев, когда спектр искажений "мягкий", т.е. первые 2..3 гармоники. Тогда можно попробовать сделать скажем 32 или 64 точки, а промежуточные значения считать линейной интерполяцией. Я еще не прикидывал, но вроде такая арифметика должна быть не сильно сложная.

    Мне большей проблемой видится проблема самого процесса калибровки. Для того чтобы сделать таблицу LUT (даже на 32 точки) нужно же сначала замерить нелинейности. Ну или пробовать вручную итерационным способом подгонять: повышая амплитуду и смещая точки таблицы туда-сюда, контролируя спектр искажений.

    ---------- Сообщение добавлено 21:32 ---------- Предыдущее сообщение было 19:16 ----------

    P.S.
    Кстати, по поводу подстройки линейности параллельных ЦАП.
    Для ЦАП-ов analog devices предложенная схема в заглавном посте не годится, т.к. у них старшие разряды сегментированы. А вот для ЦАП-ов от техаса, типа PCM56, PCM1700/63/1702/1704 и т.п. - по поводу сегментации в ДШ не упоминается. Если там использована архитектура по аналогии с PCM58, то все эти конвертеры можно откалибровать потенциометрами до идеальной точности.
    Предлагаю владельцам устройств на ЦАПах от техаса поделиться замерами распределения DNL по шкале (на трианглах, как в инструкции в заглавном посте), по которым можно будет определить структуру токовых делителей ЦАП. Если что - сигналы для замеров я сделаю.

  4. #4
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    61
    Сообщений
    36,234

    По умолчанию Re: Калибровка линейности ЦАП и АЦП

    Цитата Сообщение от dortonyan Посмотреть сообщение
    Может это из-за калибровки под одну частоту?
    Ну я не знаю как другие, а я настраиваю по 3-м частотам, а потом беру среднее значение коэффициентов (в ESS их два - на 2-ю и 3-. гармоники), причем у меня они запоминаются раздельно для синхронного(USB) и асинхронного (SPDIF/Toslink) режимов.



    Цитата Сообщение от dortonyan Посмотреть сообщение
    Тогда можно попробовать сделать скажем 32 или 64 точки, а промежуточные значения считать линейной интерполяцией. Я еще не прикидывал, но вроде такая арифметика должна быть не сильно сложная.
    Если на МК, то на хайрезе может не успеть считать, тут надо шибко шустрый ставить. А выделить 64К (а то и больше), как правило не проблема.

    Цитата Сообщение от dortonyan Посмотреть сообщение
    Мне большей проблемой видится проблема самого процесса калибровки. Для того чтобы сделать таблицу LUT (даже на 32 точки) нужно же сначала замерить нелинейности. Ну или пробовать вручную итерационным способом подгонять: повышая амплитуду и смещая точки таблицы туда-сюда, контролируя спектр искажений.
    Ну вобщем, для ESS оно так и делается - смотришь на спектр, меняешь по очереди коэффициенты для 2-й и 3-й гармоник.
    Как правило эти коэффициенты для раных экземплятров одной и той-же платы не сильно отличаются, так что моно дефолтные прошить сразу, чтобы потом быстрее было. Можно конечно все это и автоматизировать, но это имеет смысл для намного больших тиражей чем у меня.
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Ну что, можете меняться обратно."(с)типа анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  5. #5
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,224

    По умолчанию Re: Калибровка линейности ЦАП и АЦП

    Цитата Сообщение от Alex Посмотреть сообщение
    Ну я не знаю как другие, а я настраиваю по 3-м частотам, а потом беру среднее значение коэффициентов (в ESS их два - на 2-ю и 3-. гармоники), причем у меня они запоминаются раздельно для синхронного(USB) и асинхронного (SPDIF/Toslink) режимов.
    Странно, что при этом кто-то слышит разницу. Может там имеет место самовнушение или какой-то интерес?

    Цитата Сообщение от Alex Посмотреть сообщение
    Если на МК, то на хайрезе может не успеть считать, тут надо шибко шустрый ставить. А выделить 64К (а то и больше), как правило не проблема.
    Я исхожу из расчета, что все равно нужно обеспечивать поддержку хайреза. А на 24бита на все отсчеты LUT не сделаешь.

    Цитата Сообщение от Alex Посмотреть сообщение
    Ну вобщем, для ESS оно так и делается - смотришь на спектр, меняешь по очереди коэффициенты для 2-й и 3-й гармоник.
    Как правило эти коэффициенты для раных экземплятров одной и той-же платы не сильно отличаются, так что моно дефолтные прошить сразу, чтобы потом быстрее было. Можно конечно все это и автоматизировать, но это имеет смысл для намного больших тиражей чем у меня.
    Понятно. Я думал что это через какое-то приложение автоматизировано. Значит не один я такой фигней занимаюсь (имею ввиду свои ЦАПы на индустриальных ИМС). ))

  6. #6
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    61
    Сообщений
    36,234

    По умолчанию Re: Калибровка линейности ЦАП и АЦП

    Цитата Сообщение от dortonyan Посмотреть сообщение
    Я исхожу из расчета, что все равно нужно обеспечивать поддержку хайреза. А на 24бита на все отсчеты LUT не сделаешь.
    Конечно, но я под "хайрезом" имел ввиду не столько разрядность, сколько семплрейт.
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Ну что, можете меняться обратно."(с)типа анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  7. #7

    По умолчанию Re: Калибровка линейности ЦАП и АЦП

    а я хотел бы автоматизировать, например встроить в ффт софт, чтоб в один клип минимизировать 2ю и 3ю, 5я всегда ниже -140дб у 9822, так что вроде не нужна.
    Импульсно всё, в этом мире бушующем..

  8. #8
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,224

    По умолчанию Re: Калибровка линейности ЦАП и АЦП

    Цитата Сообщение от Alex Посмотреть сообщение
    Конечно, но я под "хайрезом" имел ввиду не столько разрядность, сколько семплрейт.
    Я понял.
    В общем и целом - согласен, в таблицу можно делать для старших 16 разрядов. Это значит, что правка будет отсутствовать только для сигналов, амплитудой ниже -96дБ, но на таких уровнях гармоник и так нету.

    Цитата Сообщение от IVX Посмотреть сообщение
    а я хотел бы автоматизировать, например встроить в ффт софт, чтоб в один клип минимизировать 2ю и 3ю, 5я всегда ниже -140дб у 9822, так что вроде не нужна.
    Хорошо бы вообще сделать какую-нить универсальную систему калибровки, чтобы можно было ровнять любой ЦАП и АЦП.

    Alex, IVX, а как вообще построена арифметика LUT в 9822? Я в своих ЦАП калибровку подбирал руками, ноу меня точек было немного (пара десятков). А для LUT надо куча точек. Или там встроенная арифметика полинома по нескольким точкам?

    P.S.
    Добавил в заглавный пост литературу по калибровке.

  9. #9
    Завсегдатай Аватар для SergioT
    Регистрация
    02.12.2004
    Адрес
    Сан-Марино
    Сообщений
    1,458

    По умолчанию Re: Калибровка линейности ЦАП и АЦП

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

  10. #10
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,224

    По умолчанию Re: Калибровка линейности ЦАП и АЦП

    SergioT, отлично! Сигналы позже выложу.

  11. #11

    По умолчанию Re: Калибровка линейности ЦАП и АЦП

    у ESS LUT 64 точки, причём только у 9822 и прочих новых ацп его сделали доступным юзеру. Вы почитайте на diyaudio.com есть ветка про компенсацию, там один мужчина, утверждает что сделал чудо и всё куда универсальнее, чем с LUT, якобы у него правятся все частоты и уровни разом. Я не вникал, некогда, имхо, если бы это было серьёзно так, без красивых преувеличений, то мужчина просто звонком в техас, или ади изменил бы свою жизнь к лучшему уже завтра. Да и его представление о LUT компенсации резко расходится с реальностью, он там увещевал нас будто LUT много не выправит и уже на 2кгц всё разъедется, против калибровки на 1к, что чепуха точно. Вот по этой причине я и не стал вчитываться в его обещания чуда, да и сам подумайте, что он такого мог предложить, если разным частотам нужна разная компенсация, как бы он сделал бесшовный переход без ффт анализа, или по дифференцированию в рил тайм, ну как? Будет нечем заняться, почитаю, а пока его обещания смахивают на обещания доказательства будто 2+2 = 2.
    Импульсно всё, в этом мире бушующем..

  12. #12
    Забанен (навсегда) Аватар для Эзотехник
    Регистрация
    10.10.2004
    Адрес
    Ru
    Сообщений
    1,294

    По умолчанию Re: Калибровка линейности ЦАП и АЦП

    Цитата Сообщение от IVX Посмотреть сообщение
    чтоб в один клип минимизировать 2ю и 3ю, 5я всегда ниже -140дб у 9822, так что вроде не нужна.
    Про алиасинг и временнУю область продаванцы килонулей искажений забыли, а там звон с предзвоном и ещё неизвестно что творится.
    Почему-то АЦП Lavry Gold Savitr на ES9822 без глючных и грязных по помехам USB приблуд на борту не может точно передать даже старшие 60 дБ сигнала в аналоговой петле.
    Не всё голд, где THD<-120 дБ на 1 кГц синусе.

    "Lavry Quintessence DA-N5 ---> Lavry AD 24-200 Savitr as master (Mikathechou): 0.0 dB (L), 0.0 dB (R), -55.8 dBFS (L), -57.1 dBFS (R)"

    И 10 разрядов "битперфектности" нет, какой ты нафиг таксист же это хайфай?

  13. #13
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    61
    Сообщений
    36,234

    По умолчанию Re: Калибровка линейности ЦАП и АЦП

    Цитата Сообщение от IVX Посмотреть сообщение
    если бы это было серьёзно так, без красивых преувеличений, то мужчина просто звонком в техас, или ади изменил бы свою жизнь к лучшему уже завтра.
    Я в этом не уверен - он-же в компе это сделал, а у компа мегабайтов и мегагерцов намного больше, чем тексас или ади могут засунуть себе в миросхему.
    Крмое того, и те и другие на хи-фи аудио давно положили большой и толстый.
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Ну что, можете меняться обратно."(с)типа анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  14. #14

    По умолчанию Re: Калибровка линейности ЦАП и АЦП

    ты следишь за той веткой?
    Импульсно всё, в этом мире бушующем..

  15. #15
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    61
    Сообщений
    36,234

    По умолчанию Re: Калибровка линейности ЦАП и АЦП

    Давно перестал.
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Ну что, можете меняться обратно."(с)типа анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  16. #16

    По умолчанию Re: Калибровка линейности ЦАП и АЦП

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

  17. #17
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,224

    По умолчанию Re: Калибровка линейности ЦАП и АЦП

    SergioT, вот обещанные сигналы: triangle_22Hz_-76db_off16.rar
    Это трианглы, частотой 22Гц, амплитудой -76дБ (как в инструкции). Сигналы делят шкалу на 16 частей, т.е. сигналы сдвину по постоянке друг от друга на 1/16 шкалы. Таким образом, середины трианглов попадают на участки с максимальной диф. нелинейностью. Нужно для каждого ЦАП сделать замеры на всех сигналах с фиксацией уровня и знака нелинейности. Дизеринг при замерах желательно отключать.
    PCM58 мерить не нужно, для него точно известно, что матрица двоичная. Для его калибровки нужны другие сигналы (с двоичными сдвигами). Если надо - сделаю и для него.

    Цитата Сообщение от IVX Посмотреть сообщение
    у ESS LUT 64 точки, причём только у 9822 и прочих новых ацп его сделали доступным юзеру. Вы почитайте на diyaudio.com есть ветка про компенсацию, там один мужчина, утверждает что сделал чудо и всё куда универсальнее, чем с LUT, якобы у него правятся все частоты и уровни разом. Я не вникал, некогда, имхо, если бы это было серьёзно так, без красивых преувеличений, то мужчина просто звонком в техас, или ади изменил бы свою жизнь к лучшему уже завтра. Да и его представление о LUT компенсации резко расходится с реальностью, он там увещевал нас будто LUT много не выправит и уже на 2кгц всё разъедется, против калибровки на 1к, что чепуха точно. Вот по этой причине я и не стал вчитываться в его обещания чуда, да и сам подумайте, что он такого мог предложить, если разным частотам нужна разная компенсация, как бы он сделал бесшовный переход без ффт анализа, или по дифференцированию в рил тайм, ну как? Будет нечем заняться, почитаю, а пока его обещания смахивают на обещания доказательства будто 2+2 = 2.
    Спасибо за наводку, ознакомлюсь.
    А что вас так смущает в утверждении про универсальную калибровку? Это же то же самое, что и LUT. Т.е. смысл линеаризации - выровнять ХП АЦП. А вычитание гармоник - это просто один из способов выравнивания INL.
    В заглавном посте приведена кривая INL АЦП. Так вот, теоретически можно эту INL выровнять в идеальную прямую, тогда для всех частот линейность будет идеальная.
    Другое дело, что из-за частото-зависимых искажений АЦП калибровка на одной частоте будет более точной, чем для всего диапазона частот.

  18. #18

    По умолчанию Re: Калибровка линейности ЦАП и АЦП

    А там что, разве про вычитание гармоник? LUT это и есть зеркальное отображение нелинейности ацп, проблема в том, искажения не совсем одинаковые на нч/вч, отсюда разный результат на 1к и 10к. Тот дядька утверждает, что своей чудо-компенсацией, он эту проблему решил и на всех частотах компенсировано по-красоте. Сомневаюсь. Кстати, вот рекомендованный подход ЕСС, предлагает линейное затухание компенсации c уровнем сигнала, между тем на -20дбфс или около гармоники внезапнов просыпаются и начинают торчать под -140дбфс, т.е. THD подскакивает до -120дб. Не уверен, что смогу с аккуратностью изменить таблицу, чтобы к -20дбфс поменялся коэффициент, поскольку +/32 уровня, это не то, что нужно в такой ситуации, но попробовать можно. Было бы там 500-1000 точек..
    Импульсно всё, в этом мире бушующем..

  19. #19
    Завсегдатай
    Автор темы
    Аватар для dortonyan
    Регистрация
    03.06.2009
    Адрес
    BLR
    Возраст
    38
    Сообщений
    3,224

    По умолчанию Re: Калибровка линейности ЦАП и АЦП

    Цитата Сообщение от IVX Посмотреть сообщение
    LUT это и есть зеркальное отображение нелинейности ацп, проблема в том, искажения не совсем одинаковые на нч/вч, отсюда разный результат на 1к и 10к. Тот дядька утверждает, что своей чудо-компенсацией, он эту проблему решил и на всех частотах компенсировано по-красоте. Сомневаюсь.
    Понятно. В таком ключе согласен - сомнительно.

  20. #20
    Забанен (навсегда) Аватар для Эзотехник
    Регистрация
    10.10.2004
    Адрес
    Ru
    Сообщений
    1,294

    По умолчанию Re: Калибровка линейности ЦАП и АЦП

    Цитата Сообщение от dortonyan Посмотреть сообщение
    PCM58 мерить не нужно, для него точно известно, что матрица двоичная.
    А как же глитчи?

Страница 1 из 3 123 Последняя

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •