Ответ зависит от контекста.Если вам нужно только найти локальный максимум, то вы можете просто указать интервал (подмассив) и выполнить простую итерацию Math.Max()
.Это, однако, может быть не тем, что вы хотите.
Как вы также упомянули сглаживание, которое отличается от нахождения локального максимума.Есть много методов , которые вы можете использовать для этого, которые основаны на области, типе сигнала, времени, частоте, пространстве, фазе, ваших потребностях, ваших целях, вашей гипотезе и т. Д.
Выможно начать с некоторой исследовательской статистики по сигналу, чтобы помочь вам понять, какую технику вы можете применить.Такие инструменты доступны в пакетах статистики (например, SPSS, Minitab) и Matlab.Посмотрите на графики сигналов, попробуйте подгонку кривой и, возможно, сначала линейную регрессию.Оттуда вы можете увидеть, куда идти.