Чего вам не хватает, так это значения «прореживания».
Строго говоря, «прореживание» - это сокращение до 1/10. То есть с 10 уменьшить до 1.
«Децимация», используемая в выборке, теряет строгий смысл. Вместо 1/10 это означает «уменьшить число».
Это означает, что вы усредняете некоторое количество образцов и сокращаете количество образцов на одно и то же число.
Например, если вы производите выборку на частоте 1000 Гц и усредняете 4 выборки, вы сохраняете только среднее значение. В конце у вас есть только 250 выборок в секунду вместо 1000. Вы потеряли временное разрешение, но получили один бит разрешения напряжения.
Для каждого фактора 4 вы получаете 1 бит. Среднее и десятичное значение 4, а также разрешение от 10 бит до 11 бит.
Другой фактор 4 (4 * 4 = 16 всего) дает вам от 10 до 12 бит. Другой фактор 4 дает вам разрешение 13 бит.
Но обратите внимание, что теперь вы увеличиваете частоту дискретизации в 64 раза. Ваша эффективная частота выборки уменьшается на тот же коэффициент. Используя пример частоты дискретизации 1000 Гц, вы снижаете до 15 эффективных выборок в секунду.
Это прореживание, и именно столько старших битовых АЦП получают высокое разрешение. Они выбирают с высокой скоростью, усредняют (или используют цифровой фильтр нижних частот) и уничтожают.
В крайнем случае, у вас есть однобитный АЦП (простой компаратор), который выполняет избыточную выборку в несколько миллионных раз, чтобы получить эффективную битовую глубину в 16 бит.
Чтобы это работало, нужно помнить, что в вашем сигнале должен быть шум, примерно равный наименьшему значению, которое может измерить ваш АЦП. Для 10 разрядного АЦП с использованием опорного напряжения 5В, который был бы шум около 5мВ пика до пика.
Усреднение шума - это то, откуда на самом деле происходит усиление битов. Представьте, что у вас есть сигнал (DC), который лежит точно между значением 512 отсчетов АЦП и 513 отсчетов АЦП. Без шума измеренное значение всегда будет одинаковым - усреднение даст вам то же значение, что и выборки.
Добавьте шум примерно наименьшего измеримого значения, и это выглядит совсем иначе. Хотя сам сигнал не изменяется, измеренные значения будут «колебаться» вокруг истинного значения сигнала. Среднее значение теперь отличается от сэмплов, и чем больше сэмплов вы используете, тем ближе вы подходите к реальному значению сигнала.
Я использовал эту технику с Arduino (который использует процессор Atmel с 10-битным АЦП), чтобы получить лучшее разрешение для некоторых измерений, которые я делал.
Я получил его до 13 бит, но обнаружил, что мне нужно больше. Я мог бы пойти на другой коэффициент 4, но это заняло бы слишком много времени для каждого семпла и только дало мне еще один бит.
Эксперименты с передискретизацией показали, что то, что я делал, могло сработать (я получил узнаваемые, но шумные результаты) без необходимости тратить время и деньги, чтобы получить лучший АЦП. С доказательством концепции, я мог бы пойти дальше и получить этот лучший АЦП - и получение этого доказательства стоило мне всего лишь нескольких строк кода и немного времени.
Я обнаружил, что мне нужно как минимум 16 бит. Это означало бы в среднем 4096 образцов.
Это примерно полсекунды с использованием самой быстрой выборки, возможной с помощью программного обеспечения Arduino.
Поскольку мне потребовалось 14400 измерений, полный цикл занял бы 2 часа.
Я не такой терпеливый, и то, что я измерял, не будет оставаться постоянным так долго. Мне пришлось переключиться на использование АЦП, который использует гораздо более высокую частоту передискретизации, и которая обеспечивает более высокое разрешение выборок с более низкой скоростью.
Как и во многих других случаях, децимация - это компромисс, который может повысить производительность в одном направлении (битовая глубина), в то же время снизив производительность в другом направлении (частота дискретизации).