"Bоенный" пик-детектор

Различные конкурсы нашего портала
Аватара пользователя
Jakob Brontfeyn

Activity Gold Silver Black
expert
expert
Сообщения: 1729
Зарегистрирован: 28 фев 2008, 11:01
Награды: 6
Благодарил (а): 1 раз
Контактная информация:

Re: "Bоенный" пик-детектор

Сообщение Jakob Brontfeyn »

AndreyDmitriev писал(а):
Jakob Brontfeyn писал(а):
AndreyDmitriev писал(а):А, теперь понятно. А рельный-то сигнал как выглядит?
tak
Там же почти идеальная синусоида - шума нет практически, ну я не вижу по крайней мере. Даже стандартный пик детектор при правильно выбранном окне должен нормально отрабатывать. В чём, собственно проблема?
Предлагаю выделить из предоставленного файла разбив его на куски по 1000, максимумы и минимумы
обьединить и получить в результате второй файл без лишних точек
Учитывая то, что ни низкочастотные ни высокочстотные амплитуды заранее не известны
и задаваться как параметры не могут. Все что известно это 12,5 Герц,
процесс должен идти online один буфер за другим
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5461
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 27 раз
Поблагодарили: 86 раз

Re: "Bоенный" пик-детектор

Сообщение IvanLis »

Jakob Brontfeyn писал(а):процесс должен идти online один буфер за другим
Прием данных да, условия определены используемым оборудованием.
А вот условия их обработки Вы выбираете сами, исходя из сложившихся обстоятельств. Главное до прихода следующей пачки данных успеть предыдущую обработать.
Аватара пользователя
Jakob Brontfeyn

Activity Gold Silver Black
expert
expert
Сообщения: 1729
Зарегистрирован: 28 фев 2008, 11:01
Награды: 6
Благодарил (а): 1 раз
Контактная информация:

Re: "Bоенный" пик-детектор

Сообщение Jakob Brontfeyn »

А кто против, важен конечный результат.
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1327
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 37 раз
Контактная информация:

Re: "Bоенный" пик-детектор

Сообщение AndreyDmitriev »

Jakob Brontfeyn писал(а):А кто против, важен конечный результат.
Всё ещё не вижу в чём проблема. Берётся два цикла - первый получает данные от железки и гонит через очередь во второй. Второй накапливает тысячу отсчётов и проходит по ним пиковым детектором. Чтобы избежать потери пиков на границах буферов, они складываются с небольшим "перехлёстом". Немножко аккуратности и полдня работы (ну, день, если с перекурами) - вот и всё что нужно. Запись в файл можно в третий цикл вынести - будет совсем красиво.
Аватара пользователя
Jakob Brontfeyn

Activity Gold Silver Black
expert
expert
Сообщения: 1729
Зарегистрирован: 28 фев 2008, 11:01
Награды: 6
Благодарил (а): 1 раз
Контактная информация:

Re: "Bоенный" пик-детектор

Сообщение Jakob Brontfeyn »

"проходит по ним пиковым детектором"... интересно как ?
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1327
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 37 раз
Контактная информация:

Re: "Bоенный" пик-детектор

Сообщение AndreyDmitriev »

Jakob Brontfeyn писал(а):"проходит по ним пиковым детектором"... интересно как ?
Вот так:
http://zone.ni.com/reference/en-XX/help ... _detector/
Аватара пользователя
Jakob Brontfeyn

Activity Gold Silver Black
expert
expert
Сообщения: 1729
Зарегистрирован: 28 фев 2008, 11:01
Награды: 6
Благодарил (а): 1 раз
Контактная информация:

Re: "Bоенный" пик-детектор

Сообщение Jakob Brontfeyn »

Ну Андрей, Вы даете, я то думал что меня могут послать ну хотя бы сюда:

https://www.google.de/#q=peak+detector+ ... +wandering

но никак не на хелп по стандартному пик-детектору
Аватара пользователя
Jakob Brontfeyn

Activity Gold Silver Black
expert
expert
Сообщения: 1729
Зарегистрирован: 28 фев 2008, 11:01
Награды: 6
Благодарил (а): 1 раз
Контактная информация:

Re: "Bоенный" пик-детектор

Сообщение Jakob Brontfeyn »

Короче, меньше слов больше дела, энтузиасты вперед !!!
есть два свежих файла сделаите из первого второй,
при условии, что идет поток буфер по 1000 измерений каждую секунду
и частота наложенной вибрации 12,5 герц
Вложения
ALL_1000_input.txt
(174.58 КБ) 188 скачиваний
max_min_output.txt
(4.36 КБ) 179 скачиваний
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5461
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 27 раз
Поблагодарили: 86 раз

Re: "Bоенный" пик-детектор

Сообщение IvanLis »

Jakob Brontfeyn писал(а):"проходит по ним пиковым детектором"... интересно как ?
Пришлось потратить 20 минут, что бы вставить свои "5 копеек".
Я вначале писал, что сигнал имеет практически идеальную форму, а это значит что отлично работают математические методы без всяких эвристик.

Точки, в которых первая производная принимает значение "0", являются точками экстремума. Нам даже нет необходимости вторую производную считать, что бы определиться min это или max.
Предварительно пропускаем через ФНЧ, т.к. все таки сигнал реальный и возможны шумы. Вот весь код и результаты:
Untitled 3.vi
lv2010
(58.69 КБ) 186 скачиваний
Без имени-1.png
1.png
Весь алгоритм поместился внутри цикла.
На границах, при фильтрации возникают переходные процессы, но при правильной организации (использовании очереди), это будет устранено.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5461
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 27 раз
Поблагодарили: 86 раз

Re: "Bоенный" пик-детектор

Сообщение IvanLis »

Jakob Brontfeyn писал(а):Короче, меньше слов больше дела, энтузиасты вперед !!!
есть два свежих файла сделаите из первого второй,
при условии, что идет поток буфер по 1000 измерений каждую секунду
и частота наложенной вибрации 12,5 герц
Вот на новых данных:
Без имени-1.png
Без имени-2.png
Аватара пользователя
Jakob Brontfeyn

Activity Gold Silver Black
expert
expert
Сообщения: 1729
Зарегистрирован: 28 фев 2008, 11:01
Награды: 6
Благодарил (а): 1 раз
Контактная информация:

Re: "Bоенный" пик-детектор

Сообщение Jakob Brontfeyn »

Массив обрабатывается целиком, а не по кускам ? , ведь идет поток

Да и результаты не совпали с моим выходным фаилом,
тут есть еще над чем поработать
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1327
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 37 раз
Контактная информация:

Re: "Bоенный" пик-детектор

Сообщение AndreyDmitriev »

Jakob Brontfeyn писал(а):Массив обрабатывается целиком, а не по кускам ? , ведь идет поток

Да и результаты не совпали с моим выходным фаилом,
тут есть еще над чем поработать
А они и не должны совпадать - в вашем файле результатов за минимумы и максимумы взяты точки отсчётов, что как бы не совсем верно - истинный максимум не обязан лежать прямо на точке, особенно в присутствии шума. Это заметно и по довольно большому разбросу времени между точками. В идеальном случае должно быть около сорока миллисекунд, а в файле результатов время гуляет от 30 до 50. Стандартный пик детектор NI работает по этим данным заметно точнее.
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1327
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 37 раз
Контактная информация:

Re: "Bоенный" пик-детектор

Сообщение AndreyDmitriev »

Пользуясь обеденным перерывом набросал, с чего бы я начал:
Изображение
Вложения
PeaksValleys.vi
(68.13 КБ) 175 скачиваний
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5461
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 27 раз
Поблагодарили: 86 раз

Re: "Bоенный" пик-детектор

Сообщение IvanLis »

IvanLis писал(а):
Jakob Brontfeyn писал(а):процесс должен идти online один буфер за другим
Прием данных да, условия определены используемым оборудованием.
А вот условия их обработки Вы выбираете сами, исходя из сложившихся обстоятельств. Главное до прихода следующей пачки данных успеть предыдущую обработать.
Jakob Brontfeyn писал(а):А кто против, важен конечный результат.
Jakob Brontfeyn писал(а):Массив обрабатывается целиком, а не по кускам ? , ведь идет поток

Да и результаты не совпали с моим выходным фаилом,
тут есть еще над чем поработать
1. Яков, я давно подозреваю, что у Вас оплата "почасовая" либо "по объему кода" :wink: .
2. Да и работать тут можно сколько угодно, у каждого получится свой результат в какой-то окрестности с определенной степенью достоверности. Но не забывайте правило казино: "Главное вовремя остановиться", либо см. п.1.
Аватара пользователя
Jakob Brontfeyn

Activity Gold Silver Black
expert
expert
Сообщения: 1729
Зарегистрирован: 28 фев 2008, 11:01
Награды: 6
Благодарил (а): 1 раз
Контактная информация:

Re: "Bоенный" пик-детектор

Сообщение Jakob Brontfeyn »

AndreyDmitriev писал(а):
Jakob Brontfeyn писал(а):Массив обрабатывается целиком, а не по кускам ? , ведь идет поток

Да и результаты не совпали с моим выходным фаилом,
тут есть еще над чем поработать
А они и не должны совпадать - в вашем файле результатов за минимумы и максимумы взяты точки отсчётов, что как бы не совсем верно - истинный максимум не обязан лежать прямо на точке, особенно в присутствии шума. Это заметно и по довольно большому разбросу времени между точками. В идеальном случае должно быть около сорока миллисекунд, а в файле результатов время гуляет от 30 до 50. Стандартный пик детектор NI работает по этим данным заметно точнее.
Ну что я могу сказать, требуются максимумы и минимумы а не точки где производная равна нулю.
отклонение от 40 милисекунд вызвано кроме помех также взлетом и падением базисной линии.
Потом где гарантия , что пик в полупериоде будет обнаружен только один ? а если вдруг их будет
детектировано больше ? но даже при нахождении пика стандартным детектором нужно сделать
он него, скажем, плюс минус 5 точек и в этом массиве найти максимум или минимум.
Не думаю, что такая методика лучше, чем выделять массивы полупериодов
и в них уже искать максимум или минимум.
Ответить

Вернуться в «Конкурсы»