Обработка аналогового сигнала.Как правильно?

NikolayCH
Offline
Зарегистрирован: 23.12.2014

Подскажите Уважаемые Гуру!Как сделать правильно и красиво с вашей точки  зрения?

Хочется получить точные данные с аналогового входа.Допустим....

Делаем семь измерений по аналоговому входу,отбрасываем самое меньшее и самое большее,

остальные пять суммируем,делим на пять .Далее как быть с дробной частью?....

Или это не в ту сторону?Тогда ткните носом Плиз!

Спасибо!

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

NikolayCH, методика обычно выбирается исходя из поставленной задачи. Какая у вас задача?

NikolayCH
Offline
Зарегистрирован: 23.12.2014

Хочется получить точные данные с аналогового входа

faraddin
Offline
Зарегистрирован: 11.08.2013

NikolayCH пишет:

Хочется получить точные данные с аналогового входа

Это вам к математикам. Можно среднеквадратичное использовать, среднекубическое.. в ардуину и прцессинг это все никак не упирается

Araris
Offline
Зарегистрирован: 09.11.2012

Если надо просто фильтровать+усреднять данные, пару лет уже пользуюсь функцией digitalSmooth(data, arrayName), вот отсюда: http://playground.arduino.cc/Main/DigitalSmooth

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

NikolayCH пишет:
Хочется получить точные данные

Какую точность хотите получить-то (вольты-милливольты-микровольты)?

Может 10-битного разрешения не хватит и придётся юзать 12, 16-битные внешние АЦП...

NikolayCH
Offline
Зарегистрирован: 23.12.2014

Спасибо Камрады!   

 Araris с функцией digitalSmooth попробую поразбираться.

Поищу ещё примеры.   

OlegK конечно  10 разрядов не густо,но математикой ИМХО можно выжать.

yul-i-an
yul-i-an аватар
Offline
Зарегистрирован: 10.12.2012

Я использовал оверсемплинг тут.

Отлично работает особенно если шум в сигнале присутствует.

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Так точность какая требуется, если не секрет?

NikolayCH
Offline
Зарегистрирован: 23.12.2014

OlegK отслеживать 0,5 - 1 милливольт

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

0,5 - 1мВ...

Смотря при каком диапазоне измерения и референсе, опять же...

Для 5-вольтового диапазона, такого же опорного напряжения и 12 бит разрешения минимальная величина составит ~1,2 мВ (5/4096), наверное лучше применить внешнее опорное, к примеру на LM385: 1.24В/4096~0.3мВ

Вопрос, будет ли это достижимо с интерполяцией...

У меня была задача получить точность 0.1-0.5 мВ, поэтому я не заморачивался и применил 16-битный АЦП (примерно 0.15мВ при 5-вольтовом диапазоне).

NikolayCH
Offline
Зарегистрирован: 23.12.2014

 OlegK я хочу попробовать обойтись АЦП ардуиновским.Поэтому нужно заморачиваться с математикой.

Ссылки мне дали,сейчас запарка по работе,освобожусь поразбираюсь!

Для себя вижу две первоочередные задачи.

1.Записать осциллограмму сигнала.Оценить изменения амплитуды сигнала в динамике.

2.С математикой поэкспериментировать в статике в Экселе.

 

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Будет очень интересно посмотреть на результат. Удачи вам!

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

NikolayCH, а что вы хотите математикой сделать? :)  Абсолютная погрешность ADC в меге +/- 2 LSB, это порог, который никакая математика не перепрыгнет.  При ваших запросах к  измерению 0,5мв один отсчёт должен быть примерно 0,1 мв,  в этом случае максимально измеряемое напряжение (референс) для 10-битного ацп составит всего 100мв. Это мы ещё не берём в рассчет то, что внешний референс должен быть с совершенными параметрами.  Даже применив 16- и более битные ацп вам придётся серьёзно потрудится над разводкой, экранированием и  питанием платы ацп и над источником опорного напряжения что-бы выжать точность, позволяющую измерить 0,5..1 мв.

NikolayCH
Offline
Зарегистрирован: 23.12.2014

Про измерение 0,5 мв. речи небыло.

...." отслеживать 0,5 - 1 милливольт".... ,возможно мне хватит 

оценки динамики процесса - сигнал меняется в + 0,5....1 мв. или в-.

По поводу дёргания младшего разряда АЦП я в курсе.

И как раз  математикой можно  фильтровать такие дёргания.

NikolayCH
Offline
Зарегистрирован: 23.12.2014
  К вопросу,что мы делаем математикой?Пример ниже.Если тупо читать вход в момент замера с №3
 по № 7 мы получим значение -503.
 Если мы проведём даже простеййшее вычисление среднего - видно динамику процесса.
 
 № замера    1   2    3     4      5     6    7     8     9     10   Результат(среднее арифметическое)
  Данные 502 502 503 503 503 503 503 503 503 504   502,90
  Данные 502 502 503 503 503 503 503 503 504 504   503,00
  Данные 502 502 503 503 503 503 503 504 504 504   503,10
 
Увеличиваем количество замеров - вот вам и 16 разрядный  " програмный " АЦП.
trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

То есть метрологам можно выкинуть все свои приборы и даже эталоны и заменить их вашей "программой".

NikolayCH
Offline
Зарегистрирован: 23.12.2014

  trembo у Вас есть что сказать за алгоритм а не за приборы?

Или Ардуино внесли в гос. реестр средсв измерения? 

 

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Из 10-ти разрядов в 16- оказывается так легко легко! А почему сразу на 24 разряда не замахнуться?

Прочитайте про LSB, нелинейность, опорное напряжение и вообще про метрологию..... хотя-бы  из http://arduino.ru/forum/programmirovanie/obrabotka-analogovogo-signalakak-pravilno#comment-92500

А погрешности складываются, а не компенсируются!

Для примера вам: измеряем резистор методом вольтметра-амперметра.

погрешность вольтметра 3%, амперметра 2%. Погрешность измерения сопротивления - 5 %

Как я понял вам нужно чтобы- что-то там показывало, да побольше бы знаков после запятой- тогда вы на верном пути!

NikolayCH
Offline
Зарегистрирован: 23.12.2014

 trembo я задал Вам вопрос про алгоритм.Есть что сказать за   алгоритм измерения?

Какие погрешности в моём примере ( пост № 15) Вы хотите складывать?

Ребята давайте по существу.Вопрос темы - математика!

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

NikolayCH, по существу, так по существу. Апноут121-теория http://www.atmel.com/Images/doc8003.pdf, и приложение к нему - практический пример кода www.atmel.com/Images/AVR121.zip Дерзайте :)

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Человек посчитал среднее, ан нет, оказывается он 4 разряда к АЦП добавил!

https://www.youtube.com/watch?v=XyRBnzKEkE8

yul-i-an
yul-i-an аватар
Offline
Зарегистрирован: 10.12.2012

Попробуйте оверсемплинг. Пост#7.