Собственно стоит задача средствами, к примеру Delphi, отыскать все позиции пиков в некотором сигнале (скажу сразу - сигналы могут быть разные). Пиком будем считать позицию, где амплитуда сигнала составляет скажем 15% от максимального пика, но, на один всплеск должен приходиться только один пик (его координата). Т.е, это не просто поиск максимальных элементов в массиве - это поиск масимального элемента во всплеске. Сигнал задан огромным массивом значений. Для наглядности прилеплю картинку с кусочком сигнала. Вот мой алгоритм - он вроде как и работает, но не точно (Может пропустить максимум, может указать два максимума в 1 всплеске). Собственно алгоритм: 0. Находим наибольший эл-т в Массиве (это максимум сигнала от которого берется 15 %) 1. Находим все амплитуды (т.е справа и слева от таких точек будет меньший элемент) 2. Записываем 0 туда, где амплитуда меньше 15% от максимума 3. Начинаем поиск максимального элемента. В момент, когда слева не 0, а справа 0, меняем индекс массива, в который записываем максимумы. Т.е у нас получается поиск максимумов не по всему исходному массиву, а по всплескам. Но, как я уже и сказал метод весьма не точен Ломаю башку уже 2 недели, вот решил написать, может кто сообразительней меня будет или уже имел опыт с такого рода задачами И да, собственно фрагмент сигнала:
1)непонятно что такое всплеск 2)чем не устраивает прведеный алгоритм? Что значит "Может пропустить максимум, может указать два максимума в 1 всплеске" ? Откуда ты знаешь что там должен быть один максимум а не два ? А вообще мне кажется эта задача не имеет однозначного решения. Все зависит от того, что считать "всплеском", а всплески у тебя, я так подозреваю, это низкочастотные колебания сигнала. Если это действительно так, то задача решаема только если задается еще и максимальная частота всплесков (то есть все колебания более высокой частоты - игнорируются). А отсюда выплывает и решение - низкочастотный фильтр + поиск простых максимумов на нем.
Подскажите алгоритм простого написания спама в Delphi. Хочу проанализировать весь код и написать обнаружение спама... а сам спам никак не выходит