ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
4 мая
1424693 Топик полностью
Adept (09.04.2024 23:18, просмотров: 71) ответил RxTx на sin′(x) = cos(x) :-)))))
дык знак-то производная всё равно меняет, обозначая, так сказать, точки экстремума :) для синуса правда это не столь выражено. как для "прямоугольника", но всё равно, при статобработке, думаю получится весьма точно 

для борьбы с локальными экстремумами, кроме есс-но программных фильтров типа "скользящего среднего, медианы или ещё чего, эффективным видится следующий алгоритм.

- предварительное вычисление частоты (периода) по FFT, для определения размера окна обработки (фильтрации) в полпериода

- в заданном окне собираем сэмплы с метками времени, и фильтруя, скжем по медиане, вычисляем линию тренда

- на фильтрованной линии ищем глобальные экстремумы, если они есть, то это смена знака производной (локальные уже отфильтрованы, и в окне не может быть больше одного периода) с запоминанием его временнОй координаты

- двигаем окно далее по сигналу (перескакиваем на следующее "окно")

- повторяем вычисления

** в принципе алгоритм легко распараллеливается для многоядерных числодробилок.

- раз в полсекунды-секунду запускает обработку полученного вектора временнЫх координат экстремумов со статистической матобработкой.

...делать нужно так, как нужно. А как ненужно - делать не нужно (С) Винни-Пух :)