eegmak
@eegmak

Каким способом посчитать частоту сигнала по нескольким сэмплам?

Даны сэмплы(несколько массивов с данными)
У ацп частота дискретизации больше частоты которую ожидаем получить (ориентировочно 60кгц).
Нужно узнать только частоту сигнала (функция частотомера).
Для увеличения точности имеется набор сэмплов, а не один сэмпл. Т.е. записали частоту в разные моменты времени в разные массивы сэмпл1 сэмпл2 сэмпл3 итд
Какую функцию и библиотеку вы посоветуете чтобы вычислить частоту и как за счет долговременной записи сигнала (не непрерывно, а через промежутки времени) вычислить частоту более точно?
  • Вопрос задан
  • 267 просмотров
Решения вопроса 1
@pfg21
ex-турист
если искомый сигнал синусоидальный, то прогнать данные через преобразование фурье.
из получившихся данных взять частоту с максимальной амплитудой.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Maksim_64
@Maksim_64
Data Analyst
чтобы вычислить частоту

Сначала нужно определится о природе нашей проблемы. Стохастическая, детерминистическая, стохастическая + детерминистическая. Стохастическая значит - содержит вероятность (осуществляется моделирование посредством случайных величин), детерминистическая не какой вероятности нет, ну и третье проблема содержит и то и другое.

Глянем примеры.
f(x) = 2*x+3 - детерминистическая
Normal(0,1) - стохастическая даст случайное значение из Гаусовго распределения с параметрами среднее 0 и стандартное отклонение 1.
f(x) = 2*x+3 + Normal(0,1) - это третий кейс, когда мы накладываем шум на некую функцию.

В машинном обучении мы делаем допущении что наша проблема имеет вид Y = F(X) + E.
Где X - это наши данные на вход, Y - это результат и E это определенная случайная ошибка. Мы говорим существует некая функция F которая детерминистическая и она сопоставляет данные на вход и результат. Так вот задача определить функцию и подобрать параметры которые минимизирует ошибку E.

То есть на выходе у нас не точная частота, а предсказание частоты (возможно довольно точная).
В зависимости какие методики и какими свойствами должная обладать оценочная функция это либо scikit-learn либо statsmodels либо нейронки Tensorflow + Keras.

Если идет поиск точной частоты (отсутствует вариативность в задаче) то это поиск обычных параметров функции. То есть все это должно быть представлено как система уравнений (при условии достаточности информации) и просто решено. это scipy, numpy, sympy.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы