Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Теория - Выбор значения многозначной функции

Ответить
Настройки темы
Теория - Выбор значения многозначной функции

Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 178


Конфигурация

Профиль | Отправить PM | Цитировать


Здравствуйте.

Существует ИК дальномер SHARP, который можно подключить к ЦАП и в зависимости от расстояния до объекта будет изменяться напряжение на выходе дальномера. Зависимость напряжения не только нелинейная, но и с "крохотным" изъяном :



Отградуировав свой дальномер я получил похожую зависимость и пока у меня нет предположений как можно грамотно обработать получаемые данные. К примеру получив на выходе 1 Вольт, по графику видно что функция имеет два значения расстояния: 5 см и 65 см. Как вы наверное понимаете препятствие может возникнуть как на 5 так и на 65 сантиметрах. Отслеживать предыдущее значение расстояния по-моему неправильно из-за некоторого количества ошибок самого дальномера.

Посоветуйте пожалуйста оптимальный алгоритм для обработки данных.

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Отправлено: 13:51, 10-07-2012

 

Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 178

Профиль | Отправить PM | Цитировать


Цитата pva:
Под амплитудой шума я понимаю среднеквадратичное отклонение показаний, снятых в одном и том же положении. Конечно же имеет практический смысл считать только среднее за определённый период времени:
1. В цикле записываешь N показаний y[i], взятых через одинаковый промежуток времени
2. Считаешь среднее M=sum(y[i], 0<i<N) /*псевдокод*/
3. Считаешь дисперсию D=sum(pow(y[i]-M,2), 0<i<N)
4. Как правило "красивую" форму имеет ср.-кв. отклонение S=sqrt(D)
Сделай несколько замеров с разным интервалом по времени между y[i] и с разными расстояниями, покажи графики, может что подскажем. »
Ясно, я пока остановился на усреднении замеренных показателей в процессе градуирования дальномера. По-возможности сделаю графики и среднеквадратичного отклонения и выложу, раз к этому проявлен интерес

Цитата lxa85:
Различные коэф. поглощения звука? Ковер, ножка стола(дерево), бетон, различные типы обоев на стене?
Или пытаться анализировать отзвук и возвращаемую функцию. Обширнейшая теория звука в помощь! »
Да, о этих проблемах у ультразвуковых дальномеров я уже успел прочитать. Видимо в идеале нужно создавать непростой программно-аппаратный комплекс.

Цитата lxa85:
Слона едят по кусочкам. Создавай до крайней степени примитивную, но рабочую модель. Пусть она пока будет двигаться в "белом" пространстве. Будут проведены и готовы исследования -- ведешь "цветное" пространство. »
Так я в принципе и двигаюсь, просто задавая открытый вопрос сразу получаешь много дельных советов и предложений. Приятно. Но в то же время чтобы всё проверить приходится отдаляться от основной идеи.

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Отправлено: 22:52, 12-07-2012 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 995

Профиль | Сайт | Отправить PM | Цитировать


Цитата Tonny_Bennet:
Но в то же время чтобы всё проверить приходится отдаляться от основной идеи. »
Скажу по секрету - в том и есть "Наука"

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 00:38, 13-07-2012 | #12


Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 178

Профиль | Отправить 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) };
        }
Построил график в программе AdvancedGrapher. Применил сглаживание. Зелёная линия это арифметическое среднее. Красная - дисперсия. По оси абсцисс расстояние. По оси ординат значения в некоторых единицах АЦП (можно однозначно перевести в вольты).

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Последний раз редактировалось Tonny_Bennet, 13-07-2012 в 14:39.


Отправлено: 13:03, 13-07-2012 | #13

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить 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


Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 178

Профиль | Отправить PM | Цитировать


Цитата pva:
В формуле дисперсии не хватает "поделить на N-1" (кажется я забыл это написать), поэтому отклонение на графике завышено в Sqrt(999) раз. Для качественного анализа это не смертельно. »
В своём коде я делил на N.

Цитата pva:
1. Сглаживание лучше не делать, а просто отметить точки. На случайных данных сглаживание даёт сбивающие с толку эффекты. Сделай графики без сглаживания и без соединения точек. »


Цитата pva:
2. Странно, что на 1000 точках отклонение так сильно прыгает. Можно посмотреть массивы в точках x=10 и x=15? Возможно там не гауссово распределение (например дальномер "видит" рисунок на припятсвии) »
Хм, может я не правильно понял. Просто постараюсь ещё раз описать свои действия:

1. установил препятствие на расстоянии L см
2. запустил сбор статистики измерений пока не наберётся N штук.
3. произвёл усреднение и рассчитал дисперсию по представленным формулам.
4. записал в файл 3 значения: L M D (расстояние до объекта, среднее значение измерений, дисперсия)

Проделав данную процедуру 30 раз я получил набор значений (L M D) который построил в виде графика.

Цитата pva:
Можно посмотреть массивы в точках x=10 и x=15? Возможно там не гауссово распределение (например дальномер "видит" рисунок на припятсвии) »
Т.е. стоит посмотреть на распределение экспериментальных данных при измерении в одной точке?
Рисунка нет. Белый лист бумаги.

Цитата pva:
3. Функция отклика отличается от заявленной производителем (а может быть это эффект сглаживания) »
В первом посте я просто взял картинку из даташита другого оптического дальномера. Вид линии совпадает с оригиналом и я не считаю это каким-либо отклонением.

Цитата pva:
Чтобы получить хорошие данные не особо себя затрудняя, можно поедположить, что медленное движение препятствия на дальномер не оказывает больших эффектов на статистику 1000-точечного замера. Тогда можно поставить АЦП на постоянную запись (сливать данные на винт, пусть в 2-мегабайтный файл) и с постоянной небольшой скоростью двигать препятствие на дальномер (с этим хорошо справится шаговый двигатель). Замерив время начала и окончания эксперимента, можно узнать скорость движения. Большой файл порезать на 2-килобайтные кусочки. В итоге всё сделает автоматика, а во время эсперимента можно пить чай. »
Отличный вариант но вот шагового двигателя у меня нету

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Отправлено: 15:14, 13-07-2012 | #15


Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 178

Профиль | Отправить PM | Цитировать


Цитата pva:
Можно посмотреть массивы в точках x=10 и x=15? »
Установил препятствие на 10 см.

Построил диаграмму. По оси абсцисс значения АЦП по оси ординат количество фиксаций данного события.

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Последний раз редактировалось Tonny_Bennet, 13-07-2012 в 16:14.


Отправлено: 16:09, 13-07-2012 | #16

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Я имел в виду чтобы ты аттачил записанные файлы (семплы), я бы сам посмотрел нужные срезы . Судя по гистограмме (подозреваю что это плотность распределения), распределение не нормальное, а лог-нормальное или что-то в этом роде. Похоже что на выходной сигнал дальномера где-то накладывается нелинейное усиление. Попробуй построить гистограмму плотности распределения от логарифма получаемых значений.

Отправлено: 20:59, 13-07-2012 | #17


Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 178

Профиль | Отправить PM | Цитировать


Цитата pva:
Я имел в виду чтобы ты аттачил записанные файлы (семплы), я бы сам посмотрел нужные срезы »
На каких расстояниях записать?

Цитата pva:
Судя по гистограмме (подозреваю что это плотность распределения), распределение не нормальное, а лог-нормальное или что-то в этом роде. »
Я не могу сказать как это называется, но могу ещё раз рассказать как я получил эту гистрограмму. Я установил препятствие на 10 см. Запустил опрос датчика и смотрел сколько раз из 1000 будет появляться то или иное значение. Соответственно записывал количество регистраций значения Чем выше палочка тем больше раз выпадало это значение. На данном примере значение 368 регистрировалось 637 раз из тысячи. А значение 369 - 173 раза из тысячи.

Цитата pva:
Похоже что на выходной сигнал дальномера где-то накладывается нелинейное усиление. »
Откуда такие предположения и чем они мне грозят?

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Отправлено: 13:03, 14-07-2012 | #18

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Цитата Tonny_Bennet:
Я не могу сказать как это называется, но могу ещё раз рассказать как я получил эту гистрограмму. Я установил препятствие на 10 см. Запустил опрос датчика и смотрел сколько раз из 1000 будет появляться то или иное значение. »
немного теории чисто чтобы знать как это называется:
Стандартная процедура замеры плотности распределения такая (почти как ты описал):
1. записывается сигнал, дофига независимых отсчётов.
2. вещественная ось делится на равные отрезки (чем длинее отрезок - тем глаже, но меньше точек в гистограмме)
3. вычисляется сколько точек попали в каждый отрезок.
Второй вариант (по смыслу то же самое):
1. дофига точек
2. Строится функция распределения = вероятность попадания числа в отрезок (-inf; x) как функция от x (сколько % точек меньше x).
3. плотность распределения - это производная функции распределения по x

Цитата Tonny_Bennet:
На каких расстояниях записать? »
Мне понравились расстояния 10 и 15 см, потому что там явный скачок и провал ср-кв. отклонения. В идеале было бы хорошо посмотреть "типичный" сингал и "сильное отклонение от нормы", а расстояние любое от 10 до 30 см.

Снимать данные можно с любой частотой в диапазоне 100 - 10000 Гц (верх взял от балды, не принципиально). Нужно просто записать показания в файл (без обработки). Чем больше точек - тем представительней выборка. Советую от 1000 шт.

Цитата Tonny_Bennet:
Откуда такие предположения и чем они мне грозят? »
Гистограмма формой похожа на искаженную гауссиану. Природные шумы (случайные процессы, возникающие за счёт большого числа случайных факторов, имеющих различные распределения) в пределе подчиняются нормальному закону распределения (плотность в виде гауссианы). Т.о. возможно мы видим нелинейно искажённый природный шум. Исказить его можно усилителем.
Предположения не грозят, они могут помочь найти недостающий фактор, помогающий определить расстояние.

Отправлено: 21:35, 14-07-2012 | #19


Старожил


Сообщения: 154
Благодарности: 39

Профиль | Отправить PM | Цитировать


на мой взгляд вы немного не в ту степь углубились. вообще измерение достаточно важное - оно показывает насколько хорошо работает датчик, но вообще графики странные получились.
вот почему - мат. ожидание соизмеримо с дисперсией. т.е. значение, которое точно соотносится с расстоянием (мат. ожидание), соизмеримо по размерам, если не больше, со средним размером ошибки (дисперсией). это фигово и так быть не должно, скорее всего ты неправильно посчитал дисперсию. вот почему - на рисунке с 10 см такой дисперсии явно нет - это факт.
составь новые графики, возможно есть смысл увеличит на пару порядков замеры, уменьшив интервал между опросом (чтоб время не терять :-) ).
! но все это не поможет в проблемой перейти экстремум на графике вольты-расстояние. в коде программы для датчика эти данные бесполезны ибо поиск мат. ожидания для тебя будет всегда ибо один замер при поиске дистанции - лажа - тебе над делать больше. вот если бы там была некая нелинейность или какие нить особые места.
п.с. с расстояние дисперсия по идеи должна расти. чем больше расстояние - тем больше шума набирает сигнал

Отправлено: 20:38, 15-07-2012 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Теория - Выбор значения многозначной функции

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] В пункте "выбор столбцов в таблице" не все значения 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




 
Переход