|
Определение момента стабилизации сигнала |
|
|
|
Mar 6 2015, 22:29
|
Частый гость
 
Группа: Свой
Сообщений: 120
Регистрация: 17-03-07
Из: Беларусь, Минск
Пользователь №: 26 249

|
Hi Есть задача как можно раньше определить момент когда сигнал на входе АЦП стабилизируется. Один из вариантов сигнала на картинке. Есть проблемы: - сигнал может быть зашумлен, а может и нет и заранее невозвожно вывести критерий стабилизации, в одном случае он может калебаться в пределах пяти единиц, а во втором в пределе 20. - сигнал может быть нисходящим - во время стабилизации могут быть единичные скачки Перепробовал различные алгоритмы с усреднением в плавающем окне и вычислением производной или дисперсии. Если окно ставить больше, уменьшается вероятность ложного срабатывания, но значительно затягивается время определения момента (на размер окна). А время нужно сократить!! Когда смотрит человек на график то все очевидно, потому что учитывается вся история изменения сигнала. Я в математике не силен. Может кто подскажет куда копать, наверняка есть уже нужные алгоритмы :-)
Эскизы прикрепленных изображений
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 21)
|
Mar 7 2015, 17:21
|

Профессионал
    
Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718

|
Цитата А время нужно сократить!! чуда не будет. там или, или. Но если вас устроит некоторая погрешность, то обратите внимание на величину первой производной. Так с некоторой погрешностью(задаваемой) вы сможете определять момент начала стабилизации сигнала. зы. производная от усреднённого конечно, но с малым окном - для скорости.
|
|
|
|
|
Mar 7 2015, 20:43
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(MaxEngee @ Mar 7 2015, 01:29)  Когда смотрит человек на график то все очевидно, потому что учитывается вся история изменения сигнала. Вот-вот. Так как человек видит сигнал из будущего, который за "красной чертой". А алгоритм-то не видит. Поэтому, чуда не будет, или долгое наблюдение, или повышение вероятности ложного срабатывания. А есть ли какая нибудь априорная информация о сигнале? То есть, если сделать, например, некий алгоритм экстраполяции/предсказания, зная предысторию сигнала, выдающий, например, полином того порядка, какой ожидается от поведения сигнала, или другую функцию, минимально отличающуюся, например, по критерию минимума суммы квадратов отклонений, от имеющегося сигнала, и оценить точку нахождения на ней, вычислив производную (можно не только первую, но и вторую, чтобы оценить тенденцию, куда идет сигнал) уже аналитически из полученной ф-ции? Это я к тому, что человек, глядя на график, еще и заранее знает, что можно ожидать от сигнала в ближайшем будущем, а чего ожидать нельзя. Если этой информацией будет обладать и алгоритм, то ему будет проще.
|
|
|
|
|
Mar 7 2015, 22:06
|
Гуру
     
Группа: Модераторы
Сообщений: 3 868
Регистрация: 15-03-13
Пользователь №: 76 048

|
Цитата(SM @ Mar 8 2015, 00:43)  Вот-вот. Так как человек видит сигнал из будущего, который за "красной чертой". Это я к тому, что человек, глядя на график, еще и заранее знает, что можно ожидать от сигнала в ближайшем будущем, а чего ожидать нельзя. Если этой информацией будет обладать и алгоритм, то ему будет проще. Вообще-то это универсальный метод создания алгоритмов. Посади себя самого на место контроллера и попробуй управлять, опираясь на показания датчиков. Если сможешь - просто зарисуй готовый алгоритм. Не сможешь - нечего за алгоритмы хвататься, разбирайся как это вообще можно сделать. Как всегда, в формулировке задачи очень много неясностей. Что, для чего, как часто и быстро оно меняется и прочее. Нормальный разработчик просто принял бы паспортное значение времени установления ЦАП и не маялся дополнительными анализами. Если просто - при регулировании функция монотонно (или нелинейно, это детали) нарастает (убывает). Как только нарастание-убывание прекратится и приращение станет меньше какой-то величины или будет колебаться в пределах этой величины - есть стабилизация.
|
|
|
|
|
Mar 9 2015, 20:38
|
Участник

Группа: Участник
Сообщений: 26
Регистрация: 25-06-06
Пользователь №: 18 344

|
Как вариант: можно считать что сигнал стабилизировался, если локальный экстремум не обновлялся последние N отсчетов.
|
|
|
|
|
Mar 10 2015, 03:02
|
Участник

Группа: Участник
Сообщений: 50
Регистрация: 9-07-10
Пользователь №: 58 360

|
Цитата(MaxEngee @ Mar 7 2015, 02:29)  Я в математике не силен. Может кто подскажет куда копать, наверняка есть уже нужные алгоритмы :-) Я тоже, но слыхал, что есть авторегрессии на них можно построить типа фильтра-предсказателя, дальше сравнивать текущее измерение с выходом фильтра и делать вывод.
|
|
|
|
|
Mar 10 2015, 19:49
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(iDiode @ Mar 10 2015, 06:02)  Я тоже, но слыхал, что есть авторегрессии на них можно построить типа фильтра-предсказателя, дальше сравнивать текущее измерение с выходом фильтра и делать вывод. Сколько на этом биржевых игроков обанкротилось....  IMHO, это не тот случай. Здесь важна именно априорная информация о системе, как она себя повести может, а как - нет. А не линейное предсказание. Которое, кстати, при равномерном линейном увеличении уровня очень здорово предскажет весь сигнал вперед вплоть до его улета в бесконечность, и даст отличное "застабилизировано".
|
|
|
|
|
Mar 11 2015, 00:25
|
Участник

Группа: Участник
Сообщений: 50
Регистрация: 9-07-10
Пользователь №: 58 360

|
Цитата(SM @ Mar 10 2015, 22:49)  ... линейное предсказание ... Слышал, что регрессии бывают линейные и нелинейные, всякие, в общем. А без априорной информации т.е. ограничений конечно же никак, абсолютно с вами согласен.
|
|
|
|
|
Mar 11 2015, 19:52
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(MaxEngee @ Mar 7 2015, 01:29)  Когда смотрит человек на график то все очевидно, потому что учитывается вся история изменения сигнала. Вы уже ответили (почти) на свой вопрос. Осталось пол шажка сделать - почему человек видя историю могёт? Что он видит такого? Правильно - угол наклона. Зачастую именно он является почти константой(за требуемый минимальный интервал) во мнооогих системах. Сами градусы вам не нужны, но критериии направления и больше-меньше - потребуются. Из математики это производная. Т.е. если она ноль - то возмущения нет и угол не меняется. По поводу "критерия стабилизации" - тут уже правильно прозвучала мысль по поводу сопоставления уровня сигнала с уровнем шумов.
|
|
|
|
|
Sep 30 2015, 09:04
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Добрый день, знатоки. У меня аналогичный вопрос. В принципе почитал, уже сформировался вариант. Уже спасибо. У меня следующая ситуация. На АЦП поступает синусоидальный сигнал. Там может быть несколько частот намешано, плюс шум конечно. Есть критерии для этого сигнала min/ max частоты и амплитуды. Амплитуда меняется очень значительно (до 50 раз). Используется АЦП процессора (12 бит). Из написанного, очевидно что у меня на малом размахе начинает сказываться дискретизация, а на большом ограничение/ искажение сигнала. Дальнейшая математическая обработка сигнала сильно зависит от амплитуды входного сигнала. Я сделал модель и пытался обкатывать свою математику. И зависимость очень сильная. То есть качество обработки серьёзно меняется. Я сделал 2 прототипа. В одном поставил предварительный усилитель с переменным коэффициентом усиления. Во втором случае программно усиливаю сигнал (просто умножаю). И то и другое даёт значительный положительный эффект. Короче, мне, фактически, нужно сделать АРУ для входного сигнала. Причём она должна быстро срабатывать (сигнал идёт из разных источников и непостоянно). Так вот тот же критерий... Выделить полезный сигнал максимально быстро, чтобы чётко сработала АРУ до дальнейшей обработки. Желательно уложиться в 1-2 периода низкой частоты, то есть приблизительно 11-22 выборки. Сигнал я фильтрую 6 порядком по низу и верху. Короче вырезать пытаюсь. === Почитав эту тему - вижу: 1. После фильтрации выпрямляем сигнал (это я и сейчас делаю). 2. Сглаживаю. (То есть скользящее среднее по 11 выборкам) 3. По среднему определяю коэффициент умножения. 4. Меняю коэффициент по изменению первой производной (то есть фактически при изменении этого среднего выше болтанки) Кто ещё что посоветует или подправит? Всех принявших участие благодарю.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|