реклама на сайте
подробности

 
 
> Как поднять разрешающую способность АЦП, с 10-разрядов до 12..16 разрядов
GetSmart
сообщение May 22 2007, 09:43
Сообщение #1


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



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

Самый банальный вариант - усреднение результата в скользящем буфере. Буфер из 8 элементов может увеличить разрешающую способность на 3 бита. Это в идеале конечно, и с некоторыми оговорками smile.gif

Вообще, подразумевается что есть процессор с 10-битным быстродействующим АЦП. Требуется увеличить время преобразования (получения результата) с целью увеличения его точности.

Особо меня впечатлил принцип действия дельта-сигма АЦП ADS1216, у которого точность (разрядность) находится в очень интересной зависимости от количества измерений. При одинаковых настройках (Fmod/Fdata=500) и одном измерении точность = 14 разрядов. При двух таких же измерениях точность = 18 разрядов. При трёх = 20.

Прошу спецов высказать уже известные решения, а так же (гениальные smile.gif) идеи.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
27 страниц V  < 1 2 3 4 5 > »   
Start new topic
Ответов (30 - 44)
-=ВН=-
сообщение May 22 2007, 16:02
Сообщение #31


Местный
***

Группа: Новичок
Сообщений: 210
Регистрация: 3-11-06
Пользователь №: 21 936



Цитата(GetSmart @ May 22 2007, 19:57) *
Ну а про мучения и геморрой, тут Вы не правы.

Ну тогда мучайтесь:-)
Go to the top of the page
 
+Quote Post
Alex255
сообщение May 23 2007, 05:45
Сообщение #32


Местный
***

Группа: Участник
Сообщений: 450
Регистрация: 21-12-06
Пользователь №: 23 757



Цитата(GetSmart @ May 22 2007, 17:07) *
Читать-то конечно полезно, только я могу в них половину не понять. Заграничный там язык.

Думал-думал я по поводу корня из N и так и не осознал его.

Допустим есть медленно меняющийся пилообразный сигнал. Ну и 10-битное АЦП. А так же скользящий буфер из 8-ми элементов. Пусть будет идеальная ситуация с полным отсутствием шума. В какой-то момент в буфере накапливаются все значения = 100. Скользящее среднее при этом = 100. В следующий момент приходит значение = 101. Скользящее среднее = 100.125. Далее приходит ещё 101. Скользящее среднее = 100.25. И так далее. Налицо увеличение разрядности на 3 (!) разряда при 8-элементном буфере. Желающие объяснить это есть?

Когда у вас приходит 101, до при идеальном АЦП это может значить и 100.5, и 101.49. где же ваши биты, если вы получаете 100.125 или 100.25? Тогда просто дорисовал чего то за запятой, и готово.
Дабы получить 12 бит, надобно взять честное 12 битное АЦП с хорошей интегральной и дифференциальной нелинейностью и пр. и будет вам счастье. Бесплатный сыр как известно водиться исключительно в мышеловке)))
Go to the top of the page
 
+Quote Post
GetSmart
сообщение May 23 2007, 07:22
Сообщение #33


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Частично вы правы. Только скользящее среднее является результатом не одного, а восьми периодов. Кроме этого в результате есть задержка на несколько периодов. Надо бы промоделировать подобную ситуацию в случае идеально плавно меняющихся сигналов и содержащих шум. Тогда будет видно сколько действительно разрядов добавляется. Может я и ошибаюсь, но мне кажется, что в зависимости от ситуации может добавляться от 0 до двоичного логарифма от ширины буфера разрядов (3 бита для 8-буфера). Пусть случайный шум добавляет корень из 8 разрядов. Но мне было бы интересно узнать как более целенаправленно повлиять на сигнал чтобы извлечь максимум разрядности (логарифм) при минимуме буфера (oversamplinga).

Вот бы кто ещё объяснил как сигма-дельта за два прохода поднимает точность с 14 до 18 разрядов.
А вообще, хотелось бы создать некий гибрид из обычного и псевдо-сигма-дельта АЦП. Не особо сложными извращениями. Чем-то вроде RC-цепочки и дополнительного пина проца.

Цитата(Alex255)
Когда у вас приходит 101, до при идеальном АЦП это может значить и 100.5, и 101.49. где же ваши биты, если вы получаете 100.125 или 100.25? Тогда просто дорисовал чего то за запятой, и готово.

Мне на это вспомнилось вот что: так можно и ШИМ, прошедший через RC-фильтр считать однобитным. Там тоже то ли ноль, то ли еденица. Непонятно что вобщем. Однако преобразование ШИМ-->аналог я думаю все делали в своих схемах ни чуть не сомневаясь в результате.

Как я понимаю, случайные отклонения на +-1/2 мл.разряда (шумы) в результате должны проинтегрироваться и результат будет как раз теми дробными невидимыми разрядами. Вы считаете что на входе АЦП напряжения меньшие млашего разряда невидимы, но на самом деле их можно увидеть.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
-=ВН=-
сообщение May 23 2007, 08:15
Сообщение #34


Местный
***

Группа: Новичок
Сообщений: 210
Регистрация: 3-11-06
Пользователь №: 21 936



Цитата(GetSmart @ May 23 2007, 11:22) *
Как я понимаю, случайные отклонения на +-1/2 мл.разряда (шумы) в результате должны проинтегрироваться и результат будет как раз теми дробными невидимыми разрядами. Вы считаете что на входе АЦП напряжения меньшие млашего разряда невидимы, но на самом деле их можно увидеть.

Почти так. Когда сигнал на входе АЦП лежит между 2-мя ступеньками АЦП и нет вообще шума, то на выходе АЦП будет один и тот же код, соответствующий ближавйшей к сигналу ступеньке. Он не будет меняться. Его можно усреднять бесконечно долго, ничего абсолютно усреднение не добавит и не убавит.
В случае, если вместе с сигналом на вход АЦП действует шум (с заданными свойствами), то на выходе АЦП будут разные коды. И код, соответсвующий ближайшей к сигналу ступеньке, будет более вероятен. Код соответствующий более удаленной, но соседней ступеньке будет менее вероятен. Если Вы усредните сколько-то подряд идущих измерений, Вы получите результат, примерно равный сигналу на входе. Именно за счет разной вероятности появления разных кодов.
А примерно равный, потому, что на входе, кроме сигнала, действует шум. И даже усреднение от шума не избавляет полностью.
Вот этот шумовой остаток после усреднения дает ошибку. Вы обязаны эту ошибку учитывать, при подсчете выигрыша, полученной разрешающей способности и т.п. Ее учет и дает корень из N.
Но при условии равенства ступеньке СКО входного шума.
Go to the top of the page
 
+Quote Post
anton
сообщение May 23 2007, 16:57
Сообщение #35


Знающий
****

Группа: Свой
Сообщений: 622
Регистрация: 31-07-04
Пользователь №: 422



Цитата
Вот бы кто ещё объяснил как сигма-дельта за два прохода поднимает точность с 14 до 18 разрядов.
А вообще, хотелось бы создать некий гибрид из обычного и псевдо-сигма-дельта АЦП. Не особо сложными извращениями. Чем-то вроде RC-цепочки и дополнительного пина проца.


Я уже говорил что основная проблема линейность.
Вы хотите получить точность, в этом случае лучше однобитный дельта сигма для медленого сигнала (он в принципе линеен). Мульти битные АЦП стоят в основном за счет необходимости подгона для линериазции.
(кстати если посмотришь фильтр сигма дельта то там используются совсем не два измерения, плюс обрати внимание на параметр количества значащих бит он сильно отличается от выходной разрядности)
Go to the top of the page
 
+Quote Post
GetSmart
сообщение May 23 2007, 19:36
Сообщение #36


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Я знаю про эффективную и выходную разрядность дельта-сигма. Внимательно рассматривал даже постоянные сигналы на нём, точнее шум младших разрядов. Очень интересное зрелище. Пока у меня зреют мысли по этому поводу.

Теперь про два измерения. Они равной длительности. Внутри каждого из них множество ещё более коротких измерений. И после первого измерения результат 14, а после второго 18 бит. Довольно странная арифметика. Если бы это было АЦП последовательного приближения, то было бы 14 и 28 соответственно. Я прекрасно понимаю что там немного другой принцип и пока не собираюсь ни чему удивляться. Надо бы почитать теорию.


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

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

Ещё вопрос созрел. Дельта-сигма применительно к быстро меняющимся сигналам имеет ту же разрядность (допустим 18 бит) ?Или она становится чем-то вроде кажущейся, например младшие биты начинают в большей степени содержать искажения/гармоники. Хотя это наверно свойственнено и АЦП с последовательным приближением, но может у дельта-сигма разрядность вообще резко падает?


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
Alex255
сообщение May 24 2007, 08:59
Сообщение #37


Местный
***

Группа: Участник
Сообщений: 450
Регистрация: 21-12-06
Пользователь №: 23 757



"Мне на это вспомнилось вот что: так можно и ШИМ, прошедший через RC-фильтр считать однобитным. Там тоже то ли ноль, то ли еденица. Непонятно что вобщем. Однако преобразование ШИМ-->аналог я думаю все делали в своих схемах ни чуть не сомневаясь в результате."

ШИМ - он не однобитный и не 16 битный smile.gif (Если иметь ввиду выход ШИМ конечно). Это по существу аналоговый сигнал, своебразная нарезка интервалов. А вот кодирование длительности интервалов может быть и однобитной и 16битной. Из другой оперы немножко.

Сообщение отредактировал Alex255 - May 24 2007, 09:28
Go to the top of the page
 
+Quote Post
anton
сообщение May 24 2007, 13:44
Сообщение #38


Знающий
****

Группа: Свой
Сообщений: 622
Регистрация: 31-07-04
Пользователь №: 422



Цитата
(в имеющейся в АЦП разрядности) то можно засечь точные моменты перехода значения из N в N+1, или из N в N-1. А затем помножить эти отквантованные по вертикали (10 бит)


Идеальных АЦП не существует.
Все методы увеличения именно точности упираются в линейность системы.

Цитата
Дельта-сигма применительно к быстро меняющимся сигналам имеет ту же разрядность (допустим 18 бит) ?Или она становится чем-то вроде кажущейся


У дельта сигмы есть параметр полоса который опять же отличается от частоты выдачи, если сигнал по частоте не превышает то значительных проблем нет.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jun 28 2007, 10:45
Сообщение #39


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Подскажите, знающие, при оцифровке быстро меняющегося сигнала АЦП последовательного приближения в непрерывном режиме искажения в результате чему равны?
Как мне кажется они могут достигать величины изменения сигнала за период преобразования. Я прав или нет?

Предлагаю обсудить следующий алгоритм.
На прикреплённом рисунке элементы R2 и C2 и дискретный вывод процессора создают пилообразный сигнал амплитудой 1 МЗР 10-битного АЦП. Для этого на выводе процессора в течении 8 периодов преобразования АЦП находится 1, а следующие 8 периодов - 0. Пила получается почти идеальная. Далее через C1 пила подмешивается к измеряемому сигналу. Сразу скажу, что схема нарисована максимально упрощённая, только для демонстрации принципа работы и её можно потом улучшить.

Теперь об алгоритме. В памяти процессора находится скользящий буфер из 16 элементов. После каждого измерения программа точно знает какой добавочный уровень сигнала в данный момент имеет C2. И при чтении значения из АЦП из него вычитается это значение и ложится в скользящий буфер. Для более точного результата нужно ещё добавлть 0.5. Так вот, после 16 измерений пила пройдёт свой полный период и заполнится весь скользящий буфер. После этого можно будет узнать результат среднего напряжения, поданного на АЦП за 16 периодов измерения, и сдвинутого во времени (фазе) на 8 периодов. Причём результат будет на 3 разряда (как минимум) точнее разрядности АЦП. При хорошем раскладе даже на 4 разряда. То есть повышение разрядности лучше чем корень из N при подмешивании белого шума. Далее, после каждого нового измерения АЦП можно обновлять результат. Всё это можно промоделировать как для идеального безшумного сигнала, так и неидеального.

Пример с расчётами приведу достаточно простой. Допустим на входе АЦП идеальный постоянный сигнал величиной 100.2 МЗР. Будем считать, что АЦП выдаёт на выходе 100 когда на входе напряжение в диапазоне 100.00..100.99. Без дополнительной схемы АЦП будет выдавать всегда значение 100. Если же к нему примешать пилу 1МЗР (-0.5..+0.5), то АЦП из 16 измерений будет выдавать 3 измерения по 99, 10 измерений по 100, и снова 3 по 99. В скользящий буфер занесутся числа: (0.5 добавляется постоянно)
99.5+0.5
99.5+0.375
99.5+0.25
100.5+0.125
100.5+0
100.5-0.125
100.5-0.25
100.5-0.375
100.5-0.5
100.5-0.375
100.5-0.25
100.5-0.125
100.5-0
99.5+0.125
99.5+0.25
99.5+0.375
Если найти среднее арифметическое в этом буфере, то оно будет равно 100.125. Что как раз находится в диапазоне дополнительных 3 бит перед запятой = 100.125..100.249. Интеграл от пилы (который добавлялся к измеренным значениям) равен 0 и на результат не влияет.
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
Oldring
сообщение Jun 29 2007, 07:28
Сообщение #40


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(GetSmart @ Jun 28 2007, 14:45) *
Подскажите, знающие, при оцифровке быстро меняющегося сигнала АЦП последовательного приближения в непрерывном режиме искажения в результате чему равны?
Как мне кажется они могут достигать величины изменения сигнала за период преобразования. Я прав или нет?

[...]

Если найти среднее арифметическое в этом буфере, то оно будет равно 100.125. Что как раз находится в диапазоне дополнительных 3 бит перед запятой = 100.125..100.249. Интеграл от пилы (который добавлялся к измеренным значениям) равен 0 и на результат не влияет.


Для начала: что такое искажения? Когда сформулируете четкий ответ на этот вопрос - поймете и многое другое, что пока что не понимаете.

Ваша схема с пилой хороша, если при напряжении на входе 100 АЦП выдает 100, а при напряжении 99 - число 99. А если наоборот? Такое тоже иногда бывает у некоторых АЦП, особенно, старых: смотрите параметр "дифференциальная нелинейность". Особено критичен для R-2R АЦП переход через середину диапазона. Подумайте сами почему. У сигма-дельта АЦП с однобитным модулятором таких вопросов не возникает вообще: в нем только один компаратор.

Цитата(Alex255 @ May 24 2007, 12:59) *
"Мне на это вспомнилось вот что: так можно и ШИМ, прошедший через RC-фильтр считать однобитным. Там тоже то ли ноль, то ли еденица. Непонятно что вобщем. Однако преобразование ШИМ-->аналог я думаю все делали в своих схемах ни чуть не сомневаясь в результате."

ШИМ - он не однобитный и не 16 битный smile.gif (Если иметь ввиду выход ШИМ конечно). Это по существу аналоговый сигнал, своебразная нарезка интервалов. А вот кодирование длительности интервалов может быть и однобитной и 16битной. Из другой оперы немножко.


Цифровой ШИМ - он и есть однобитный ЦАП. Чтобы простой ШИМ превратить в сигма-дельта ЦАП нужно на вход повесить более сложный аналоговый фильтр и более сложным алгоритмом получать битовую последовательность на этом цифровом выходе. Принципиальных отличий не вижу.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jun 29 2007, 11:08
Сообщение #41


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(Oldring)
Для начала: что такое искажения? Когда сформулируете четкий ответ на этот вопрос - поймете и многое другое, что пока что не понимаете.
Как я понимаю, искажения - отличия реального сигнала на входе и оцифрованного. Если реальный сигнал меняется, то в данном случае нужно сравнивать с его интегралом за период измерения.

Я исходил из принципа работы АЦП посл.прибл. как я его понимаю. Есть допустим 10 подтактов преобразования. В первом подтакте сравнивается старший бит с сигналом, в следующем - следующий, а в 10-ом - последний бит. Так вот, если сигнал меняется быстро, то первый бит может и будет определён верно (например 512, если при этом в начале измерения на входе было >512). А если к 10-му подтакту измерения сигнал опустится до 0, то интеграл за период будет грубо = 256, а АЦП выдаст аж 512. То есть ошибётся на 1/2 от изменения сигнала за период преобразования. Конечно, это самый наихудший вариант. Но в той или иной степени искажения присутствуют, и немалые, часто заметно больше МЗР.

А вообще, для компенсации нелинейностей R-2R АЦП можно применить ту же пилу, но с большей амплитудой. Вроде бы она должна заметно уменьшать при этом скачкообразные нелинейности. Например пилу на 11 МЗР. Наверное желательно чтобы амплитуда, делённая на половину буфера была дробной.


Хотя нет, если сигнал меняется, то искажение - это отличие результата, от значения сигнала на входе АЦП в последнем подтакте.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
Oldring
сообщение Jun 29 2007, 11:19
Сообщение #42


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(GetSmart @ Jun 29 2007, 15:08) *
Как я понимаю, искажения - отличия реального сигнала на входе и оцифрованного. Если реальный сигнал меняется, то в данном случае нужно сравнивать с его интегралом за период измерения.


Реальный сигнал - он аналоговый. А измеренный - он цифровой. И как их можно непосредственно сравнивать? Требуется какая-то мера похожести цифрового сигнала на аналоговый. И не одна - уж слишком не похожи эти сигналы, поэтому что допустимо для одного класса аналоговых сигналов может оказаться неприемлемо для другого.

Цитата(GetSmart @ Jun 29 2007, 15:08) *
Я исходил из принципа работы АЦП посл.прибл. как я его понимаю. Есть допустим 10 подтактов преобразования. В первом подтакте сравнивается старший бит с сигналом, в следующем - следующий, а в 10-ом - последний бит. Так вот, если сигнал меняется быстро, то первый бит может и будет определён верно (например 512, если при этом в начале измерения на входе было >512). А если к 10-му подтакту измерения сигнал опустится до 0, то интеграл за период будет грубо = 256, а АЦП выдаст аж 512. То есть ошибётся на 1/2 от изменения сигнала за период преобразования. Конечно, это самый наихудший вариант. Но в той или иной степени искажения присутствуют, и немалые, часто заметно больше МЗР.


Для того, чтобы этого не происходило, большинство современных АЦП последовательного приближения содержат на входе схему выборки/хранения. Иначе говоря, sample/Hold, на структурных схемах обозначаемую обычно как S/H.

Цитата(GetSmart @ Jun 29 2007, 15:08) *
А вообще, для компенсации нелинейностей R-2R АЦП можно применить ту же пилу, но с большей амплитудой. Вроде бы она должна заметно уменьшать при этом скачкообразные нелинейности. Например пилу на 11 МЗР. Наверное желательно чтобы амплитуда, делённая на половину буфера была дробной.
Хотя нет, если сигнал меняется, то искажение - это отличие результата, от значения сигнала на входе АЦП в последнем подтакте.


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

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


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
rezident
сообщение Jun 29 2007, 11:25
Сообщение #43


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(GetSmart @ Jun 29 2007, 17:08) *
Так вот, если сигнал меняется быстро, то первый бит может и будет определён верно (например 512, если при этом в начале измерения на входе было >512). А если к 10-му подтакту измерения сигнал опустится до 0, то интеграл за период будет грубо = 256, а АЦП выдаст аж 512. То есть ошибётся на 1/2 от изменения сигнала за период преобразования. Конечно, это самый наихудший вариант. Но в той или иной степени искажения присутствуют, и немалые, часто заметно больше МЗР.

Для SAR обычно применяют sample-and-hold (схему выборки/хранения). Иначе, скажем 10-разрядный SAR, в лучшем случае 4-разрядным можно будет называть.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jun 29 2007, 11:32
Сообщение #44


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Дык я ж не собирался делать из любого R-2R АЦП некий идеальный АЦП с ещё большим кол-вом разрядов. Затея была улучшить нелинейности и разрешающую способность втроенных в контроллеры АЦП минимальными средствами. Не уж то продложенным мной методом это не получится? Если АЦП не имеет схему выборки-хранения, то вдобавок и искажения сильно уменьшатся.

Кроме того, есть много применений, в которых подобный алгоритм реально увеличит качество. Например при оцифровке звука, если звук будет достаточно слабый, то с подобным алгоритмом можно обнаруживать/записывать в 8 раз более слабые звуки. Думаю, что ещё множество практических применений можно найти.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
rezident
сообщение Jun 29 2007, 13:00
Сообщение #45


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



"Любой R-2R АЦП" совсем не обязательно SAR. Он может и параллельного типа быть. А параллельному АЦП схема выборки/хранения не требуется.
Go to the top of the page
 
+Quote Post

27 страниц V  < 1 2 3 4 5 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 1st August 2025 - 19:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.0152 секунд с 7
ELECTRONIX ©2004-2016