Если я уменьшу частоту дискретизации АЦП, получу ли я среднее значение за период времени?
Я работаю с комплектом для разработки ESP32-C3. Я использую внутренний АЦП на этом чипе для чтения с аналогового микрофона. Я инициализирую АЦП следующим образом:
adc_continuous_config_t dig_cfg = {
.sample_freq_hz = 20000,
// ...
};
ESP_ERROR_CHECK(adc_continuous_config(handle, &dig_cfg));
Если я уменьшу частоту выборки, скажем, до 1000 Гц, будет ли каждая выборка представлять в среднем 20 выборок из моего предыдущего потока (где частота выборки была 20 000 Гц)? Или это больше похоже на то, что я получу только один из каждых 20 образцов из исходного потока?
Причина, по которой я спрашиваю, заключается в том, что я надеюсь выполнить своего рода фильтр нижних частот, изменив частоту дискретизации АЦП, и мне интересно, что происходит внутри аппаратного обеспечения АЦП, когда я изменяю частоту дискретизации.
@Alex Flint, 👍-1
Обсуждение1 ответ
Лучший ответ:
Возможно, нет. АЦП на Arduino Uno (я знаю, что это другой процессор) использует «выборку и удержание». техника. Это означает, что АЦП производит выборку входного напряжения в определенный момент времени, копируя его в конденсатор выборки и хранения. Затем он последовательно сравнивает его с пороговым напряжением выше или ниже, чтобы сгенерировать отдельные биты результирующего числа. У меня есть некоторые подробности о Uno ADC здесь.
Вероятно, это делается для того, чтобы при выборке быстро меняющегося сигнала (например, звука) производилась выборка момента времени, а не сравнение сигнала, изменяющегося во времени.
Я не могу найти технические подробности для метода выборки АЦП ESP32, но вполне вероятно, что более низкая частота выборки просто приведет к выборке меньшего количества точек данных, а не к среднему значению. Это может привести к крайне неточным результатам.
Возможно, вы захотите просмотреть Частоту Найквиста, чтобы понять причины выбора определенной частоты дискретизации.
Если вам нужно среднее значение, подача сигнала в RC-фильтр подходящего размера может быть хорошим способом найти среднее напряжение.
- ESP32 ADC <-> Проблема с WIFI
- Декодировать радиочастотные удаленные сигналы с помощью ESP32 или node MCU?
- Проблема с потенциометром ESP32: несоответствие разрешения потенциометра с неограниченным разрешением и считывание значений с помощью Wire.h
- Интерфейс SPI (MCP3903)
- Использование MAX30100 для Arduino для чтения АЦП в формате (0-1023)
- esp32, platformio A fatal error occurred: Packet content transfer stopped (received 8 bytes) *** [upload] Error 2
- Как выбрать альтернативные контакты I2C на ESP32?
- Драйверы для чипа последовательного порта CH9102X
Это действительно зависит от аппаратного обеспечения внутри процессора. Некоторые производители микросхем, такие как NXP, имеют настраиваемые схемы АЦП, в которых аппаратное обеспечение может усреднять несколько выборок для каждого сообщаемого значения. Другие не могут. Вам действительно нужно погрузиться в спецификации / конфигурацию процессора. Также исследуйте количество значащих битов. Тот факт, что АЦП имеет 8 бит, не обязательно означает, что он имеет 8-битное разрешение., @st2000
Большинство людей предпочли бы выполнять фильтрацию в цифровой области: у вас так много гибкости для проектирования фильтров…, @Edgar Bonet