?

Log in

No account? Create an account
  Journal   Friends   Calendar   User Info   Memories
 

Электронный миссионер

4th December, 2007. 7:01 pm. Проблемы ошибок квантованияи при численном взятии производной.

Когда я был в Питере, и мы сидели в кабаке, у нас с товарищами microtrigger, zyrg, и vshmuk возникли дебаты про численное нахождение производной, снятой с АЦП. Грубо говоря, есть некоторый датчик, который снимает интегральный сигнал (ну к примеру путь S), а нам нужно построить производную этого сигнала (к примеру скорость V). Товарищ zyrg с пеной у рта доказывал, что это весьма сложная задача, с которой могут быть великие проблемы, если не использовать специальных фильтров. Я решил отложить дебаты, пока сам не решу эту задачу. Приехав домой, я быстренько забабах это всё в Exel. При проверке, решил сразу убить двух зайцев - проверить ошибки квантования и убедится в верности нахождения производной. В двух словах вдадимся в подробности теории. Что есть производная:



Поскольку дельта икс у нас совершенно чёткая, или скорее равная отрезкам оцифровки, то производная значения снятого с АЦП будет нынешнее значение минус предыдущее, делённое на период квантования: df/dt=(f(t1) -f(t2))/(t1 -t2). Для опытов я выбрал функцию гармонического синуса sin(x). В дальнейшем проверил и на остальных функциях, но это самая красивая и в нашем случае самая актуальная.


Изначальный график для экспериментов

Для начала я составил таблицу, над которой начал издеваться. Первая строчка [ t= ] - это время от старта работы условного АЦП, который наращивается с шагом квантования (последняя строчка). Вторая - [ SIN(t) ]синус вычесленный от этого кванта времени, формула которого примитивна: =SIN(B1). Третья - [ dSIN(t)/dt ] это численное нахождение производной. Формула её проста: =(C2-B2)/C5 (первая ячейка). Предпоследняя строчка это [ COS(t) ], это нахождения косинуса от перменной t. Она нужна для того, чтобы сравнивать с истинным значением косинуса вычисленную производную (если помните, производная синуса - это косинус). Последняя строка - это квантование, т.е. проще говоря шаг изменения t. Внизу строиться график, который строит гибкую линию по точкам. Сейчас у нас выбран самый оптимальный шаг квантования 0,5 . Здесь всё ясно, дальше я двух разделах покажу сначала ошибки квантования, и следственные ошибки производных, затем ошибки дифференцирования при ошибочных входных данных. Если ваш мозг не вспух и вы готовы дальше пуститься в дебри математики и электроники, то лезем под катCollapse )


Вывод: Считать численно производную по снятым значениям с АЦП можно и нужно. Но необходимо оценивать уровень внешних помех, которые могут влиять на сигнул, и очень сильно его портить. Желательно использовать фильтрацию сигнала, выделяя полезный сигнал. Филтрация может быть как аналоговая, так цифровуя. Мне даже показали прекрасную формульную замену аналоговой фильтрацией прекрасной програмкой на си. И разумеется мы должны себе ЧЁТКО представлять какой сигнал цифруем, и не цифровать сигнал на пределах возможностей АЦП. 5 точек на период, как показала практика - не самый плохой вариант!

Read 11 Notes -Make Notes

Back A Day - Forward A Day