Масштабировать данные, чтобы они были синусоидальными
У меня есть некоторые данные временных рядов, на которые я смотрю в Python, которые, как я знаю, должны следовать функции sine2, но по разным причинам не совсем подходят. Я беру БПФ, и он имеет довольно широкий разброс частот, когда он должен быть очень узкой частотой. Тем не менее, ошибки, вызывающие это, довольно непротиворечивы - если я возьму данные снова, они будут очень близко соответствовать предыдущему набору данных и выдают очень похожее БПФ.
Поэтому я пытался придумать, как я могу изменить масштаб оси времени данных, чтобы она была на одной частоте, и затем применить это же масштабирование к будущим данным, которые я собираю. Я попробовал различные методы фильтрации, чтобы сгладить данные или вырезать частоты из БПФ без особой удачи. Я также пытался подгонять синусоидальную частоту2 к данным, но не смог получить хорошее соответствие (если бы я мог, я использовал бы функцию частоты против времени для масштабирования оси времени исходных данных чтобы он имел постоянную частоту и затем применял такое же масштабирование к любым новым данным, которые я собираю).
Вот небольшая выборка данных, на которые я смотрю (полные данные идут за несколько сотен циклов). И в результате БПФ из полных данных
Любые предложения будут ценны. Спасибо!