На третьей лекции мы затронули вопросы, касающиеся точности преобразования. Процесс преобразования, ввиду квантования сигнала (округления), это процесс потери информации. Необходимо понимать сколько ее останется и, достаточно ли этого будет для решения требуемой задачи. К тому же, преобразователи АЦП и ЦАП создаются не идеальными инструментами, элементы устройства производятся с различными погрешностями, которые отражаются на характеристиках преобразователей - это называется инструментальная погрешность.
Чтобы описать точность преобразования конкретного преобразователя используются передаточные характеристики, которые показывают функцию зависимости выходного сигнала от входного.
Например, для ЦАП, у которого на входе могут быть только коды, на выходе могут быть сформированы только конкретные урони сигнала, без промежуточных значений (которые задействуются во время переключения между уровнями, в идеальном случае это не учитывается), из-за этого передаточная характеристика (ПХ) состоит из точек поднимающихся под 45 градусов (чем больше код, тем больше значение сигнала на выходе). ПХ для АЦП состоит из полочек потому, что на выходе преобразователя дискретные коды и нет никаких промежуточных значений, а на входе может быть любая величина.
Для упрощения ПХ представляют непрерывной линией, но подразумевается, что в реальности у АЦП и ЦАП это выглядит несколько иначе, как точки или полочки. ПХ используют для наглядного рассмотрения точности работы преобразователя, сразу на всем диапазоне измерения.
Идеальная передаточная характеристика выглядит, как выходящая из [нулевого кода / начала диапазона измерения] ровная линия идущая в [максимальный код / конец диапазона измерения]. Примеры погрешностей присущих реальным передаточным характеристикам представлены на рисунке ниже. Под Fвых и Fвх подразумевается соответствующие выходы и входы ЦАП и АЦП.
Нелинейность
Нелинейность передаточной характеристики представляется в виде численных показателей представленной двумя параметрами:
1. Интегральная нелинейность (INL - Integral NonLinearity) - значение максимального отклонения реальной ПХ от идеальной ПХ. Может быть выражена в единицах младшего разряда h - оно же LSB (Low Significant Bit), или в процентах от общей шкалы, или в абсолютном выражении. Значение интегральной нелинейности может быть получено одним из двух способов:
2. Дифференциальная нелинейность (DNL - Differential NonLinearity) - максимальное отклонение разницы двух соседних кодов от идеального значения. В идеальном случае два соседних кода отличаются друг от друга на единицу младшего разряда, если в реальности это не так, то существует дифференциальная нелинейность. DNL напрямую влияет на величину шума квантования.
Неидеальность передаточной характеристики отражает неидеальность преобразования. На картинке ниже представлено две передаточные характеристики. Снизу-вверх показано поступление входного сигнала, справа-налево показан преобразованный преобразователем сигнал. Искривление ПХ приводит к искажению информации в процессе преобразования.
Помимо статических погрешностей, то есть таких, которые имеют постоянное значение в установившемся режиме, еще существуют динамические. То есть это искажения проявляемые в динамическом режиме, во время преобразования изменяющегося во времени сигнала. Именно такие сигналы в основном и поступают с различных первичных датчиков, которые имеют разнообразные частотные характеристики.
На измерении неизменяющегося сигнала, динамические погрешности никак не сказываются. Существует множество характеристик пытающихся отразить динамическую точность преобразователя, рассмотрим несколько основных.
SNR (Signal to Noise Ratio) отношение сигнал/шум
Для начала, стоит указать, на то, что в преобразованном сигнале всегда будет присутствовать шум - шум квантования, среднеквадратичное значение отклонений которого составляет h/(2*3^(1/2)) - единица младшего разряда деленное на два корня из трех. Можно посчитать отношение сигнал/шум (SNR - Signal to Noise Ratio) для идеально преобразователя, вкратце, SNR = 6,02n + 1,76 (Дб), где n - это разрядность преобразователя.
Из сказанного следует, что на спектре, ниже границы 6,02n + 1,76 (Дб) нет сигнала. Однако, если делать передискретизацию сигнала на высокой частоте и преобразовывать только на узкой полосе частот, то эту границу можно сдвинуть в сторону увеличения.
THD (Total Harmonic Distortion) - коэффициент нелинейных искажений
также называется общими гармоническими искажениями. Их можно увидеть, если взять конкретный АЦП, подать на его вход идеальный (близкий к идеальному) гармонический сигнал (синус), а потом сделать преобразование Фурье с полученным сигналом. В идеальном случае на спектре должен быть один пик, один ведь синус подавался, на одной частоте. Однако, на реальных устройствах в спектре преобразованного сигнала появляются паразитные частоты. В примере на рисунке ниже, на вход подается идеальный сигнал на частоте 1 кГц, а после получения спектра в преобразованного сигнала появляются паразитные гармоники на частотах 2 кГц, 3 кГц, 5 кГц и так далее.
Чтобы показать на сколько сильно паразитные искажения влияют на полезный сигнал, используют величину коэффициента нелинейных искажений, которая равняется отношению корня суммы квадратов амплитуд первых пяти гармоник к амплитуде первой гармоники:
SINAD (SIgnal to Noise And Distortion ratio) отношения сигнал/шум и искажения
Эта характеристика отражает суммарный эффект искажений вносимых и шумом квантования и гармоническими искажениями. На практике значение этой величины зависит от частоты входного сигнала, информация о чем, как правило, входит в стандартную документацию.
Ниже приводится картинка, поясняющая смыслы и взаимную зависимость упомянутых ранее величин, характеризующих динамическую точность работы преобразователей информации.
ENOB (Effective number of bits) эффективное число битов
Этот параметр отражает в битовом эквиваленте SINAD, который, в свою очередь выражен в децибелах. SINAD в децибелах, а ENOB тоже самое, но в битах. Из представленного ниже выражения легко видно, что если гармонические искажения THD, от которых зависит SINAD, будут сведены к нулю, то SINAD будет равен идеальному значению отношения сигнал/шум SNR = 6,02n + 1,76 (Дб) = SINAD, подставив это в формулу и все сократив, видно, что ENOB = n.
Еще раз, при идеальном преобразовании без гармонических искажений и различных нелинейностей (влияющих на SNR) эффективное количество битов равняется разрядности преобразователя.
SFDR (Spurious-Free Dynamic Range) динамический диапазон свободный от паразитных гармоник
Буквально, динамический диапазон в рамках которого себя не проявляют динамические искажения любого рода, поясняющая картинка ниже. В среднем, значение SFDR ниже значения ENOB на 3 бита. Это не то же самое, что и THD, там отношение к среднеквадратичному значению амплитуд. Тут же, диапазон полностью свободный от искажений.
На динамические характеристики преобразователя может повлиять джиттер. Джиттер - это фазовое дрожание сигнала синхронизации, то есть когда очередные выборки сигнала происходят не идеально через равные промежутки времени а немного отличающиеся.
ДОМАШНЕЕ ЗАДАНИЕ
Выполнение домашней работы предполагается в Matlab, но по желанию может быть выполнена с помощью любого подходящего программного обеспечения: Mathematica, Python, Excel или другое.
Используя параметры из прошлого задания (разрядность, частота дискретизации и т.д.), необходимо смоделировать сигнал преобразованный АЦП с неидеальной передаточной характеристикой, как на рисунке справа.
Смоделированный сигнал необходимо перенести в частотную область и проанализировать полученный спектр, сравнить его со спектром полученным на идеальном АЦП.
Задание следующее: необходимо исследовать влияние нелинейности преобразователя на результат преобразования. Для этого нужно менять параметры линейности преобразования и смотреть как это отражается на полученной частотной картине. Оценивать влияние на разных частотах, с разной амплитудой. Сделать выводы и оформить в отчет с показательными картинками искажений, спектров и что это все значит, какие зависимости. Начинай с параметров выбранного тобой преобразователя на первом ДЗ.
Ниже приводится пример кода для Matlab демонстрирующий искажения передаточной характеристики, путем замены значений сигнала полученных после преобразования значениями, соответствующими "плохой" передаточной характеристики. В примере показано только искажение сигнала
Если в конце кода добавить следующие строки
figure
plot( abs( fft( x(1:2048) - sum(x(1:2048))/2048, 2048) ) )
то будет отображен спектр полученного сигнала. Обрати внимание на sum(x(1:2048)) / 2048. Здесь сумма всех значений сигнала делится на количество значений, то есть, находится среднее арифметическое значение. Функция fft() применяется к сигналу из которого вычитают его же среднее значение. Это нужно для того, чтобы на спектре не мешалась нулевая частота (постоянная составляющая сигнала). Попробуй убрать эту часть и посмотри что из этого получится.
Основные источники информации
- Очень скромно и сжато о основных статических и динамических характеристиках преобразователей [В.Б. Топильский. Схемотехника аналого-цифровых преобразователей - параграф 1.3 и его подпункты]
- Развернутый материал, затрагивающий широкий круг вопросов. Крайне рекомендуется к ознакомлению, так как содержит некоторое разнообразие не отраженное на лекции. Все написано вполне понятно, наглядно и доступно [Уолт Кестер. Аналого-цифровое преобразование - лекции 1 и 2]