Jump to content
    

Как поднять разрешающую способность АЦП

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

 

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

 

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

 

Обычно используют фильтр получше, чем скользящее среднее. Если быстродействие критично - CIC фильтр высокого порядка. Если пофиг - то прямоугольный FIR, или даже IIR если фаза не играет

Share this post


Link to post
Share on other sites

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

 

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

 

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

 

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

 

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

Скользящее усреднение на 8 на 3 разряда не поднимут. Они поднимут в корень из 8 раз. А это меньше 2 разрядов. :)

Share this post


Link to post
Share on other sites

Вариант с подмешиванием высокочастотного шума был у меня самым первым. Его я охарактеризовал как совсем не банальный. Но и не сложный при этом. Чем-то он похож на обратное преобразование ШИМ-->Аналог.

 

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

Share this post


Link to post
Share on other sites

Вариант с подмешиванием высокочастотного шума был у меня самым первым. Его я охарактеризовал как совсем не банальный. Но и не сложный при этом. Чем-то он похож на обратное преобразование ШИМ-->Аналог.

 

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

 

Подмешивание будет работать всегда, но оно не обязательно. Если полезный сигнал широкополосный, он не коррелирован со своим шумом квантования и расползётся по всей полосе АЦП. Поэтому достаточно отфильтровать полосу сигнала, а шум квантования сам уйдёт. Ну не весь, а внеполосная часть

Если поднять частоту дискретизации в N раз, а потом отфильтровать по Найквисту - сузив полосу в N раз, получите N-раз по энергетике, или корень из N по амплитуде, как указал уважаемый BH c крыльями

Share this post


Link to post
Share on other sites

fontp

Меня вообще-то интересовало повышение разрядности измерения медленно меняющихся сигналов. Без подмешивания чего-то к ним как мне кажется нельзя поднять точность преобразования. Я прав?

Share this post


Link to post
Share on other sites

В статье по ссылке хорошо описана основная проблема - линейность АЦП. А шумы и сами добавятся.

Share this post


Link to post
Share on other sites

fontp

Меня вообще-то интересовало повышение разрядности измерения медленно меняющихся сигналов. Без подмешивания чего-то к ним как мне кажется нельзя поднять точность преобразования. Я прав?

 

Смотря, что вы называете медленно меняющимся. Он может быть медленно меняющимся, но не периодическим. Не почти синус или пила. Шум квантования не должен коррелировать с сигналом.

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

Share this post


Link to post
Share on other sites

Необходимо применить технологию под названием Oversampling and Averaging.

http://www.silabs.com/public/documents/tpu...al/en/an118.pdf

Очень интересный документ. Надо бы прочитать основательно как будет время.

 

[fontp]

Меня интересуют принципиальные отличия в двух следующих алгоритмах с одинаковой частотой дискретизации:

1. берётся N выборок и вычисляется тем или другим фильтром результат. Потом берутся уже следующие N выборок.

 

2. берётся N выборок и вычисляется тем или другим фильтром результат. Далее последняя выборка удаляется, всё смещается и добавляется одна новая. Скользящий буфер, фильтр любой, по желанию.

 

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

Share this post


Link to post
Share on other sites

fontp

Меня вообще-то интересовало повышение разрядности измерения медленно меняющихся сигналов. Без подмешивания чего-то к ним как мне кажется нельзя поднять точность преобразования. Я прав?

Не совсем. Можно обойтись имеюшимся "естественным" шумом устройства. Проблема только в том, что выгрыш в корень из N при использовании естеств. шума - исключение. В подавляющем большинстве случаев он будет меньше, часто очень намного :)

Share this post


Link to post
Share on other sites

Смотря, что вы называете медленно меняющимся. Он может быть медленно меняющимся, но не периодическим

Это значит, что за одно измерение АЦП сигнал меняется значительно меньше чем на один младший разряд. Разумеется если он чистый без шума. Например когда на входе АЦП стоит хороший RC-фильтр.

 

Не совсем. Можно обойтись имеюшимся "естественным" шумом устройства. Проблема только в том, что выгрыш в корень из N при использовании естеств. шума - исключение. В подавляющем большинстве случаев он будет меньше, часто очень намного :)

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

Share this post


Link to post
Share on other sites

Очень интересный документ. Надо бы прочитать основательно как будет время.

 

[fontp]

Меня интересуют принципиальные отличия в двух следующих алгоритмах с одинаковой частотой дискретизации:

1. берётся N выборок и вычисляется тем или другим фильтром результат. Потом берутся уже следующие N выборок.

 

2. берётся N выборок и вычисляется тем или другим фильтром результат. Далее последняя выборка удаляется, всё смещается и добавляется одна новая. Скользящий буфер, фильтр любой, по желанию.

 

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

 

Какое это имеет отношение к первоначальному вопросу как увеличить эффективную разрядность аЦП?

В обоих случаях 1 и 2 у вас одинаковое частотное разрешение, а значит отфильтровать полосу вы сможете одинаково. Второй случай (скользящее окно вместо блочной обработки) обеспечивает ещё и высокое разрешение по времени. А оно вам надо? Зато вычислительные затраты больше. Или Вы будете фильтровать выход схемы 2 снова? Так делают в DDC, но только с целью подавления боковиков от неидеальных фильтров

Share this post


Link to post
Share on other sites

Очень интересный документ. Надо бы прочитать основательно как будет время.

 

Почитайте основательнее. Решается все программным путем. Есть пример:

http://www.silabs.com/public/documents/sof.../en/an118sw.zip

Edited by TBI

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...