реклама на сайте
подробности

 
 
> Равномерное распределение с размытыми границами, Как определить границы?
ViKo
сообщение May 14 2012, 09:44
Сообщение #1


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Допустим, измеряемая величина имеет равномерное распределение в диапазоне от Xm до Xn. Из-за погрешностей измерения, шума, дрейфа и т.п. края этого распределения не идеально ровные, а плавно спадают. Т.е. с малой вероятностью возможно получение результатов за пределами Xm...Xn. Так же возможно, что измеренные значения не будут занимать весь диапазон Xm...Xn. В обоих случаях нужно подкорректировать значения Xm и Xn. Как бы это сделать покрасивее и попроще?
Например, так. Представим, что края спадают линейно. Тогда суммарная вероятность попадания в диапазон, соответствующий спадающему краю будет в 2 раза меньше, чем вероятность попадания в такой же по размеру диапазон где-нибудь в середине (площадь меньше в 2 раза). Если же вероятность оказывается больше или меньше половины, нужно сдвинуть Xm (или Xn).
Go to the top of the page
 
+Quote Post
3 страниц V   1 2 3 >  
Start new topic
Ответов (1 - 36)
scifi
сообщение May 14 2012, 09:58
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Если "в лоб", то варьируем Xm, Xn, максимизируя функцию Nin/(Ntot*(Xn-Xm)), где Nin - число точек, попавших в диапазон от Xm до Xn, а Ntot - общее число точек.

Disclaimer:
Естественно, могу жестоко ошибаться.
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 14 2012, 10:53
Сообщение #3


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(scifi @ May 14 2012, 12:58) *
варьируем Xm, Xn, максимизируя функцию Nin/(Ntot*(Xn-Xm))

Так не понятно, какую границу менять, Xm или Xn, и куда. Мне не хотелось бы болтать их туда-сюда, чтобы найти оптимальное значение, а сразу двигаться в нужную сторону.

Пополам разбить, и для каждой половины свой алгоритм использовать?
Go to the top of the page
 
+Quote Post
alexvu
сообщение May 14 2012, 11:08
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 172
Регистрация: 14-11-11
Из: Москва
Пользователь №: 68 299



Не ясна Ваша задача.
"Нужно подкорректировать" - для какой цели.
Каков критерий, что значения "подкорректированы" именно так, как "нужно"?
Все значения должны попадать в диапазон (в этом случае теоретически он получится бесконечный), или 99%, или 90%.
Какое распределение и дисперсию по отношению к измеряемой величине имеют "погрешности, шум и дрейф"?
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 14 2012, 11:22
Сообщение #5


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(alexvu @ May 14 2012, 14:08) *
Не ясна Ваша задача.
"Нужно подкорректировать" - для какой цели.
Каков критерий, что значения "подкорректированы" именно так, как "нужно"?

Найти эти два числа, Xm и Xn, максимально точно соответствующие реальным без погрешностей. Как, например, измеряя некое постоянное напряжение, путем усреднения получить точное значение (математическое ожидание, говоря языком теории вероятности). А здесь - два таких числа, на границах.
Цитата
Все значения должны попадать в диапазон (в этом случае теоретически он получится бесконечный), или 99%, или 90%.
Какое распределение и дисперсию по отношению к измеряемой величине имеют "погрешности, шум и дрейф"?

Теоретически пусть будет бесконечным. А на практике, естественно, будет ограничен. Распределение погрешностей - можно предположить близким к нормальному, хотя, естественно, не до бесконечности. Для простоты можно предположить и линейные спады.

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

Или еще проще - когда плотность распределения пересекает уровень 0.5.
Go to the top of the page
 
+Quote Post
alexvu
сообщение May 15 2012, 09:06
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 172
Регистрация: 14-11-11
Из: Москва
Пользователь №: 68 299



Цитата(ViKo @ May 14 2012, 14:22) *
Или еще проще - когда плотность распределения пересекает уровень 0.5.

Ну вот и критерий появился.
Накапливаете гистограмму (можно только по краям, если требуется экономить память и примерно известен диапазон) и находите в ней этот свой уровень 0.5.
Так как про величину дисперсии ошибок Вы не ответили, то более простого (по объему памяти) способа пока нет.
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 15 2012, 10:43
Сообщение #7


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(alexvu @ May 15 2012, 12:06) *
Ну вот и критерий появился.
Накапливаете гистограмму (можно только по краям, если требуется экономить память и примерно известен диапазон)

Пока размышляю над следующим. Около границ площадь под кривой плотности распределения будет в 2 раза меньше, чем в середине, для равных отрезков X.
Можно взять, например, 8 точек около Xm, столько же в середине, столько же около Xn. И накапливать количество попаданий в эти участки. Если количество попаданий в участок около границы меньше, чем половина от попаданий в середину, значит, границу нужно передвинуть внутрь. Если больше - наружу. Вопрос, насколько?
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 17 2012, 07:42
Сообщение #8


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Если распределение Xm...Xn прямоугольное, то сочинил следующий алгоритм.
После каждого измерения.

1. Вычисляю среднее, с помощью экспоненциального фильтра,
Mnew = Mold * (1 - a) + X * a
где a - коэффициент усреднения, например 1/1024.
2. Вычисляю средний модуль отклонения таким же фильтром,
Dnew = Dold * (1 - a) + (|Mold - X|) * a
(Может, здесь нужно Mnew - X?)
3. Вычисляю границы (они отстоят от среднего в 2 раза дальше, чем средний модуль отклонения)
Xm,n = Mnew +- Dnew * 2

Как, годится?
Надо проверить в MatLab, но я пока на стадии освоения его.
Go to the top of the page
 
+Quote Post
alexvu
сообщение May 17 2012, 09:21
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 172
Регистрация: 14-11-11
Из: Москва
Пользователь №: 68 299



Цитата(ViKo @ May 15 2012, 13:43) *
Если количество попаданий в участок около границы меньше, чем половина от попаданий в середину, значит, границу нужно передвинуть внутрь. Если больше - наружу. Вопрос, насколько?

Поищите формулу оценки достоверности гипотез, по ней можно определить, сколько данных надо накопить для заданной точности и на сколько двигать границу. Но все равно, Вам понадобится распределение и дисперсия ошибок, которые Вы тщательно скрываете sm.gif
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 17 2012, 10:17
Сообщение #10


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(alexvu @ May 17 2012, 12:21) *
распределение и дисперсия ошибок, которые Вы тщательно скрываете

... которых я просто не знаю. Это же не научная задача, а инженерная. Поскольку идеального в мире ничего нет, ищу алгоритм, который следил бы за изменениями диапазона.
Go to the top of the page
 
+Quote Post
alexvu
сообщение May 17 2012, 11:09
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 172
Регистрация: 14-11-11
Из: Москва
Пользователь №: 68 299



Ну все равно, дисперсия же какая-то есть? Ну там, средняя величина ошибки, уровень шума и т.д.
Относительно уровня сигнала.

Сообщение отредактировал alexvu - May 17 2012, 11:10
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 17 2012, 11:41
Сообщение #12


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Какие-то есть sm.gif это все, что я могу предположить.
Вопрос стоит не в том, чтобы знать, насколько точно измеряет измеритель. А в том, насколько стабильна сама измеряемая величина (у меня же созданная). Которая должна принимать некие значения, равномерно распределенные в диапазоне Xm...Xn, но может плавать по разным причинам. Ну, и сам измеритель добавляет ошибок.

Высчитывать влияние этих причин мне не кажется благодарным делом. Знание вероятной дисперсии результата с учетом всех факторов мне поможет разве что в оценке качества нужного фильтра (та самая "a" (альфа должна называться), которую я указал в сообщении №8). Начну с чего-нибудь...

Мне достаточно следить за результирующим диапазоном Xm...Xn и использовать его для правильной интерпретации каждого результата измерения. Важны относительные измерения, не абсолютные.
Go to the top of the page
 
+Quote Post
xemul
сообщение May 17 2012, 11:59
Сообщение #13



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(ViKo @ May 17 2012, 14:17) *
... которых я просто не знаю. Это же не научная задача, а инженерная. Поскольку идеального в мире ничего нет, ищу алгоритм, который следил бы за изменениями диапазона.

Набираете статистику, аппроксимируете плотность распределения, н-р, трапецией (по Вашему описанию - достаточно), определяете поведение пределов распределения при изменении распределения.
Инженерно реализуете полученную модель (достаточно соотношений площадей крыльев трапеции к её центру == гистограмма о 3-ёх столбцах) арифметическим образом.
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 17 2012, 12:07
Сообщение #14


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(xemul @ May 17 2012, 14:59) *
Инженерно реализуете полученную модель (достаточно соотношений площадей крыльев трапеции к её центру == гистограмма о 3-ёх столбцах) арифметическим образом.

Да, так и планировал. И делал что-то подобное. Но сегодня осенился новой идеей, более простой (сообщение №8). Буду хранить только два числа - середину диапазона и средний модуль отклонения.
Go to the top of the page
 
+Quote Post
scifi
сообщение May 17 2012, 12:51
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(ViKo @ May 17 2012, 16:07) *
Буду хранить только два числа - середину диапазона и среднее отклонение.

Кстати, имеет место интересный факт: для вычисления среднего значения и среднеквадратичного отклонения достаточно двух сумм - суммы квадратов чисел и просто суммы чисел.
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 17 2012, 13:00
Сообщение #16


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(scifi @ May 17 2012, 15:51) *
Кстати, имеет место интересный факт: для вычисления среднего значения и среднеквадратичного отклонения достаточно двух сумм - суммы квадратов чисел и просто суммы чисел.

... а количество просуммированных чисел? Расскажите уже, как вычислять.

У меня не среднеквадратичное отклонение, а среднее отклонение.
Go to the top of the page
 
+Quote Post
Tanya
сообщение May 17 2012, 13:03
Сообщение #17


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(ViKo @ May 17 2012, 17:00) *
У меня не среднеквадратичное отклонение, а среднее отклонение.

Среднее отклонение от среднего по определению равно нулю. Можно даже не считать.
А чтобы правильно считать то, что Вы хотите, нужно либо априорно (один раз измерить хорошенько), либо непрерывно экспериментально узнавать функцию распределения движения Вашей границы. Можно при некоторых общих предположениях предположить, что будет работать предельная теорема... Но лучше измерить.
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 17 2012, 13:16
Сообщение #18


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Tanya @ May 17 2012, 16:03) *
Среднее отклонение от среднего по определению равно нулю. Можно даже не считать.

Средний модуль отклонения!
Подправил алгоритм. Просто не описал, хотя предполагал, естественно.

Что касается экспериментов, то получались примерно следующие результаты: весь диапазон около 100...200, плавает на 1-2 в течение минуты. Намного ближе к равномерному распределению, чем к нормальному.
Go to the top of the page
 
+Quote Post
scifi
сообщение May 17 2012, 13:22
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(ViKo @ May 17 2012, 17:00) *
Расскажите уже, как вычислять.

Вот тут есть формула:
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 17 2012, 13:29
Сообщение #20


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(scifi @ May 17 2012, 16:22) *
Вот есть формула

и в ней есть n. Итого - 3 числа.
Go to the top of the page
 
+Quote Post
Tanya
сообщение May 17 2012, 18:36
Сообщение #21


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(ViKo @ May 17 2012, 17:16) *
Средний модуль отклонения!
Подправил алгоритм. Просто не описал, хотя предполагал, естественно.

Что касается экспериментов, то получались примерно следующие результаты: весь диапазон около 100...200, плавает на 1-2 в течение минуты. Намного ближе к равномерному распределению, чем к нормальному.

А зачем нужен средний модуль отклонения?
Вы немного нас (или только меня ?) недопонимаете. Речь идет о том, что Вы измеряете границу. Пусть нижнюю.
Это одно значение. Но неплохо было бы знать функцию распределения. Она может быть очень даже разной. А Вы еще хотите ее (границу) точно определить в некоторый момент времени. Это не всегда можно сделать корректно. Вот хорошо, если она быстро осциллирует, а дрейф пренебрежимо мал за время измерения. А если дрейф не мал?
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 17 2012, 18:49
Сообщение #22


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Tanya @ May 17 2012, 21:36) *
А зачем нужен средний модуль отклонения?
Вы немного нас (или только меня ?) недопонимаете. Речь идет о том, что Вы измеряете границу. Пусть нижнюю.
Это одно значение. Но неплохо было бы знать функцию распределения. Она может быть очень даже разной. А Вы еще хотите ее (границу) точно определить в некоторый момент времени. Это не всегда можно сделать корректно. Вот хорошо, если она быстро осциллирует, а дрейф пренебрежимо мал за время измерения. А если дрейф не мал?

Границы я не измеряю, а вычисляю статистически, по массиву измеренных значений.
Считая распределение равномерным (а оно таким и должно быть в моем устройстве, в идеале, это я знаю точно, но дрейфующим), средний модуль отклонения будет равен половине от максимального.
Дрейф мал. Но возможны редкие ошибочные измерения (никто ж не застрахован) из-за помех, и шум. Вот этот малый дрейф (смещение, усиление) и хочу отследить, и эти ошибки хочу отфильтровать.
Я уже в MatLab экспериментирую, покажу, что вышло.
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 17 2012, 20:21
Сообщение #23


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Вот скрипт (первый опыт)
Код
%{
Проверка слежения за границами прямоугольного распределения
%}
N = 1000;
t = 1:N;
% a = 1/1024;
x(t) = randi([100,200],[N,1]);

M(1)=x(1);
D(1)=0;
R(1)=0;
L(1)=0;

for i = 2:N
  a = 1/i;
  M(i) = M(i-1)*(1-a) + x(i)*a;
  D(i) = D(i-1)*(1-a) + abs(M(i-1)-x(i))*a;
  L(i) = M(i) - D(i)*2;
  R(i) = M(i) + D(i)*2;
end

% plot(t,x);
% plot(t,x, t,M);
plot (t,x, t,M, t,L, t,R);

Вот результат
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Tanya
сообщение May 18 2012, 05:53
Сообщение #24


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(ViKo @ May 17 2012, 22:49) *
Границы я не измеряю, а вычисляю статистически, по массиву измеренных значений.

А разве это не является измерением? Они всегда такие...
Смысл моего вопроса в том, как себя ведет измеряемая величина? У Вас должна быть модель или экспериментальная или априорная. А просто так измерять и моделировать в матлабе - не очень... занятие.
Вот, к примеру, представьте, что граница прыгает между двумя фиксированными уровнями. Имеет ли смысл вычислять какое-то среднее, средний модуль отклонения... и пр.?
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 18 2012, 07:36
Сообщение #25


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Tanya @ May 18 2012, 08:53) *
Смысл моего вопроса в том, как себя ведет измеряемая величина? У Вас должна быть модель или экспериментальная или априорная.

Так сказал же уже раз пять, начиная с заголовка темы. sm.gif Равномерное распределение. Плюс небольшой шум, ошибки, помехи, дрейфы, метастабильные эффекты, которые можно считать нормально распределенными (а как же иначе?), но этот "плюс" весьма небольшой. Создано моим собственным трудом.
Go to the top of the page
 
+Quote Post
Tanya
сообщение May 18 2012, 08:10
Сообщение #26


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(ViKo @ May 18 2012, 11:36) *
Так сказал же уже раз пять, начиная с заголовка темы. sm.gif Равномерное распределение. Плюс небольшой шум, ошибки, помехи, дрейфы, метастабильные эффекты, которые можно считать нормально распределенными (а как же иначе?), но этот "плюс" весьма небольшой. Создано моим собственным трудом.

Вы зря пять раз повторяете, а не читаете.
Речь (моя) о распределении той самой границы, которую Вы хотите найти.
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 18 2012, 09:18
Сообщение #27


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Tanya @ May 18 2012, 11:10) *
Речь (моя) о распределении той самой границы, которую Вы хотите найти.

Будем считать нормальным. Складывая с распределением между границами, получаем некое плавное нарастание от 0 до p, и такой же спад на другом конце. (Можно попробовать в Matlab добавить к равномерному распределению легкий нормальный шум, займусь и этим.) Точки перегиба этих нарастания и спада меня вполне устроят в качестве границ. Считаю, что тот алгоритм, который я описал, учтет и "нормальные хвосты". "Хвост" приложится к "голове" и в результате даст p.

P.S. Границы для меня - только ... границы, относительно которых я вычисляю нужное мне значение при каждом измерении X.
Go to the top of the page
 
+Quote Post
Tanya
сообщение May 18 2012, 09:55
Сообщение #28


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(ViKo @ May 18 2012, 13:18) *
Будем считать нормальным.

Тогда... Или определять два числа - среднее положение границы и дисперсию, или, если дисперсия предполагается константой, - только среднее. А дисперсию измерить один раз. Это легче.

Цитата(ViKo @ May 18 2012, 13:18) *
(Можно попробовать в Matlab добавить к равномерному распределению легкий нормальный шум, займусь и этим.)

Это называется -"химичить с бубном"?
Go to the top of the page
 
+Quote Post
xemul
сообщение May 18 2012, 10:11
Сообщение #29



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(ViKo @ May 18 2012, 13:18) *
Будем считать нормальным.

Тогда при условии "площадь центра трапеции >> площади крыльев" можете считать, что крылья двигаются параллельным переносом (с постоянным углом относительно основания), а не поворотом.
Цитата
я вычисляю нужное мне значение при каждом измерении X.

имхо, избыточно. Ваша задача решается в целочисленной арифметике на 3-ёхстолбцовой гистограмме.
Хотя можно остаться в её рамках, используя, н-р, целочисленного Брезенхайма и на каждом измерении.
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 18 2012, 10:39
Сообщение #30


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Tanya @ May 18 2012, 12:55) *
Тогда... Или определять два числа - среднее положение границы и дисперсию, или, если дисперсия предполагается константой, - только среднее. А дисперсию измерить один раз. Это легче.

Дисперсия = константа. Ну, и как вычислять среднее для границы? Об этом, собственно, и тема.

Цитата(xemul @ May 18 2012, 13:11) *
Тогда при условии "площадь центра трапеции >> площади крыльев" можете считать, что крылья двигаются параллельным переносом (с постоянным углом относительно основания), а не поворотом.

Да. Я говорю о том, что приложив "крылья" ("хвосты") из-за границы ( rolleyes.gif ) к частям внутри границ (рядом с границами, там же уже спад распределения), можно приблизительно считать все распределение между границами равномерным.
Цитата
имхо, избыточно. Ваша задача решается в целочисленной арифметике на 3-ёхстолбцовой гистограмме.

Это то, что я дальше делаю. То, что я подразумеваю под понятием "измерение". К делу не относится.
В данной теме мне нужно лишь найти границы и отслеживать их изменение. По алгоритму в сообщении №8 это проще, чем накапливать 3 столбца. Мне нужно будет накапливать только среднее значение, и среднее абсолютное отклонение.
Go to the top of the page
 
+Quote Post
Tanya
сообщение May 18 2012, 10:53
Сообщение #31


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(ViKo @ May 18 2012, 14:39) *
Дисперсия = константа. Ну, и как вычислять среднее для границы? Об этом, собственно, и тема.

Ну тогда эффективное распределение (с одной стороны, если забыть про вторую границу) будет интеграл (нормированный) от Тэта-функции на гауссову функцию от x-a, где a - искомое положение границы. Вот теперь уже можно выкручиваться и искать эту самую a.
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 18 2012, 11:07
Сообщение #32


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Такое мне не осилить!
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 21 2012, 11:52
Сообщение #33


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Продолжаю эксперименты. Добавил нормальный шум.
Код
%{
Проверка слежения за границами прямоугольного распределения
Границы размыты нормальным распределением
%}
N = 100000;
t = 1:N;
% a = 1/1024;
X(t) = randi([100,200],[N 1]) + round(randn([N 1]) * 5);

M(1) = X(1); D(1) = 0; R(1) = 0; L(1) = 0;

for i = 2:N
  a = 1 / i;
  M(i) = M(i-1) * (1-a) + X(i) * a;
  D(i) = D(i-1) * (1-a) + abs(M(i-1) - X(i)) * a;
  L(i) = M(i) - D(i) * 2;
  R(i) = M(i) + D(i) * 2;
end

% plot(t,x);
% plot(t,x, t,M);
% plot (t,x, t,M, t,L, t,R); grid on;
hist (X, 120);

Получил следующую гистограмму для X. Что я сделал не так?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
reginil_y
сообщение May 25 2012, 11:13
Сообщение #34


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 4-03-12
Пользователь №: 70 608



Цитата(ViKo @ May 14 2012, 13:44) *
Допустим, измеряемая величина имеет равномерное распределение в диапазоне от Xm до Xn. Из-за погрешностей измерения, шума, дрейфа и т.п. края этого распределения не идеально ровные, а плавно спадают. Т.е. с малой вероятностью возможно получение результатов за пределами Xm...Xn. Так же возможно, что измеренные значения не будут занимать весь диапазон Xm...Xn. В обоих случаях нужно подкорректировать значения Xm и Xn. Как бы это сделать покрасивее и попроще?
Например, так. Представим, что края спадают линейно. Тогда суммарная вероятность попадания в диапазон, соответствующий спадающему краю будет в 2 раза меньше, чем вероятность попадания в такой же по размеру диапазон где-нибудь в середине (площадь меньше в 2 раза). Если же вероятность оказывается больше или меньше половины, нужно сдвинуть Xm (или Xn).


Я думаю что это можно решить с помощью оценки.
Скажем X это случайная переменная с равномерным распределением в диапазоне от Xm до Xn.
Обозначим оценку Xm как Xm_hat а оценку Xn как Xn_hat

Вычисляем среднее значение: E(X)_hat=1/N(Sum(Yi,1,N));
где Yi измеряемая величина: Yi=X+N, где N Гаусовский шум
Вычисляем дисперсию: Var_hat=1/N(Sum(Yi^2,1,N) - E(X)_hat^2;

Теперь решаем два уровнения с двумя неизвестными Xm_hat и Xn_hat
1. (Xm_hat + Xn_hat)/2=E(X)_hat
2. sqrt((Xn_hat-Xm_hat)^2/12)=sqrt(Var_hat)

чем лучше SNR тем лучше оценка

Сообщение отредактировал reginil_y - May 25 2012, 11:14
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 28 2017, 14:30
Сообщение #35


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Я попал(ся)! Как оказалось, распределение измеряемой величины не равномерное. А среднее значение немного сдвинуто к нижней границе. Из-за этого выше показанный алгоритм не работает правильно. Сейчас снова вернулся к когда-то поставленной задаче.
Вот этим скриптом накопил гистограмму.
https://electronix.ru/forum/index.php?showt...p;#entry1532734
Прикрепленное изображение


Здесь гистограмма по большему количеству выборок.
Прикрепленное изображение
Go to the top of the page
 
+Quote Post
Diusha
сообщение Feb 23 2018, 15:49
Сообщение #36


Вечный студент
****

Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262



Задача еще актуальна? Можно покумекать с линейной регрессией (если правильно понимаю, о чем идет речь)
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 23 2018, 16:59
Сообщение #37


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Нет, задача запущена, пропущена и выпущена. Там получается так, что распределение меняет форму. По нормальному нужно всю гистограмму накопить, и найти границы по уровню. Обошелся простым решением - за определенное количество выборок нахожу минимум и максимум, и усредняю его с предыдущим значением, с определенным весом. Потом - снова.
Выскочила еще одна проблема - в распределении может появиться "остров", отстоящий от "материка". Такие отклонения отбрасываю. Высота острова небольшая. Это ошибки аппаратные, назовем так. Так сейчас работает. И ладно.
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 15th August 2025 - 05:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01755 секунд с 7
ELECTRONIX ©2004-2016