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

 
 
> Определение момента стабилизации сигнала
MaxEngee
сообщение Mar 6 2015, 22:29
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 120
Регистрация: 17-03-07
Из: Беларусь, Минск
Пользователь №: 26 249



Hi
Есть задача как можно раньше определить момент когда сигнал на входе АЦП стабилизируется.
Один из вариантов сигнала на картинке.
Есть проблемы:
- сигнал может быть зашумлен, а может и нет и заранее невозвожно вывести критерий стабилизации, в одном случае он может калебаться в пределах пяти единиц, а во втором в пределе 20.
- сигнал может быть нисходящим
- во время стабилизации могут быть единичные скачки
Перепробовал различные алгоритмы с усреднением в плавающем окне и вычислением производной или дисперсии. Если окно ставить больше, уменьшается вероятность ложного срабатывания, но значительно затягивается время определения момента (на размер окна). А время нужно сократить!!
Когда смотрит человек на график то все очевидно, потому что учитывается вся история изменения сигнала.

Я в математике не силен. Может кто подскажет куда копать, наверняка есть уже нужные алгоритмы :-)
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 21)
Tanya
сообщение Mar 7 2015, 06:45
Сообщение #2


Гуру
******

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



Цитата(MaxEngee @ Mar 7 2015, 01:29) *
Hi
Есть задача как можно раньше определить момент когда сигнал на входе АЦП стабилизируется.

Я в математике не силен. Может кто подскажет куда копать, наверняка есть уже нужные алгоритмы :-)

Математик(а) дает всегда абсолютно точный, но и абсолютно бессмысленный ответ - стабилизация не наступит никогда...
Чтобы правильно задать вопрос, нужно знать половину ответа.
Go to the top of the page
 
+Quote Post
smalcom
сообщение Mar 7 2015, 17:21
Сообщение #3


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

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



Цитата
А время нужно сократить!!

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

зы. производная от усреднённого конечно, но с малым окном - для скорости.
Go to the top of the page
 
+Quote Post
SM
сообщение Mar 7 2015, 20:43
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(MaxEngee @ Mar 7 2015, 01:29) *
Когда смотрит человек на график то все очевидно, потому что учитывается вся история изменения сигнала.

Вот-вот. Так как человек видит сигнал из будущего, который за "красной чертой". А алгоритм-то не видит. Поэтому, чуда не будет, или долгое наблюдение, или повышение вероятности ложного срабатывания.

А есть ли какая нибудь априорная информация о сигнале? То есть, если сделать, например, некий алгоритм экстраполяции/предсказания, зная предысторию сигнала, выдающий, например, полином того порядка, какой ожидается от поведения сигнала, или другую функцию, минимально отличающуюся, например, по критерию минимума суммы квадратов отклонений, от имеющегося сигнала, и оценить точку нахождения на ней, вычислив производную (можно не только первую, но и вторую, чтобы оценить тенденцию, куда идет сигнал) уже аналитически из полученной ф-ции?
Это я к тому, что человек, глядя на график, еще и заранее знает, что можно ожидать от сигнала в ближайшем будущем, а чего ожидать нельзя. Если этой информацией будет обладать и алгоритм, то ему будет проще.
Go to the top of the page
 
+Quote Post
Егоров
сообщение Mar 7 2015, 22:06
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 3 868
Регистрация: 15-03-13
Пользователь №: 76 048



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

Вообще-то это универсальный метод создания алгоритмов. Посади себя самого на место контроллера и попробуй управлять, опираясь на показания датчиков.
Если сможешь - просто зарисуй готовый алгоритм. Не сможешь - нечего за алгоритмы хвататься, разбирайся как это вообще можно сделать.
Как всегда, в формулировке задачи очень много неясностей. Что, для чего, как часто и быстро оно меняется и прочее.
Нормальный разработчик просто принял бы паспортное значение времени установления ЦАП и не маялся дополнительными анализами.
Если просто - при регулировании функция монотонно (или нелинейно, это детали) нарастает (убывает). Как только нарастание-убывание прекратится и приращение станет меньше какой-то величины или будет колебаться в пределах этой величины - есть стабилизация.
Go to the top of the page
 
+Quote Post
Smoky
сообщение Mar 8 2015, 07:32
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 401
Регистрация: 7-05-10
Из: Оренбург
Пользователь №: 57 135



Я обычно за момент начала стабилизации принимаю появление заднего фронта.


--------------------
Лень, оттвори дверь, сгоришь - а хоть и сгорю, но не оттворю.
Go to the top of the page
 
+Quote Post
AlexeyW
сообщение Mar 8 2015, 19:40
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 988
Регистрация: 3-11-10
Пользователь №: 60 636



По-моему, нужно просто представлять математический вид фронта сигнала. То, что на рисунке, очень напоминает фронт фильтра Бесселя второго порядка. Во время фронта можно, опираясь на математическое вражение форм идеального фронта (без шума), получить его параметры (длительность и амплитуду), на основе длительности сделать вывод у времени установления до нужной точности (5%, 1% и т.д.). При этом повышение шума одновременно делает менее существенной и вносимую этим шумом ошибку.
Стоит также рассмотреть схему на входе АЦП - возможно, ее переходная характеристика и время установления прекрасно считаются и могут быть заложены в алгоритм априорно.
Go to the top of the page
 
+Quote Post
AndeyP
сообщение Mar 9 2015, 20:38
Сообщение #8


Участник
*

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



Как вариант: можно считать что сигнал стабилизировался, если локальный экстремум не обновлялся последние N отсчетов.
Go to the top of the page
 
+Quote Post
iDiode
сообщение Mar 10 2015, 03:02
Сообщение #9


Участник
*

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



Цитата(MaxEngee @ Mar 7 2015, 02:29) *
Я в математике не силен. Может кто подскажет куда копать, наверняка есть уже нужные алгоритмы :-)

Я тоже, но слыхал, что есть авторегрессии на них можно построить типа фильтра-предсказателя, дальше сравнивать текущее измерение с выходом фильтра и делать вывод.
Go to the top of the page
 
+Quote Post
SM
сообщение Mar 10 2015, 19:49
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(iDiode @ Mar 10 2015, 06:02) *
Я тоже, но слыхал, что есть авторегрессии на них можно построить типа фильтра-предсказателя, дальше сравнивать текущее измерение с выходом фильтра и делать вывод.

Сколько на этом биржевых игроков обанкротилось.... sm.gif sm.gif IMHO, это не тот случай. Здесь важна именно априорная информация о системе, как она себя повести может, а как - нет. А не линейное предсказание. Которое, кстати, при равномерном линейном увеличении уровня очень здорово предскажет весь сигнал вперед вплоть до его улета в бесконечность, и даст отличное "застабилизировано".
Go to the top of the page
 
+Quote Post
iDiode
сообщение Mar 11 2015, 00:25
Сообщение #11


Участник
*

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



Цитата(SM @ Mar 10 2015, 22:49) *
... линейное предсказание ...

Слышал, что регрессии бывают линейные и нелинейные, всякие, в общем. А без априорной информации т.е. ограничений конечно же никак, абсолютно с вами согласен.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Mar 11 2015, 05:31
Сообщение #12


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

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



Регрессии... прогрессии... заболтали простой вопрос.
Как только разница между максимальным и минимальным значениями на заданном интервале времени становится меньше заданной величины (уровня шума, например, с неким запасом), считайте, сигнал установился.
Go to the top of the page
 
+Quote Post
Onkel
сообщение Mar 11 2015, 12:42
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 708
Регистрация: 8-05-11
Из: Чг
Пользователь №: 64 861



вычисляем постоянно экспоненциально взвешенную скользящую среднюю A, а критерий - сумма n квадратичных невязок (Ai-A)^2 меньше чего -то там , скажем sigmaMax, соответсвенно показатель экспоненты, SigmaMax и n - вам определять в конкретном вашем случае.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Mar 11 2015, 19:52
Сообщение #14


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(MaxEngee @ Mar 7 2015, 01:29) *
Когда смотрит человек на график то все очевидно, потому что учитывается вся история изменения сигнала.


Вы уже ответили (почти) на свой вопрос. Осталось пол шажка сделать - почему человек видя историю могёт? Что он видит такого?
Правильно - угол наклона. Зачастую именно он является почти константой(за требуемый минимальный интервал) во мнооогих системах.
Сами градусы вам не нужны, но критериии направления и больше-меньше - потребуются. Из математики это производная.
Т.е. если она ноль - то возмущения нет и угол не меняется. По поводу "критерия стабилизации" - тут уже правильно прозвучала мысль
по поводу сопоставления уровня сигнала с уровнем шумов.
Go to the top of the page
 
+Quote Post
Hose
сообщение Mar 21 2015, 19:21
Сообщение #15


Частый гость
**

Группа: Участник
Сообщений: 82
Регистрация: 7-01-15
Пользователь №: 84 450



Копать нужно в сторону первой производной или перекинуть ацп с сигнала управления на сигнал ошибки (последнее предпочтительнее). Неплохо бы увеличить разрядность путем передискретизации и последующей фильтрации, тогда и шумов станет меньше.
Go to the top of the page
 
+Quote Post
somebody111
сообщение Mar 28 2015, 21:07
Сообщение #16


Частый гость
**

Группа: Участник
Сообщений: 190
Регистрация: 2-03-11
Пользователь №: 63 341



Универсальные
1. искать первую производную и усреднять различными способами. Как только станет ниже какого-то порога - считать,Что сигнал стабилен
2. искать сумма(abs(x(t)-x(t-dT)))/n и тоже с порогом срабатывания
3. искать sqrt((x(t)-x(t-dT))^2)/n b и тоже самое
Достоинство: абсолютно простое инженерное решение
Недостаток: как и любое абсолютно простое инженерное решение научно на половину и в зависимости от задачи алгоритм придётся корректировать
Не универсальные: использование различных апроксимаций в реальном времени на базе каких-хотите функций (полином,ряд фурье и пр.), а потом аналатическое вычисление точек, в которых производная равна 0 (нахождение локальных экстремумов)
Достоинво: абсолютно научный подход
Недостаток: из-за того,что метод абсолютно научный, его реализация потребует тонны времени


---

Сообщение отредактировал somebody111 - Mar 28 2015, 21:09
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Sep 30 2015, 09:04
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



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

Кто ещё что посоветует или подправит?
Всех принявших участие благодарю.
Go to the top of the page
 
+Quote Post
smalcom
сообщение Oct 1 2015, 06:28
Сообщение #18


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

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



а обычные аналоговые решения не подходят? Т.е. если правильно понял, то вы хотите, чтобы МК управлял предварительным усилителем(усилителями)?
Go to the top of the page
 
+Quote Post
HardEgor
сообщение Oct 2 2015, 15:01
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925



Цитата(SasaVitebsk @ Sep 30 2015, 15:04) *
Используется АЦП процессора (12 бит).

Я бы поставил два внешних АЦП(один с усилением 4, другой с усилением 0,5) и принимал бы решение из какого буфера брать данные. Если АЦП контроллера достаточно быстрое - тогда два усилителя(на 0,5 и 4) и переключал бы их на вход АЦП.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Oct 2 2015, 15:29
Сообщение #20


Гуру
******

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



Еще вариант - делить умножающим ЦАП. Они бывают до 12 МГЦ полосою...
Если быстрее - аналоговым умножителем с умножением на сигнал быстрого ЦАПа. Придется делить контроллером числа... Или по таблице. Есть AD734 с возможностью прямого деления. Но там полоса зависит от усиления.
Или сначала несколько компараторов вместо АЦП.
Go to the top of the page
 
+Quote Post
iDiode
сообщение Oct 5 2015, 01:33
Сообщение #21


Участник
*

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



Цитата(SasaVitebsk @ Sep 30 2015, 12:04) *
... нужно сделать АРУ для входного сигнала ...

Вроде нужен интегратор для такого дела? Например:
http://nl.mathworks.com/help/comm/ref/comm.agc-class.html
Вот еще:
http://www.williamsonic.com/AudioOsc/
Go to the top of the page
 
+Quote Post
net
сообщение Oct 5 2015, 11:37
Сообщение #22


Знающий
****

Группа: Свой
Сообщений: 858
Регистрация: 9-08-04
Пользователь №: 473



вобще совсем без знания сигнала конечн обойтись нельзя НО в геофизике применяют STA/LTA тоесть проводят анализ за коротое время и за длинное и по этому делают вывод о том что происходит событие или уже обычное состояние среды
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 27th June 2025 - 09:01
Рейтинг@Mail.ru


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