![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Теория - Выбор значения многозначной функции |
|
Теория - Выбор значения многозначной функции
|
Ветеран Сообщения: 1384 |
Здравствуйте.
Существует ИК дальномер SHARP, который можно подключить к ЦАП и в зависимости от расстояния до объекта будет изменяться напряжение на выходе дальномера. Зависимость напряжения не только нелинейная, но и с "крохотным" изъяном : ![]() Отградуировав свой дальномер я получил похожую зависимость и пока у меня нет предположений как можно грамотно обработать получаемые данные. К примеру получив на выходе 1 Вольт, по графику видно что функция имеет два значения расстояния: 5 см и 65 см. Как вы наверное понимаете препятствие может возникнуть как на 5 так и на 65 сантиметрах. Отслеживать предыдущее значение расстояния по-моему неправильно из-за некоторого количества ошибок самого дальномера. Посоветуйте пожалуйста оптимальный алгоритм для обработки данных. |
|
------- Отправлено: 13:51, 10-07-2012 |
Ветеран Сообщения: 1384
|
Профиль | Отправить PM | Цитировать Цитата pva:
![]() Цитата lxa85:
Цитата lxa85:
|
|||
------- Отправлено: 22:52, 12-07-2012 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Необычный Сообщения: 4466
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Tonny_Bennet:
![]() ![]() |
|
------- Отправлено: 00:38, 13-07-2012 | #12 |
Ветеран Сообщения: 1384
|
Профиль | Отправить PM | Цитировать Контроллер можно настроить на автоматический опрос линии АЦП. Установил частоту опроса на 100 Гц. Устанавливал белое препятствие на расстоянии от 5 до 45 см с интервалом в 1 см. В цикле набирал по 1000 значений измерений. И дальше по алгоритму написал функцию расчёта дисперсии.
double[] compute_disperse(List<int> Y) { int[] y = Y.ToArray(); double M = 0; for (int i=0; i< y.Length;i++) { M += y[i]; } M = M / y.Length; double D = 0; for (int i=0; i< y.Length; i++) { D += Math.Pow(y[i] - M,2); } return new double[] { M, Math.Sqrt(D) }; } ![]() |
------- Последний раз редактировалось Tonny_Bennet, 13-07-2012 в 14:39. Отправлено: 13:03, 13-07-2012 | #13 |
![]() Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать В формуле дисперсии не хватает "поделить на N-1" (кажется я забыл это написать), поэтому отклонение на графике завышено в Sqrt(999) раз. Для качественного анализа это не смертельно.
1. Сглаживание лучше не делать, а просто отметить точки. На случайных данных сглаживание даёт сбивающие с толку эффекты. Сделай графики без сглаживания и без соединения точек. 2. Странно, что на 1000 точках отклонение так сильно прыгает. Можно посмотреть массивы в точках x=10 и x=15? Возможно там не гауссово распределение (например дальномер "видит" рисунок на припятсвии) 3. Функция отклика отличается от заявленной производителем (а может быть это эффект сглаживания) 4. Создаётся ощущение, что на дальних расстояниях шум выше Чтобы получить хорошие данные не особо себя затрудняя, можно поедположить, что медленное движение препятствия на дальномер не оказывает больших эффектов на статистику 1000-точечного замера. Тогда можно поставить АЦП на постоянную запись (сливать данные на винт, пусть в 2-мегабайтный файл) и с постоянной небольшой скоростью двигать препятствие на дальномер (с этим хорошо справится шаговый двигатель). Замерив время начала и окончания эксперимента, можно узнать скорость движения. Большой файл порезать на 2-килобайтные кусочки. В итоге всё сделает автоматика, а во время эсперимента можно пить чай. |
Последний раз редактировалось pva, 13-07-2012 в 14:55. Отправлено: 14:46, 13-07-2012 | #14 |
Ветеран Сообщения: 1384
|
Профиль | Отправить PM | Цитировать Цитата pva:
Цитата pva:
![]() Цитата pva:
1. установил препятствие на расстоянии L см 2. запустил сбор статистики измерений пока не наберётся N штук. 3. произвёл усреднение и рассчитал дисперсию по представленным формулам. 4. записал в файл 3 значения: L M D (расстояние до объекта, среднее значение измерений, дисперсия) Проделав данную процедуру 30 раз я получил набор значений (L M D) который построил в виде графика. Цитата pva:
Рисунка нет. Белый лист бумаги. Цитата pva:
Цитата pva:
![]() |
||||||
------- Отправлено: 15:14, 13-07-2012 | #15 |
Ветеран Сообщения: 1384
|
Профиль | Отправить PM | Цитировать Цитата pva:
Построил диаграмму. По оси абсцисс значения АЦП по оси ординат количество фиксаций данного события. ![]() |
|
------- Последний раз редактировалось Tonny_Bennet, 13-07-2012 в 16:14. Отправлено: 16:09, 13-07-2012 | #16 |
![]() Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать Я имел в виду чтобы ты аттачил записанные файлы (семплы), я бы сам посмотрел нужные срезы
![]() |
Отправлено: 20:59, 13-07-2012 | #17 |
Ветеран Сообщения: 1384
|
Профиль | Отправить PM | Цитировать Цитата pva:
Цитата pva:
Цитата pva:
|
|||
------- Отправлено: 13:03, 14-07-2012 | #18 |
![]() Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать Цитата Tonny_Bennet:
Стандартная процедура замеры плотности распределения такая (почти как ты описал): 1. записывается сигнал, дофига независимых отсчётов. 2. вещественная ось делится на равные отрезки (чем длинее отрезок - тем глаже, но меньше точек в гистограмме) 3. вычисляется сколько точек попали в каждый отрезок. Второй вариант (по смыслу то же самое): 1. дофига точек 2. Строится функция распределения = вероятность попадания числа в отрезок (-inf; x) как функция от x (сколько % точек меньше x). 3. плотность распределения - это производная функции распределения по x Цитата Tonny_Bennet:
Снимать данные можно с любой частотой в диапазоне 100 - 10000 Гц (верх взял от балды, не принципиально). Нужно просто записать показания в файл (без обработки). Чем больше точек - тем представительней выборка. Советую от 1000 шт. Цитата Tonny_Bennet:
Предположения не грозят, они могут помочь найти недостающий фактор, помогающий определить расстояние. |
|||
Отправлено: 21:35, 14-07-2012 | #19 |
Старожил Сообщения: 154
|
Профиль | Отправить PM | Цитировать на мой взгляд вы немного не в ту степь углубились. вообще измерение достаточно важное - оно показывает насколько хорошо работает датчик, но вообще графики странные получились.
вот почему - мат. ожидание соизмеримо с дисперсией. т.е. значение, которое точно соотносится с расстоянием (мат. ожидание), соизмеримо по размерам, если не больше, со средним размером ошибки (дисперсией). это фигово и так быть не должно, скорее всего ты неправильно посчитал дисперсию. вот почему - на рисунке с 10 см такой дисперсии явно нет - это факт. составь новые графики, возможно есть смысл увеличит на пару порядков замеры, уменьшив интервал между опросом (чтоб время не терять :-) ). ! но все это не поможет в проблемой перейти экстремум на графике вольты-расстояние. в коде программы для датчика эти данные бесполезны ибо поиск мат. ожидания для тебя будет всегда ибо один замер при поиске дистанции - лажа - тебе над делать больше. вот если бы там была некая нелинейность или какие нить особые места. п.с. с расстояние дисперсия по идеи должна расти. чем больше расстояние - тем больше шума набирает сигнал |
Отправлено: 20:38, 15-07-2012 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - [решено] В пункте "выбор столбцов в таблице" не все значения | anivan | Microsoft Windows 2000/XP | 4 | 16-09-2011 12:56 | |
Разное - [решено] Excel 2003 выбор текстового значения или заменить | bygor1412 | Microsoft Office (Word, Excel, Outlook и т.д.) | 2 | 24-10-2010 03:09 | |
C/C++ - Присвоение функции значения | mrcnn | Программирование и базы данных | 4 | 07-11-2008 08:26 | |
Значения параметров | h00ligan | Автоматическая установка Windows 2000/XP/2003 | 1 | 21-06-2005 12:23 | |
Значения абривеатур | Trojn | Хочу все знать | 11 | 21-05-2003 23:58 |
|