-
- А задержка сильно напрягает? Я давно экспоненциальный фильтр везде
использую, и по ресурсам не напрягает, сдвигами даже на 8 - ми
битном пишется, памяти меньше надо, чем "оконному". - Visitor(16.07.2020 17:41)
- Проблема EMA (экспоненциальный скользящий фильтр) в том, что оно оставляет компоненты ВЧ: fk0(6 знак., 16.07.2020 17:46, ссылка, картинка)
- В задачах DSP необходимо знать/понимать название метода или хотя бы
математической функции. В данном случае твоя задача называется Peak
Detection и по нему для тебя можно найти продвинутые методы, что я
и сделал. RxTx(1396 знак., 16.07.2020 17:21, ссылка, картинка)
- Много буков не осилил. - fk0(16.07.2020 17:36)
- Я фшоке! Господа, Вы - звери! - Kpoк(16.07.2020 17:34)
- Это как с однобитной энергонезависимой памятью топик недавно был.
Вряд ли я способ AMPD применю(сложноват), но знать о таких вещах
весьма полезно. - Dingo(16.07.2020 17:38)
- Как раз вредно! "Сигнальная" (назовём её так) математика вытесняет классический матанализ. При этом она предлагает гораздо более громоздкие решения, что влечёт за собой вульгарную копипасту вместо понимания происходящего. В результате "текст лежит в репозитарии" - этой программе на ассемблере десять строк цена. - Kpoк(16.07.2020 18:16)
- Там в репозиториях код на C++ и Python. Но проще наваять то что я описал выше словесно. - RxTx(16.07.2020 18:08)
- Этот способ вам и не подойдет. Потому как он для Periodic and
Quasi-Periodic сигналов. У вас же сигнал НЕ-периодический. - Xaoc(16.07.2020 17:54,
)
- Если внимательно присмотреться как он работает с образцами сигнала
(например выше скриншот работы фильтра) видно что это подходит к
определению Quasi-Periodic. Т.е. все же должен работать. В самой
матмодели также не просматривается что-л. связанное с
периодическими ф-циями. - RxTx(16.07.2020 18:06)
- Там периодичность заложена в матрице, НЯМС. Читал, правда, по
диагонали.. - Xaoc(16.07.2020 18:12,
)
- Там периодичность заложена в матрице, НЯМС. Читал, правда, по
диагонали.. - Xaoc(16.07.2020 18:12,
- Если внимательно присмотреться как он работает с образцами сигнала
(например выше скриншот работы фильтра) видно что это подходит к
определению Quasi-Periodic. Т.е. все же должен работать. В самой
матмодели также не просматривается что-л. связанное с
периодическими ф-циями. - RxTx(16.07.2020 18:06)
- Это как с однобитной энергонезависимой памятью топик недавно был.
Вряд ли я способ AMPD применю(сложноват), но знать о таких вещах
весьма полезно. - Dingo(16.07.2020 17:38)
- Спасибо!! Вы ещё и поискали за меня... - Dingo(16.07.2020 17:24)
- Спасибо! - Evgeny_CD(16.07.2020 17:22)
- => - Kceния(16.07.2020 17:15, ссылка)
- Спасибо, интересный алгоритм. - fk0(16.07.2020 17:26 - 17:35)
- Спасибо! - Dingo(16.07.2020 17:30)
- Спасибо! - Evgeny_CD(16.07.2020 17:23)
- Первое с тремя точками пропустит случай с 1 отсчетом. Согласно
теореме матанализа, в точке экстремума производная равна нулю или
не существует и при переходе через нее меняет знак. Поэтому я
всегда делаю по т. м. а., это работает. - RxTx(16.07.2020 14:42, ссылка)
- Всё здорово, но в реальных зашумлённых сигналах производная всегда
будет колебаться около нуля и экстремумов будет в каждой третьей
точке. Как их количество снизить до разумной величины? - fk0(16.07.2020 16:48)
- Тем не менее для задачи весьма интересное предложение: мне не надо
ловить
максимумыэкстремумы возле нуля, у меня есть порог, только при превышении которого следует анализировать сигнал. И, скорей всего, будет ФНЧ как усреднение небольшого количества значений. Dingo(123 знак., 16.07.2020 17:22) - Обязательной (к примеру ФНЧ) фильтрацией полезного сигнала. Эта
операция приводит сигнал в требуемую тебе практически область
частотного пространства (выкидывая шумы). - RxTx(16.07.2020 17:17)
- После ФНЧ все пики пропадут или сдвинутся по фазе. Вот твой
алгоритм по ссылке он интересен, что как раз не страдает таким.
Например, можно отфильтровать выход алгоритма по ссылке уже по
амплитуде -- вот это вариант. Если конечно нужна точная временная
привязка. - fk0(16.07.2020 17:28)
- Чтобы работать с фазой (например нулевой, т.е. не сдвигать ее), с этим никаких проблем нет, можно применить FIR (КИХ) фильтр. Естественно, это требует вычислительных ресурсов. IIR фильтры сдвигают фазу. Но мы и не знаем где/как топикстартер решает свою задачу, может быть на PC? Далее, твое возражение упирается в понимание - где лежит полезный сигнал. В time domain или frequency domain. Если необходимо иметь дело с "случаями" вообще, например датчик пошевелили, что-то RxTx(243 знак., 16.07.2020 18:33)
- После ФНЧ все пики пропадут или сдвинутся по фазе. Вот твой
алгоритм по ссылке он интересен, что как раз не страдает таким.
Например, можно отфильтровать выход алгоритма по ссылке уже по
амплитуде -- вот это вариант. Если конечно нужна точная временная
привязка. - fk0(16.07.2020 17:28)
- Если шум ничем не отличается от сигнала, то этот шум и есть сигнал.
А если есть какие-то признаки, по которым шум отличается от
сигнала, то пользуясь этими признаками можно отделить сигнал от
шума и затем уже что-то измерять. Для этого, очевидно, нужна
априорная информация о сигнале. Например, если априори известно,
что сигнал лежит в определенной полосе частот, а шум белый, то
можно отфильтровать полезный сигнал полосовым фильтром. Остаточный
шум, который пройдет вместе с Xaoc(399 знак., 16.07.2020 17:15,
, ссылка)
- Тем не менее для задачи весьма интересное предложение: мне не надо
ловить
- Всё здорово, но в реальных зашумлённых сигналах производная всегда
будет колебаться около нуля и экстремумов будет в каждой третьей
точке. Как их количество снизить до разумной величины? - fk0(16.07.2020 16:48)
- Аппроксимируйте функцию возле максимума по трём точкам квадратной
(или по четырём - кубической) параболой. Дальше - дело техники. - Kpoк(16.07.2020 13:11)
- Если бы работали с аудиосигналами -- я бы сказал нужна передискретизация на более высокую частоту. Потом всё остальное. Но здесь же ещё вопрос, является ли координатная сетка регулярной? В общем случае да, интерполяция какими-то функциями (что и делается при передискретизации вверх) - fk0(16.07.2020 16:51)
- Интересная мысль. Можно подробней немного, что подразумевалось под
"Дальше"? - Dingo(16.07.2020 13:40)
- Разумеется. Случай 3 точек. Y=a*x*x+b*x+c. Пременные a, b и с
найдём из значений Y в этих точках. Производная будет 2*a*x+b Равна
нулю она при x=-b/(2*a) - Kpoк(16.07.2020 15:15)
- Спасибо! - Dingo(16.07.2020 17:30)
- Разумеется. Случай 3 точек. Y=a*x*x+b*x+c. Пременные a, b и с
найдём из значений Y в этих точках. Производная будет 2*a*x+b Равна
нулю она при x=-b/(2*a) - Kpoк(16.07.2020 15:15)
- Почему просто не посчитать для каждой точки разность от среднего и
взять ту где она макс. - General(16.07.2020 13:10)
- Товарищ General, я вас правильно понял, так? ;о) Dingo(1 знак., 16.07.2020 13:20, картинка)
- Что за данные? Доллары, килограммы, километры? Откуда? С какой
целью ищем максимум? - SciFi(16.07.2020 13:08)
- Значения тензодатчика. Задача "подсчёт количества импульсов на
временном интервале с амплитудой выше N". Выделить этот самый
импульс. - Dingo(16.07.2020 13:13)
- Вообще-то, это классическая "задача обнаружения" из радиолокации.
Решается с помощью "согласованного фильтра" или коррелятора и
компаратора с порогом выбранным по критерию "максимума
правдоподобия".. Об этом тут уже тыщу раз писали. - Xaoc(16.07.2020 18:04,
)
- А зачем обрабатывать сигнал как множество мгновенных значений амплитуды представленное во времени, почему не рассматривать его как спектр? Что такое "импульс" ? Это увеличение амплитуды высоких частот. Собственно если входной сигнал пропустить через некий фильтр высоких частот, то уйдёт ненужная постоянная составляющая. Осталось пики с абсолютной амплитудой больше заданной посчитать. Если конечно "импульс" не вызывает затухающих колебаний. Тогда может быть сначала взять fk0(176 знак., 16.07.2020 17:00)
- А считать число пересечений порога не годится? - SciFi(16.07.2020 13:15)
- Мне не могут ответить, будет ли каждый импульс заканчиваться ниже порога. А так - да, обдумывал такой вариант. А по максимумам - выделив его можно и амплитуду сравнить. Точнее - если амплитуда выше можно уже искать максимумы. - Dingo(16.07.2020 13:22)
- Вообще-то, это классическая "задача обнаружения" из радиолокации.
Решается с помощью "согласованного фильтра" или коррелятора и
компаратора с порогом выбранным по критерию "максимума
правдоподобия".. Об этом тут уже тыщу раз писали. - Xaoc(16.07.2020 18:04,
- Значения тензодатчика. Задача "подсчёт количества импульсов на
временном интервале с амплитудой выше N". Выделить этот самый
импульс. - Dingo(16.07.2020 13:13)
- А задержка сильно напрягает? Я давно экспоненциальный фильтр везде
использую, и по ресурсам не напрягает, сдвигами даже на 8 - ми
битном пишется, памяти меньше надо, чем "оконному". - Visitor(16.07.2020 17:41)