АЦП в условиях значительных шумов

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
kolobokus
Встал на лапы
Сообщения: 116
Зарегистрирован: Пн дек 29, 2014 19:51:49
Откуда: Санкт-Петербург

АЦП в условиях значительных шумов

Сообщение kolobokus »

Требуется получить результат АЦП встроенным 10-разрядным преобразователем микроконтроллера
в условиях действия почти "белого" шума, с амплитудой 1-2 мзр. Преобразуемый сигнал - DC.
Время на получение результата - до 200 мс. Требуется получить не менее чем 10 разрядный результат
без "пляски" младшего разряда.
Если ограничиться имеющимися 10 разрядами, то помимо самого простого метода цифровой фильтрации
- вычисления среднего арифметического значения по множеству последовательных измерений,
можно попробовать применить оверсемплинг с децимацией для виртуального повышения разрядности
имеющегося АЦП, скажем до 12 разрядов, с последующим усреднением и приведением к 10 разрядам.
Вопрос в том, стоит ли это делать для достижения обозначенной мной цели (10 разрядов без "пляски")???
Реклама
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: АЦП в условиях значительных шумов

Сообщение a5021 »

Совсем без пляски, это врят ли, но ослабить пляску оверсемплинг поможет. Если задача повышения разрядности не стоит, то самое незатейливое усреднения большого количества замеров уже показывает неплохие результаты. Если измеряемая величина меняется медленно, то можно еще окно за собой тащить. В том смысле, что не отбрасывать суммы после нахождения среднего, а сохранять в кольцевом массиве с последующим нахождением среднего от свеженакопленной суммы замеров и всех предыдущих сохраненных сумм.
Реклама
polyname
Прорезались зубы
Сообщения: 249
Зарегистрирован: Пт май 18, 2012 23:12:23

Re: АЦП в условиях значительных шумов

Сообщение polyname »

экспоненциальный ФНЧ тоже неплохо работает, в отличии от бегущего среднего не нужно накапливать предыдущие данные, и легко наращивается порядок фильтра
http://en.wikipedia.org/wiki/Low-pass_f ... ealization
y := y[i-1] + α * (x - y[i-1])

Код: Выделить всё

// 1st-order exp.LPF, alpha=0..256
inline s32 lpf1_s32(const s32 cur, const s32 prev, const u8 alpha){ return (prev * 256 + alpha * (cur - prev)) / 256; }
Аватара пользователя
Kotofil
Опытный кот
Сообщения: 803
Зарегистрирован: Пт окт 10, 2014 19:03:56

Re: АЦП в условиях значительных шумов

Сообщение Kotofil »

против дрожания младшего разряда хорошо работает "люфт" ширина люфта ставится в зависимости от средней амплитуды помех

но лучше использовать вместо атмел или пик ти у них ацп куда качественнее сделан и помех существенно меньше при измерении.
Физика - это вам не математика, тут думать надо.
Марк Биньяминович Бирк директор Еврейской Школы
Реклама
Эиком - электронные компоненты и радиодетали
polyname
Прорезались зубы
Сообщения: 249
Зарегистрирован: Пт май 18, 2012 23:12:23

Re: АЦП в условиях значительных шумов

Сообщение polyname »

но лучше использовать вместо атмел или пик ти у них ацп куда качественнее сделан
:) бред. Если руки кривые, виноват кто угодно, только не я...
Реклама
Аватара пользователя
Kotofil
Опытный кот
Сообщения: 803
Зарегистрирован: Пт окт 10, 2014 19:03:56

Re: АЦП в условиях значительных шумов

Сообщение Kotofil »

polyname
:) бред. Если руки кривые, виноват кто угодно, только не я...

вы отрицаете что разные АЦП имеют разное качество при одинаковой разрядности? :)
Физика - это вам не математика, тут думать надо.
Марк Биньяминович Бирк директор Еврейской Школы
Реклама
polyname
Прорезались зубы
Сообщения: 249
Зарегистрирован: Пт май 18, 2012 23:12:23

Re: АЦП в условиях значительных шумов

Сообщение polyname »

я такой разницы не заметил. Даже без фильтрации на AVR удавалось добиться отсутствия шума. А с цифровой фильтрацией - и подавно.
В AVR плохая опора - лучше использовать внешнюю или VCC. С АЦП особых проблем не было.
Аватара пользователя
kolobokus
Встал на лапы
Сообщения: 116
Зарегистрирован: Пн дек 29, 2014 19:51:49
Откуда: Санкт-Петербург

Re: АЦП в условиях значительных шумов

Сообщение kolobokus »

Опора у меня внешняя, а вот питание adc общее с цифрой (разводка не позволяет их разделить), но для оверсэмплинга это даже плюс (имхо). Преобразование в режиме idle. Сигнал меняется настолько медленно, что окно скользящего среднего тащить не имеет смысла. А вот окно, вырезающее середину, отбрасывая края, наверное попробую, Впрочем, сочетать сразу несколько методов трудно.
Я затрудняюсь определить разницу между средним арифметическим по многим выборкам и оверсемплингом без повышения разрядности. Целесообразно ли использовать в моей ситуации оба метода и будет ли между ними разница в результатах при одинаковых количествах измерений?
Спасибо за советы.
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: АЦП в условиях значительных шумов

Сообщение a5021 »

polyname писал(а):экспоненциальный ФНЧ тоже неплохо работает,
Как-то я без оптимизма смотрю на кучу арифметических действий с тридцатидвухбитными значениями применительно к AVR.
kolobokus писал(а):Я затрудняюсь определить разницу между средним арифметическим по многим выборкам и оверсемплингом без повышения разрядности.
А это вообще не одно ли и то же? Я как-то вообще для себя упростил эту всю теоретическую подоплеку и тупо беру 4 в степени N семплов, складываю и сдвигаю вправо до нужной разрядности.
polyname
Прорезались зубы
Сообщения: 249
Зарегистрирован: Пт май 18, 2012 23:12:23

Re: АЦП в условиях значительных шумов

Сообщение polyname »

Как-то я без оптимизма смотрю на кучу арифметических действий с тридцатидвухбитными значениями применительно к AVR.
несколько сдвигов, сложений, вычитаний и умножение. В пределах 1..2 десятков мкс. Даже на полной скорости, в прерывании успеет. Можно переписать для 16-бит.
Аватара пользователя
kolobokus
Встал на лапы
Сообщения: 116
Зарегистрирован: Пн дек 29, 2014 19:51:49
Откуда: Санкт-Петербург

Re: АЦП в условиях значительных шумов

Сообщение kolobokus »

Буду исходить из результатов практики. Не помогут простые способы - замутю что-нибудь этакое...
В одной статье попался совет, сначала повысить разрядность, если недостаточно, а после усреднить. Так как эти приемы относятся к контролю очень медленных изменений величин, то я ими и подумал воспользоваться. Разрядности мне и такой (10) хватает, так что была мысль повысить ее повторными считываниями, с тем, чтобы потом отсечь прыгающие младшие разряды и снова вернуться к исходной разрядности, но уже без дерганья.
Только вот эта идея напоминает чем-то Perpetum Mobile.
Может ее эффективность не превышает простое усреднение. Попробую.
Что такое электроника?
Кажется, это то, что было перед фотоникой!
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25292
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: АЦП в условиях значительных шумов

Сообщение КРАМ »

kolobokus писал(а):Буду исходить из результатов практики. Не помогут простые способы - замутю что-нибудь этакое...
Любая цифровая фильтрация подразумевает, что АЦ преобразование удовлетворяет теореме Котельникова как для сигнала, ТАК И ДЛЯ ШУМОВ.
То есть для эффективной фильтрации в МК необходимо обеспечить обрезание спектра входных шумов до уровня динамического диапазона АЦП (для 10 разрядного - это -60дБ, для 12-разрядного - -72 дБ) выше половины частоты семплирования. Этот фильтр называется антиалиасинговым...
Иначе применение ЛЮБЫХ цифровых фильтров будет неэффективно.
Аватара пользователя
kolobokus
Встал на лапы
Сообщения: 116
Зарегистрирован: Пн дек 29, 2014 19:51:49
Откуда: Санкт-Петербург

Re: АЦП в условиях значительных шумов

Сообщение kolobokus »

Спасибо, КРАМ, за напоминание. Но я по входу поставил мощный аналоговый фильтр. Он-то и берет на себя основную функцию шумодава. Остаток буду убирать цифрой.
Что такое электроника?
Кажется, это то, что было перед фотоникой!
Аватара пользователя
kolobokus
Встал на лапы
Сообщения: 116
Зарегистрирован: Пн дек 29, 2014 19:51:49
Откуда: Санкт-Петербург

Re: АЦП в условиях значительных шумов

Сообщение kolobokus »

В одной статье по АЦП я натолкнулся на совет делать период преобразования кратным 20ms, для борьбы с сетевыми наводками.
Мне показался этот совет некорректным. Ведь если абсолютно точно синхронизировать периоды (а это проблематично, ИМХО), то появиться смещение в результате, а если приблизительно - то медленные биения, с которыми бороться сложнее.
Так есть ли смысл приближать кратность периода АЦП к периоду сети для уменьшения влияния сетевых наводок?
Что такое электроника?
Кажется, это то, что было перед фотоникой!
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25292
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: АЦП в условиях значительных шумов

Сообщение КРАМ »

Частота сети очень стабильна в смысле ее подавления нулем АЧХ КИХ ФНЧ.
Поэтому подобный способ фильтрации 50 Гц и всех кратных ей высших гармоник очень эффективен.
Даже невысокий порядок фильтра дает очень неплохое подавление.
Расстройка частоты сети относительно частоты нуля у фильтра даст несколько худшее подавление и только...
Проверено неоднократно.
Совсем недавно я таким образом подавил до величины младшего разряда 12-разрядного АЦП наводку на измеряемую емкость сетевого провода (система охраны бытовой техники в магазине через шнур питания)...
:)
Аватара пользователя
kolobokus
Встал на лапы
Сообщения: 116
Зарегистрирован: Пн дек 29, 2014 19:51:49
Откуда: Санкт-Петербург

Re: АЦП в условиях значительных шумов

Сообщение kolobokus »

Пока мне не удалось сколь заметно улучшить ситуацию, задав период преобразований равным 20 ms. Возможно, дело в неудачной разводке.
А есть ли в несложных методах борьбы с шумами нечто, подобное гистерезису триггера Шмидта? Или это и есть - усекание младших разрядов?
Что такое электроника?
Кажется, это то, что было перед фотоникой!
Аватара пользователя
Kotofil
Опытный кот
Сообщения: 803
Зарегистрирован: Пт окт 10, 2014 19:03:56

Re: АЦП в условиях значительных шумов

Сообщение Kotofil »

сделай синхронизацию выборки по сетевому 50гц стробу от сети питающёй БП,
получишь ту же самую 20мс синхронизацию но без биений (которые и дают основной шум)
Физика - это вам не математика, тут думать надо.
Марк Биньяминович Бирк директор Еврейской Школы
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25292
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: АЦП в условиях значительных шумов

Сообщение КРАМ »

Сорри, я невнимательно прочел исходный вопрос...
Не выборки должны быть кратны, а ДЛИНА БУФЕРА скользящего окна.
То есть частота выборок должна быть более чем вдвое выше частоты сети и кратна ей. С учетом реально существующих в сети гармоник вполне достаточно семплировать сигнал частотой 800 Гц (16 выборок за 20 мс).
Синхронизация с сетью с точностью до фазы не требуется.
Попытка решить проблему биений путем синхронизации лишь уберет сами биения, но не уберет ОШИБКУ, связанную с наводкой сети. Наводка превратится в постоянную составляющую...
Аватара пользователя
kolobokus
Встал на лапы
Сообщения: 116
Зарегистрирован: Пн дек 29, 2014 19:51:49
Откуда: Санкт-Петербург

Re: АЦП в условиях значительных шумов

Сообщение kolobokus »

Kotofil писал(а):сделай синхронизацию выборки по сетевому 50гц стробу от сети питающёй БП,
получишь ту же самую 20мс синхронизацию но без биений (которые и дают основной шум)
Думаю, с предположением об основном вкладе в "дребезг" младших разрядов АЦП сетевой наводки в моем случае, я поспешил.
Дело в том, что сейчас устройство еще не встроено, а работает у меня на столе. И питается от качественного преобразователя с
последующим линейным стабилизатором. Провода короткие. Скорее - причина в разводке платы (дешевая китайская ардуина Mini USB Nano).
В ней питание VCC и AVCC объединено, даже без дросселя.
Что такое электроника?
Кажется, это то, что было перед фотоникой!
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: АЦП в условиях значительных шумов

Сообщение a5021 »

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

Вернуться в «Разные вопросы по МК»