roboforum.ru

Технический форум по робототехнике.


Калибровка нуля АЦП AD7792 (бывшая "Расчет рекурсивного ФНЧ"

Вопросы не попавшие в другие категории.

Калибровка нуля АЦП AD7792 (бывшая "Расчет рекурсивного ФНЧ"

Сообщение Radist » 27 апр 2013, 17:28

Получаю данные с АЦП каждые 20 мс. Выдавать инфу наверх надо со скоростью 1 раз в 100 мс, то есть есть возможность использовать предыдущие отсчеты. Сигнал - постоянное напряжение милливольтовой величины. Оно зашумлено белым шумом (все шаги по аналоговой фильтрации сигнала уже выполнены). Мне не важен тип фильтра, переходной процесс - мне важно качество фильтрования. Пока я пробовал самый простой фильтр:
Y(n) = ((100*Y(n-1)+156*X(n)))/256. Общая формула Y(n)=A*Y(n-1)+B*X(n), А+В=1. Он фильтрует, задержка всего 1 отсчет, но мне хочется большего. В инете слишком много теории и мало практики. Я хотел бы получить или хороший совет по пошаговому проектированию (формула и подбор коэффициентов, а также как посмотреть вид АЧХ), или ссылку на аналогичную информацию.
Последний раз редактировалось Radist 23 май 2013, 19:17, всего редактировалось 1 раз.
Аватара пользователя
Radist
 
Сообщения: 2254
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Расчет рекурсивного ФНЧ

Сообщение Romikgy » 27 апр 2013, 21:16

мне важно качество фильтрования
без знания типа сигнала , правильного фильтра не сделать ....
die Wahrheit ist irgendwo da draußen
Аватара пользователя
Romikgy
 
Сообщения: 750
Зарегистрирован: 15 ноя 2009, 13:37
Откуда: Porto Franco "Odessa"

Re: Расчет рекурсивного ФНЧ

Сообщение Radist » 27 апр 2013, 21:34

Сигнал я описал - это постоянка милливольтового диапазона. После оцифровки скачут младшие разряды АЦП - вот этот разброс я и хочу отфильтровать. Вот взять к примеру ADUC - он это делает аппаратно. Простое усреднение по пяти отсчетам работает плохо. Медианный фильтр работает лучше, но результат дает случайный, хотя и более вероятный. Поэтому и хочу попробовать рекурсией...
Аватара пользователя
Radist
 
Сообщения: 2254
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Расчет рекурсивного ФНЧ

Сообщение Romikgy » 27 апр 2013, 22:33

Radist писал(а): это постоянка милливольтового диапазона
емкость больше поставить и уйдут шумы....
die Wahrheit ist irgendwo da draußen
Аватара пользователя
Romikgy
 
Сообщения: 750
Зарегистрирован: 15 ноя 2009, 13:37
Откуда: Porto Franco "Odessa"

Re: Расчет рекурсивного ФНЧ

Сообщение Radist » 27 апр 2013, 23:19

Никуда они не уйдут. Как будто вы с АЦП никогда не работали. У меня единица младшего разряда 1,25 мкВ. Тема не об этом.
Аватара пользователя
Radist
 
Сообщения: 2254
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Расчет рекурсивного ФНЧ

Сообщение Duhas » 28 апр 2013, 10:27

по слову рекуррентный еще пробуйте искать а не по рекурсивный...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Расчет рекурсивного ФНЧ

Сообщение Romikgy » 28 апр 2013, 12:48

речь идет о дребезге младших битов?
die Wahrheit ist irgendwo da draußen
Аватара пользователя
Romikgy
 
Сообщения: 750
Зарегистрирован: 15 ноя 2009, 13:37
Откуда: Porto Franco "Odessa"

Re: Расчет рекурсивного ФНЧ

Сообщение Radist » 28 апр 2013, 14:04

Да, речь о дребезге младших битов. АЦП выдает 24 бита, из них два старших - служебные. Даташит обещает офигенную точность ENOB 20.6 битов. А по факту хрен. На плате только линейный стабилизатор 5В, опорник, АЦП, МК с выходом на уарт. Аналоговая земля, цифровая земля, аналоговое питание, цифровое питание, вход через RC цепочки - вся фильтрация аналоговая выполнена. Закороченный вход шумит с выбросами в 6 бит. Код считываю правильно (обычный SPI). Вот такие дела.

А официальное название рекурсивных (рекурентных) фильтров - фильтры с бесконечной импульсной характеристикой. Основная их особенность - они используют ранее вычисленные значения. А нерекурсивные используют только сигнал и предыдущие сигналы.
Аватара пользователя
Radist
 
Сообщения: 2254
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Расчет рекурсивного ФНЧ

Сообщение Madf » 28 апр 2013, 14:38

решал похожую проблему, но с меньшими скоростями...а почему не взять просто: накопительное, среднеарифметическое? при такой скорости уже 5 выборок есть, если этого мало и можно пренебречь динамикой, то количество можно и увеличить (чтобы накапливались данные)
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Расчет рекурсивного ФНЧ

Сообщение Radist » 28 апр 2013, 14:44

В том то и дело, что если выдавать даные раз в секунду, то все отлично выходит. НО, начальство поставило задачу: получать инфу и проверять аварийные уставки быстро, не медленнее 100 мс. Это для приборов противоаварийной защиты. Нашел по характеристикам быстрый (и точный) АЦП, теперь пытаюсь выжать из него точность на заявленной скорости. Поэтому тема и появилась. На пяти скользящее среднее работает плохо, поскольку есть большие выбросы в 6 бит.
Аватара пользователя
Radist
 
Сообщения: 2254
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Расчет рекурсивного ФНЧ

Сообщение Madf » 28 апр 2013, 15:23

Может ещё больше увеличить разрядность АЦП (если он шумит, а не сигнал скачет)?
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Расчет рекурсивного ФНЧ

Сообщение elmot » 28 апр 2013, 16:55

Radist писал(а):В том то и дело, что если выдавать даные раз в секунду, то все отлично выходит. НО, начальство поставило задачу: получать инфу и проверять аварийные уставки быстро, не медленнее 100 мс. Это для приборов противоаварийной защиты. Нашел по характеристикам быстрый (и точный) АЦП, теперь пытаюсь выжать из него точность на заявленной скорости. Поэтому тема и появилась. На пяти скользящее среднее работает плохо, поскольку есть большие выбросы в 6 бит.

длительность выбросов какая?
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Расчет рекурсивного ФНЧ

Сообщение Radist » 28 апр 2013, 18:39

Про длительность сказать не могу. Я смотрел осциллографом - на сигнале ВЧ шум. Но сейчас речь не об этом - вход закорочен прямо на ногах АЦП - навестись ничего не может. Значит это внутренние шумы (ИОН, АЦП). Измерение раз в 20 мс. Вот и все, что я могу сказать по этому делу.

Добавлено спустя 5 минут 55 секунд:
Madf писал(а):Может ещё больше увеличить разрядность АЦП (если он шумит, а не сигнал скачет)?

Другими словами взять другой АЦП большей разрядности. Но где гарантия, что с ним не будет тех же проблем.
До этого я работал с АЦП AD7705. У него тоже была такая же проблема. Но поскольку измерение за 1 секунду всех устраивало - усреднял 50 отсчетов и было все ок.
Аватара пользователя
Radist
 
Сообщения: 2254
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Расчет рекурсивного ФНЧ

Сообщение Duhas » 28 апр 2013, 19:12

при такой битности АЦП я бы на питание смотрел очень пристально..
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Расчет рекурсивного ФНЧ

Сообщение Radist » 28 апр 2013, 21:55

Линейный источник питания - диод - дроссель - электролит - керамика - резистор - электролит - керамика - стабилизатор REF195 - керамика (это цифровое питание) - два дросселя по питанию и земле (точка соединения цифровой и аналоговой земли) - электролит - керамика (аналоговое питание).

Добавлено спустя 2 часа 10 минут 45 секунд:
Сейчас, при закороченном входе, код прыгает с размахом плюс минус 40 мкВ максимум. Казалось бы такая малость, по ссравнению с опорником 2,5В. Но есть еще одно требование начальства: измерять сигнал с термопары в узком диапазоне с высоким классом точности. А это всего 6 мВ. И класс получается хуже чем 0,5 (а надо 0,1). То есть если решить обратную задачу, то максимальная ошибка измерения должна быть не больше 6 мкВ. Надо или фильтровать выход ацп (усреднение за секунду, кстати, позволяет получить погрешность меньше 6 мкВ), или усиливать вход. Мой АЦП это не умеет, а городить еще PGA не хочется.
Аватара пользователя
Radist
 
Сообщения: 2254
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

След.

Вернуться в Обо всём

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12