Подскажите алгоритм (Поиск максимумов в сигнале)) |

08.12.2009, 19:53
|
|
Новичок
Регистрация: 06.12.2009
Сообщений: 1
С нами:
8647277
Репутация:
0
|
|
Подскажите алгоритм (Поиск максимумов в сигнале))
Собственно стоит задача средствами, к примеру Delphi, отыскать все позиции пиков в некотором сигнале (скажу сразу - сигналы могут быть разные). Пиком будем считать позицию, где амплитуда сигнала составляет скажем 15% от максимального пика, но, на один всплеск должен приходиться только один пик (его координата). Т.е, это не просто поиск максимальных элементов в массиве - это поиск масимального элемента во всплеске.
Сигнал задан огромным массивом значений. Для наглядности прилеплю картинку с кусочком сигнала.
Вот мой алгоритм - он вроде как и работает, но не точно (Может пропустить максимум, может указать два максимума в 1 всплеске).
Собственно алгоритм:
0. Находим наибольший эл-т в Массиве (это максимум сигнала от которого берется 15 %)
1. Находим все амплитуды (т.е справа и слева от таких точек будет меньший элемент)
2. Записываем 0 туда, где амплитуда меньше 15% от максимума
3. Начинаем поиск максимального элемента. В момент, когда слева не 0, а справа 0, меняем индекс массива, в который записываем максимумы. Т.е у нас получается поиск максимумов не по всему исходному массиву, а по всплескам.
Но, как я уже и сказал метод весьма не точен
Ломаю башку уже 2 недели, вот решил написать, может кто сообразительней меня будет или уже имел опыт с такого рода задачами
И да, собственно фрагмент сигнала:

|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|