Датчик шума (тройка). Подскажите как бороться с помехами.

Тема в разделе "Arduino & Shields", создана пользователем Nikola, 28 июл 2015.

  1. Nikola

    Nikola Нуб

    Не думал, что помехи у микрофона будут такими большими. Хотелось "отлавливать" хлопки в ладоши, но у микрофона очень сильные скачки на помехах. Если смотреть данные с порта, то значения в нормальном состоянии примерно 40-80, но каждые секунд 5 происходит скачок аж до 200. И в этом вся проблема, если увеличивать порог срабатывания на хлопок, то хлопком это уже будет сложно назвать, скорей "отбей себе руки", если же ничего не менять происходит куча ложных срабатываний.

    Как можно выйти из этого положения? Спасибо.
     
  2. Iskandaru

    Iskandaru Нерд

    Да, у меня тоже с ложными срабатываниями проблема. Пытаюсь бороться путем аппаратной настройки (на плате есть потенциометр), программной задержкой (delay) и экранированием. Пока получается плохо...
    PS. Еще есть небольшая разница, куда питание подключать: 5 или 3.3 V.
     
  3. Unixon

    Unixon Оракул Модератор

    На каком расстоянии датчик?
     
  4. DrProg

    DrProg Вечный нерд

    Не работал с этим датчиком, могу ошибаться, но мб попробовать обычную для борьбы с помехами математику? Усреднение показаний с некой дискретизацией. Хотя если всплески по времени совпадают с хлопком, то это будет непросто.
     
  5. andriano

    andriano Нерд

    Аналоговые датчики всегда отличались сильной зашумленностью.
    Основных способов борьбы с шумом два: аппаратный и программный.
    По сути дела оба представляют собой фильтр низких частот. В аппаратном случае это просто RC-цепочка. Я использую резистор 5.1 кОм и конденсатор 0.1 мкФ. Для звука это примерно соответствует частоте среза 300 Гц. В общем, в зависимости от вида датчика может потребоваться подкорректировать номиналы.
    Программно - проведение измерения несколько раз и нахождение средней величины. Какой именно средней: арифметической, геометрической или медианы - зависит от специфики датчика и сигнала. Можно сделать комбинацию из средней арифметической и медианы: отбросить какой-то процент наименьших и наибольших значений, а для оставшихся найти среднее арифметическое.

    По поводу специфики: для звука тоже есть стандартные приемы выделения нужного сигнала - определить спектр сиграла, который требуется детектировать, и пропускать входной сигнал через фильтр, который пропускает только те частоты, что есть в спектре нужного сигнала.
     
  6. Nikola

    Nikola Нуб

    Спасибо за такой подробный ответ. Обязательно попробую