Приветствую Вас Гость | RSS

Symmcat lair



the self-inflicted state of mind



Вторник, 26.11.2024, 19:59
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Про Котельникова, Найквиста и ЦАПы
SymmcatДата: Вторник, 05.08.2014, 11:43 | Сообщение # 1
Jack of all trades
Группа: Администраторы
Сообщений: 61
Репутация: 0
Статус: Offline
Введение.

Так сложилось, что тема цифро-аналогового равно как и аналогово-цифрового преобразований освещается в популярной литературе достаточно редко. Связано это как с её синергетической природой, так и отсутствием реальной потребности. В конце концов, для потребителей есть куча мифов и легенд, а инженеры популярную литературу и не читают, кроме как с целью посмеяться. Умножаем это на примат экономической эффективности и видим, что половина коммерческих конструкций скомпилирована из даташитных схем и маркетинговых требований на наличие всяческой аудиофильской ботвы. Другая - вообще сон разума настолько глубокий, что звукотехническая версия Die Traumdeutung была-бы толще БСЭ. Плюс куча совершенно фееричных заблуждений, бытующих в среде вполне грамотных в других вопросах инженеров. И куча вопросов, соответственно.

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

Оглавление:
1. Теорема Котельникова
2. Мультибитные ЦАП
3. Фильтры, шум квантования и оверсэмплинг
5. ΣΔ
...


To be continued...
 
SymmcatДата: Вторник, 05.08.2014, 14:26 | Сообщение # 2
Jack of all trades
Группа: Администраторы
Сообщений: 61
Репутация: 0
Статус: Offline
1. Теорема Котельникова.

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

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

Проще говоря, для диапазона слышимых звуков 20Гц-20кГц выбирается с некоторым запасом верхняя граница спектра (например 22,1кГц), умножается на два и получается необходимая частота дискретизации. Для компакт-диска она составляет 44,1кГц, для DVD-A - 48 или 96кГц (есть еще 192кГц, но его поддерживает очень мало студийных средств обработки, выводы делайте сами).

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

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

Еще один, не вполне очевидный для многих момент заключается в том, что восстановленная функция является гладкой, то-есть получающийся сигнал меняется не дискретно, и получить относительный уровень 5.5 бит или 3,1415 бит не представляет никаких проблем. Будет, конечно, разница в линейности - но и она будет определяться не только разрядностью, но и частотой дискретизации.

Кстати, увеличивая частоту можно не меняя линейность уменьшать разрядность. Или не меняя разрядность, повышать линейность - принцип тот-же, что и с ООС, но до этого мы еще дойдем.
 
SymmcatДата: Среда, 13.08.2014, 13:55 | Сообщение # 3
Jack of all trades
Группа: Администраторы
Сообщений: 61
Репутация: 0
Статус: Offline
2. Мультибитные ЦАП.

Исторически были первыми и представляли просто несколько ключей, котрые переключали обычный линейный массив резисторов. Фактически, каждому сочетанию бит соответствовало свое предопределенное значение выходного постоянного тока, оттуда и название. При увеличении разрядности, линейный массив заменили на R-2R матрицу в виде той самой лестницы. Теперь значения выходного тока хоть и формировались также “готовыми ступеньками”, но каждая образовывались уже комбинацией нескольких резисторов. Причина очевидна: чем меньше разнообразие значений элементов, тем проще добиться как абсолютной, так и относительной точности (закон больших чисел).

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

Есть, однако и недостатки: очень высокая стоимость производства из-за объединения на одном кристалле сложно совместимых техпроцессов, невозможность обеспечения идеального равенства “ступенек”, на малом сигнале ведущая к заметной дифференциальной нелинейности (применительно к аудио это выражается как “масштабность и массивность” звучания, суть неразличимость некоторых тихих звуков и тонких нюансов). Еще одна проблема - высокий глитч у подавляющего большинства ЦАП. Причем, если при разработке аудио ЦАП предпринимались различные меры по его подавлению, то в промавтоматике это совершенно не критично, поэтому использовать подавляющее большинство промышленных ЦАП для воспроизведения непрерывных сигналов обычно гораздо сложнее (доходило до того, что в прецизионных генераторах сигналов применялись PCM58 и AD1862). Еще один достаточно значимый недостаток - чувствительность к механическим и термическим напряжениям.

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

Идея была гениальная, но развития увы не получила, ибо для промышленных применений важнее точность на постоянном токе, низкий шум и энергопотребление, которые обеспечивали лестничные ЦАП. А для высоколинейных генераторов сигналов оказалось проще провести предварительную индивидуальную калибровку с последующей программной коррекцией (это решение и в аудио использовалось, Lavry Gold тому пример). Осталось только аудио и прочие сигналы, которым не нужна абсолютная точность. Но когда DEM-DAC вытолкнули в эту нишу, было уже поздно, технический прогресс и повышение быстродействия логических схем, уже сделали возможной реализацию в кремнии дельта-сигма преобразования.

Еще одной опоздавшей технологией была sign-magnitude от Burr-Brown. В ней код делился на два сегмента, которые обрабатывались двумя ядрами ЦАП, а резистивная лестница в процессе работы постоянно переключалась между ними. И если один был стандартный мультибитный, то другой в дополнение использовал динамическое управление источниками тока. Вот такой вот ядерный мутант гибрид. Теоретически должен был взять лучшее из всех миров, но в нагрузку получил и все проблемы и болезни (плюс немного своих). Хотя в целом микросхемы ЦАП весьма неплохи, и основное их слабое звено - рекомендованная производителем обвязка, начиная от родных цифровых фильтров и заканчивая выхлопом.
 
SymmcatДата: Четверг, 14.08.2014, 12:48 | Сообщение # 4
Jack of all trades
Группа: Администраторы
Сообщений: 61
Репутация: 0
Статус: Offline
3. Фильтры, шум квантования и оверсэмплинг.

Мультибитные ЦАПы потому и называются мультибитными, что на выходе у них может быть ровно столько значений, сколько вариантов кодов на входе, то-есть аналоговый сигнал на выходе максимально повторяет цифровой сигнал на входе. Однако, в случае оцифрованного аналогового сигнала, цифровое представление довольно сильно отличается от исходного. Поэтому, для выполнения условий теоремы Котельникова спектр сигнала должен быть искусственно ограничен выше частоты Найквиста, иначе будет наложение частот, и в сигнале появятся компоненты, которых там никогда не было. Самый логичный способ - просто ограничить их снаружи аналоговым фильтром. Мешает только то, что требуемый спад даст заметные искажения фазовой характеристики на частотах в несколько раз ниже частоты Найквиста. А порядок фазолинейного фильтра Бесселя будет около 30 и сигнал банально утонет в шуме активных и пассивных компонентов.

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

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

Еще один важный момент заключается в том, что при каждом повышении разрядности в два (для простоты вычислений) раза частота Найквиста также сдвигается все дальше от верхней границы спектра полезного сигнала, а значит снижаются требования к порядку и частоте среза восстанавливающего фильтра. Вместе с ними снижаются и фазовые искажения в рабочей полосе. А если при этом мы еще и будем фильтровать цифровой сигнал, то весь шум будет вытесняться далеко вверх и легко подавляться совсем простым (2-4 порядка) аналоговым фильтром на выходе. Конечно, при “правильной” реализации обоих фильтров.
 
SymmcatДата: Суббота, 16.08.2014, 12:36 | Сообщение # 5
Jack of all trades
Группа: Администраторы
Сообщений: 61
Репутация: 0
Статус: Offline
5. ΣΔ

Сигма-дельта преобразование было разработано очень давно, но не было реализовано из-за несовершенства технологий. Просто не хватало вычислительных мощностей, для выполнения большого количества вычислений в реальном времени.

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

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

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

Идея не очень простая, но красивая и изящная, позволяющая добиться прекрасных результатов без особенных заморочек, тупо наращивая вычислительные мощности - замечательный пример перехода количества в качество. Проблема только в том, что “количество” растет куда быстрее качества, поэтому, тот-же замечательный с точки зрения точности преобразования одноуровневой DAC7 (SAA7350+TDA1547) не позволил обеспечить хороший сигнал/шум не смотря на очень высокое энергопотребление. Упростить модулятор, одновременно снизив шум можно… просто напросто применив на выходе модулятора мультибитный ЦАП вместо однобитного! Вот такой вот шаг назад. Ценой будет модуляция шума сигналом и повышенная дифференциальная нелинейность, но во-первых они все-равно ниже, чем у многоразрядных мультибитных ЦАП, а главное - результат окажется явно проще и дешевле, а значит, коммерчески выгоднее.

Однако энергопотребление ЦАП все-равно остается довольно высоким, и в погоне за ценой, экологией и прочей зеленью начинаются упрощения. Для модулятора можно снизить разрядность вычислений, задавив кодозависимый шум дизерингом. Причем у “взрослых” ЦАП с этим все вполне неплохо, например у известного AD1955 внутренняя разрядность модулятора составляет 18 бит. А у массовых бюджетных микросхем и кодеков - всего 8-10 бит, при том что абсолютное значение шума должно быть низким, а значит дизеринг нельзя наращивать до беспредела. В результате шум переквантования заметно зависит от сигнала, и вылезают принципиально неустранимые искажения, причем довольно неприятного характера.

Но больше всего в ЦАП потребляет цифровой фильтр-интерполятор, и вот тут порой происходят совершенно жуткие вещи. Часто вместо полноценного интерполятора с х8 до частоты модулятора (х256 или х128), как это сделано в CXD2562 или WM8741 ставят примитивную выборку с накоплением, оставляя “ступеньки”. А сигма-дельта модулятор ЦАП штука нежная, и от этого чаще всего “шипит”.
Еще чаще экономят на разрядности вычислений и аккумулятора фильтра - тут можно только приветствовать появление ЦАП с запасом по разрядности вычислений, вроде AK439x или ES9018. К разрядности самого преобразования это не имеет никакого отношения, зато такие фильтры дают меньше артефактов округления, чем 24 или 20 битные.
Но самое фееричное - это упрощение алгоритмов фильтра. Как всего, так и первой, самой ресурсоемкой ступени. Своего апофигея этот процесс достигает в бюджетном сегменте, где первую ступень просто выкидывают.

Есть еще один интересный момент, связанный с импульсной характеристикой предцапового фильтра - он "звенит". За пределами рабочей полосы, поэтому на самом сигнале это теоретически не сказывается, ибо должно отфильтровываться восстанавливающим фильтром. На практике все не так просто, ибо если полоса входящего сигнала выше расчетной рабочей, а уровень 0dB (то-есть сделан кривыми руками, что в музыкальных записях встречается сплошь и рядом), то уровень выброса будет выше, предельного и модулятор уйдет в перегрузку. Бороться с этим можно просто прибив уровень сигнала на пару децибел, что и реализовано в некоторых ЦАП по умолчанию (тот-же AD1955) или отключаемым (WM874x). А можно просто сделать то-же самое вручную цифровой регулировкой уровня сигнала (главное - не забыть, что как и при любой децимации, тут обязательно требуется дизеринг).

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

Забавно, что у сигма-дельта АЦП модулятор аналоговый, поэтому проблем у них гораздо меньше и альтернатив им в высоколинейном НЧ сегменте просто нет. На фильтрах, однако, экономят и здесь, что во многих конструкциях компенсируется возможностю вытащить наружу однобитный поток прямо с выхода модулятора и потом, в спокойной обстановке, обработать как хочется. Или не обрабатывать - и подать напрямую на вход модулятора ЦАП. Собственно, идея родилась еще в 70х годах прошлого века, но вот быстро передавать и хранить такой объем данных в те времена было невозможно. А когда стало возможно, про идею вспомнили в большой корпорации Sony, музыкальному подразделению которой нужно было оцифровать огромный архив музыкальных записей. Результат понравился, формат назвали DSD - и выбросили на рынок, однако, в лучших традициях тёти Сони, запросив за средства его студийной обработки огромные деньги. А жаль, ибо он единственный принципиально избавлен почти от всех возможных проблем и сложностей цифровой записи.
 
  • Страница 1 из 1
  • 1
Поиск: