|
0 / 0 / 0
Регистрация: 28.04.2009
Сообщений: 127
|
|
Найти логическое решение, чтобы отфильтровать шум07.04.2019, 11:56. Показов 2686. Ответов 39
Метки нет (Все метки)
Во вложении файл. Там график пульсации тока. Помогите найти логическое решение, чтобы отфильтровать шум.
Уже всю голову сломал, не могу найти решение. Мне даже не код нужен, я его напишу. Мне нужен алгоритм, как эту логику реализовать.
0
|
|
| 07.04.2019, 11:56 | |
|
Ответы с готовыми решениями:
39
Отфильтровать ввод так, чтобы исключить дубликаты рядом стоящих цифр Отсеивать совпадения среди коллекций (Логическое решение) Как отфильтровать текст чтобы с его момощью можно было назвать файл? |
|
0 / 0 / 0
Регистрация: 28.04.2009
Сообщений: 127
|
|
| 07.04.2019, 17:39 [ТС] | |
|
Я частично обвел кружочками (без масштаба) как примерно должен выглядеть массив контрольных точек.
0
|
|
|
0 / 0 / 0
Регистрация: 28.04.2009
Сообщений: 127
|
||
| 07.04.2019, 17:45 [ТС] | ||
|
Элд Хасп, я 6 привел для примера, это может быть и 10 и 15, смотря как задать уставку.
Добавлено через 5 минут Элд Хасп, я скинул пример
0
|
||
|
Модератор
|
|||||||
| 07.04.2019, 19:13 | |||||||
Сообщение было отмечено slavavs как решение
РешениеНаходит на Вашем наборе 52 точки. Вроде правильно. Попробуйте "поираться" значениями period и minDiffПеременные debug1, debug2, debug3 - для удобства отладки. Когда будут не нужны - закомменте их.
1
|
|||||||
|
0 / 0 / 0
Регистрация: 28.04.2009
Сообщений: 127
|
|
| 07.04.2019, 19:36 [ТС] | |
|
Элд Хасп, Я изначально, когда начал искать решение задачи, тоже задался периодом, так как это самое очевидное. Но у периода есть один нюанс, он может не охватить диапазон наличия минимума или максимума при условии если движение будет затяжным. И я пришел тому, что лучшим решением будет сначала создать массив всех колебаний, даже самых минимальных. так сказать массив помойку (чередование всех Максимумов и Минимумов). Затем на основе этого массива уже не потребуется диапазон, так как можно будет в цикле перебрать "массив помойку" и отсортировать, создав второй массив на основе коэффициента коррекции. Соответственно я не смог это алгоритмировать...
Я понимаю, что вы мне очень помогли, я честно сказать всегда с огромным уважением отношусь к таким людям как вы, но все-таки, как вы думаете, тот алгоритм с двумя массивами он реален или нет?
0
|
|
|
Модератор
|
|||
| 07.04.2019, 19:43 | |||
|
Так что создание этого массива ничего не даст. Или я не понял Вашу идею. Поэкспериментируйте с данными. Анализируются данные впереди и сзади на размер периода. Если изменение затяжное (в одну строну) , то текущая точка не будет соответствовать условию экстремума.
1
|
|||
|
0 / 0 / 0
Регистрация: 28.04.2009
Сообщений: 127
|
|
| 07.04.2019, 20:27 [ТС] | |
|
Я понял, буду тестировать! Про два массива это мои домыслы...
Добавлено через 14 минут Элд Хасп, Прогнал, все четко находит. Только одно не могу понять, почему программа не вывела последнее значение 7597, ведь оно соответствует всем критериям, ждать новой точки уже не нужно, так как мы прошли расстояние более 6 значений.
0
|
|
|
Модератор
|
|
| 07.04.2019, 20:43 | |
|
7597 - 699 индекс, перед ней локальный максимум 7607 (695).
Расстояние между индексами меньше периода. Добавлено через 1 минуту А нет! Всё равно олжна сработать. Проверю сейчас. Добавлено через 10 минут Под 690 индексом значение 7595. Поэтому на промежутке 689-707 значение 7597 не является локальным минимумом.
0
|
|
|
0 / 0 / 0
Регистрация: 28.04.2009
Сообщений: 127
|
||
| 07.04.2019, 21:04 [ТС] | ||
|
Я пока еще ваш код полностью не понял, завтра на свежую голову подумаю, но что-то тут нужно поправить видимо Добавлено через 3 минуты При уменьшении диапазона, вроде все норм, но 7611 присутствует Добавлено через 1 минуту получается что надо прописать, чтобы программа в конце, если условие не выполняется, должна ожидать, а не выводить контрольную точку
0
|
||
|
Модератор
|
|||
| 07.04.2019, 21:12 | |||
|
Добавлено через 4 минуты Но в реал-тайме по другому. Там нужна реакция на текущие данные. Там надо делать какие-то аппроксимации на краях диапазона. В общем, всё зависит от ТЗ.
0
|
|||
|
0 / 0 / 0
Регистрация: 28.04.2009
Сообщений: 127
|
|||
| 07.04.2019, 21:29 [ТС] | |||
|
0
|
|||
|
Модератор
|
|||
| 07.04.2019, 21:49 | |||
|
Я в примере определил это как отсутствие локальных экстремумов на +- период. Если определить по другому, то можно сделать и другую реализацию. Для реал тайма обязательно нужна иная математика для последних значений. И учитывать что идёт постоянное добавление значений в конец последовательности.
0
|
|||
|
0 / 0 / 0
Регистрация: 28.04.2009
Сообщений: 127
|
|
| 07.04.2019, 22:00 [ТС] | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 28.04.2009
Сообщений: 127
|
|
| 07.04.2019, 22:46 [ТС] | |
|
Элд Хасп, вот такие мысли по поводу реала.
1. Принимаем первое значение 2. Принимаем второе значение 3. Сравниваем 1 и 2, если первое меньше, то записываем его в переменную t_i (временная минимума) 4. Считываем далее... если при движении вверх появится значение меньшее, то предыдущее записываем в t_a (временный максимум). 5. если график следует выше t_a, то ждем новый t_a, а предыдущий удаляем (перезаписываем) 6. Одновременно отслеживаем на сколько график убежал от t_i. Если график прошел 6 шагов, то t_i -> в T_I (постоянная минимума) и тд. Такое реально написать?
0
|
|
|
0 / 0 / 0
Регистрация: 28.04.2009
Сообщений: 127
|
||
| 07.04.2019, 23:00 [ТС] | ||
|
Добавлено через 1 минуту Получили новое значение, обработали...
0
|
||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 07.04.2019, 23:22 | |
|
slavavs, Вообще, про обработку сигналов много толстых книжек написано.
Вставлю свои две копейки (из того что я понял из вашей задачи, хотя, конечно, надо больше данных). 1) Чтобы отфильтровать сигнал, внезапно, его надо отфильтровать. Из графиков я понял, что полоса частот шума шире, чем полоса сигнала -> ставим на входе ФНЧ. (для начала сгодится дискретный БИХ фильтр первого порядка). Конечно, точки максимумов/минимумов относительно исходных данных при этом слегка изменятся (как по времени, так и по амплитуде), но, в любом случае, получить обратно сигнал из смеси сигнала с шумом в общем случае невозможно. 2)Сделаем своеобразное окно (допустим в 1 вольт) с центром в начальной точке (пусть начальное значение, допустим 5В, тогда окно - от 4.5В до 5.5В). Как только сигнал вылезет из этого окна двигаем окно запоминая время и направление движения (допусти сигнал стал 6.1В - окно стало от 5.1В до 6.1В, движется вверх). Как только направление движения поменялось - предыдущее движение - это точка экстремума. Это позволит убрать ложные экстремумы, неотфильтрованые на первом шаге. Принципиально можно обойтись только вторым шагом, но лучше оба.
0
|
|
|
0 / 0 / 0
Регистрация: 28.04.2009
Сообщений: 127
|
|
| 07.04.2019, 23:24 [ТС] | |
|
avgoor, ваш коммент заслуживает внимания, но мне он не понят ввиду моих не глубоких познаний.
0
|
|
|
Модератор
|
||
| 07.04.2019, 23:26 | ||
Если график прошел 6 шагов что? Какая разница назвать шагами или периодом - суть, то не меняется.Вот у Вас идут значения 1, 2, 3, 4, 5, 6, 7 . "7" - это локальный максимум? Это зависит от того какие значения придут пеосле этого, но при анализе "7" их ещё нет. Если придут дальше 3, 4, 6, 2, и т.д - то максимум. А если придут 8, 9, 10 ? А если 6, 5, 9 ? Когда при каких условиях можно сделать вывод, что "7" - это локальный максимум? Это зависит от задачи. Для чего это определяется? Какая должна быть реакция на этот сигнал? Как эта реакция зависит от истории предыдущих значений? Какой коэффициент риска? И т.д. То есть простого теоретизирования мало. Нужно создавать матмодель реального объекта. В реал-тайме без этого не обойдёшься. Наглядный пример - различные биржевые роботы. Ну, нету до сих пор матмодели биржи, и какой бы робот не был - без вмешательства человека он в итоге загоняет в минус.
0
|
||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 07.04.2019, 23:28 | |
|
slavavs, так спрашивайте, что не поняли.
0
|
|
| 07.04.2019, 23:28 | |
|
Как отфильтровать вывод результата выполнения команды ipconfig, чтобы получить только IP-адрес? Отфильтровать таблицу Выдача_книг так, чтобы остались читатели которые просрочили сдачу книг Как сделать, чтобы метод возвращал логическое значение
Шум в системе, После замены компрессора увеличился шум Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|