реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Программная фильтрация АЦП
rekcuf
сообщение Feb 3 2015, 16:11
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 5-10-08
Пользователь №: 40 704



Замеряю напряжение между двумя резистивными делителями встроенным в МК АЦП, который работает в диф. режиме с включенным усилением х20. Использую оверсэмплинг, чтобы дополнительно получить 2 бита точности, в результате имею 11 бит.

Последние 3 бита шумят.

Если посчитать распределение величин замеров, получается так:

Прикрепленное изображение



Какими алгоритмами можно программно отфильтровать значения, чтобы при этом реакция на импульс не пострадала? И в идеале еще без сложной математики, т.к. у МК память 1 Кб.
Или нереально?


Go to the top of the page
 
+Quote Post
_pv
сообщение Feb 3 2015, 16:52
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(rekcuf @ Feb 3 2015, 22:11) *
Какими алгоритмами можно программно отфильтровать значения, чтобы при этом реакция на импульс не пострадала? И в идеале еще без сложной математики, т.к. у МК память 1 Кб.
Или нереально?

чтобы передаточная функция фильтра не изменяля реакцию на ступеньку, одна должна быть тождественно равной 1.
обычно при оверсэмплинге (в сигма-дельта АЦП) используют sinc3...5 фильтры, памяти им не надо (только на 3..5 отсчётов). получается чуть лучше чем просто усреднение или БИХ первого порядка.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Feb 3 2015, 17:21
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(_pv @ Feb 3 2015, 19:52) *
чтобы передаточная функция фильтра не изменяля реакцию на ступеньку, одна должна быть тождественно равной 1.
обычно при оверсэмплинге (в сигма-дельта АЦП) используют sinc3...5 фильтры, памяти им не надо (только на 3..5 отсчётов). получается чуть лучше чем просто усреднение или БИХ первого порядка.


Ну... если еще по производной (скачку больше порога) отключать усреднение, то ступенька будет ступенчатее. Только это уже нелинейная фильтрация.
Go to the top of the page
 
+Quote Post
one_eight_seven
сообщение Feb 3 2015, 17:37
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 916
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664



А усреднение/фильтрация точно должно помочь? Может там проблема с самим измерением и/или опорой?

Сообщение отредактировал one_eight_seven - Feb 3 2015, 17:37
Go to the top of the page
 
+Quote Post
rekcuf
сообщение Feb 3 2015, 18:16
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 5-10-08
Пользователь №: 40 704



Цитата(one_eight_seven @ Feb 3 2015, 20:37) *
А усреднение/фильтрация точно должно помочь? Может там проблема с самим измерением и/или опорой?


Есть некоторое количество плат, на которых должно все заработать.. В следующей ревизии можно будет аппаратно улучшить характеристики, а сейчас приходится работать с тем, что есть..
Go to the top of the page
 
+Quote Post
Hose
сообщение Feb 4 2015, 04:22
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 82
Регистрация: 7-01-15
Пользователь №: 84 450



У вас обязана быть пара фильтров: аналоговый перед ацп и цифровой после.
Сложность реализации можете распределять между этими фильтрами: если жалко ресурс камня - делайте сложнее аналог, или наоборот.

Я бы сделал так: частоту дискретизации побольше, рц фильтр, который гарантированно отрежет все что за половиной частоты дискретизации (конденсатор должен работать до частот выше аналоговой полосы ацп), далее простенький фнч в цифре 5-7 порядка, далее дециматор.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th June 2025 - 20:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.01405 секунд с 7
ELECTRONIX ©2004-2016