Передискретизация
Передискретизация — приём, которым из АЦП получают больше разрядов, чем у него есть: сигнал измеряют много раз чаще, чем нужно, и усредняют результаты. Так 12-битный АЦП микроконтроллера может давать 14 или 16 бит разрешения.
Обновлено Редакция GAW
Передискретизация (oversampling) — измерение сигнала с частотой, во много раз превышающей необходимую, с последующим усреднением результатов. Шум квантования идеального АЦП ведёт себя как шум с действующим значением q/√12, где q — младший разряд, и распределён по всей полосе до половины частоты выборки. При усреднении часть шума отсекается, и отношение сигнал/шум растёт (AN4629):
где OSR — коэффициент передискретизации. Каждое учетверение числа измерений даёт 10 · lg 4 ≈ 6 дБ — примерно один разряд.
Правило 4ⁿ
| Измерений | Дополнительных бит | 12-битный АЦП даёт |
|---|---|---|
| 4 | 1 | 13 бит |
| 16 | 2 | 14 бит |
| 256 | 4 | 16 бит |
Чтобы получить n дополнительных бит, складывают 4n измерений и сдвигают сумму на n разрядов вправо. Многие STM32 умеют суммировать до 1024 измерений аппаратно (AN2834). Частота выборки при этом должна оставаться выше удвоенной полосы сигнала — см. частоту Найквиста.
Условия и ограничения
Метод работает, только если на входе есть шум не меньше 1 LSB, не связанный с частотой выборки. Он увеличивает разрешение, но не точность: смещение, ошибка усиления и погрешность опорного напряжения не усредняются. Плата — время: чтобы получить 16 бит из 12, нужно в 256 раз больше измерений. Как устроен АЦП, его шумы и погрешности — в статье «АЦП», время преобразования и наибольшую частоту выборки STM32 считает калькулятор АЦП STM32.
Частые вопросы
Сколько измерений нужно для дополнительного бита?
Четыре на каждый бит: чтобы получить n дополнительных разрядов, складывают 4^n измерений и сдвигают сумму на n разрядов вправо. Для 12-битного АЦП 16 измерений дают 14 бит, 256 — 16 бит. По AN4629 каждое учетверение числа измерений поднимает отношение сигнал/шум примерно на 6 дБ — один разряд.
Почему передискретизация иногда не работает?
Метод требует, чтобы на входе был шум не меньше 1 младшего разряда и не связанный с частотой выборки. Если сигнал идеально чистый, все измерения дают один и тот же код, и усреднение ничего не добавит.
Повышает ли передискретизация точность АЦП?
Разрешение — да, точность — нет. Систематические погрешности — смещение, ошибка усиления, нелинейность, погрешность опорного напряжения — усреднением не убираются. Становятся различимы изменения меньше одного младшего разряда, но абсолютная ошибка остаётся прежней.
Источники
- STMicroelectronics. AN4629: ADC hardware oversampling for microcontrollers of the STM32 L0 and L4 series (DocID027261 Rev 1) — шум квантования q/√12, SNR = 6,02N + 1,76 дБ, выигрыш от передискретизации 10·lg(OSR)
- STMicroelectronics. AN2834: How to optimize the ADC accuracy in the STM32 MCUs, Rev 10 — аппаратное усреднение до 1024 измерений
Нашли ошибку?
Смотрите также
- АЦПКвантование, формула кода, SAR, время выборки, погрешности, передискретизация
- Младший разряд (LSB)Шаг квантования АЦП VREF / 2^N и ошибка ±½ LSB
- Частота НайквистаПоловина частоты выборки и наложение спектров
- АЦП STM32: время и выборкаВремя преобразования, частота выборок, RAIN и самая короткая выборка