Предлагаю чисто инженерное решение:
1) Выполняем БПФ на известной частоте. При необходимости можно проводить БПФ нескольких близких частот.
2) В каждый период вычислений рассчитываем среднее значение амплитуд и среднеквадратичное отклонение амплитуд за прошедший период
, где
должно быть не более длительности регистрируемого полезного сигнала.
3) Прибор выдает тревожное сообщение, если среднее значение амплитуд большое (больше
), а их среднеквадратичное отклонение мало (меньше
). Среднее значение соответствует мощности полезного сигнала, а среднеквадратичное отклонение - стабильности формы этого сигнала.
Без всякого интегратора.
Это не то, чтобы не работает. Просто в ряде случаев (боюсь, и в Вашем) это нецелесообразно. БПФ "на данной частоте" не бывает, всегда получаем оценки по всей гребёнке частот. Вот использовать можем немногие из них, соответствующие интересующей. Если у Вас настолько большой запас по вычислительной мощности, что Вы можете себе позволить вместо десятка умножений-сложений в обычном фильтре использовать десятки тысяч - то, разумеется, можно и через БПФ считать. Засунув "интегратор" внутрь алгоритма БПФ, а "выпрямитель" в расчёт спектра мощности по преобразованию Фурье.
Вторая часть Вашего алгоритма, сравнение текущего значения мощности на интересующей Вас частоте с предыдущим с учётом СКО этого значения, также может применяться и с БПФ, и с фильтрами, и с синхронным накоплением, и с когерентной демодуляцией. Ценой того, что у Вас появляется некоторое время, потребное на адаптацию алгоритма, Вы избавляетесь от назначения порогового значения своей волей, исходя из технических соображений. Иногда это оправдано, иногда нет.