В настоящее время я работаю над проектом, в котором я записываю величину ускорения мобильного телефона, совершая периодические движения, что очень заметно, когда я визуализирую его в python и сглаживаю.Тем не мение;Я пытаюсь программно получить частоту сигнала (mag), и пока все мои попытки провалились.Данные хранятся в CSV-файле, который включает в себя несколько столбцов, но я извлекаю столбец величины, сглаживаю его с помощью фильтра нижних частот, а затем, наконец, пытаюсь использовать функцию fft numpy для моего отфильтрованного массива значений, но это не дает мнеожидаемый результат.
Вот изображение моей визуализированной величины после сглаживания:

Как вы можете видеть, это довольно периодически, и вы можете сказать, просто посмотревна этом, но я понятия не имею, почему FFT не может поймать это.
Я пробовал FFT и из numpy пакета, и из scipy, оба дают мне одинаковые результаты.
data = genfromtxt("data.csv", dtype=float, delimiter=',', names=True)
y = data['mag']
w = np.fft.fft(y)
freq = np.fft.fftfreq(len(w))
Вывод, который я получаю из freq
массива, где самая высокая частота равна 0, чего я не понимаю.Если это уместно, я знаю, что частота дискретизации, с которой я записываю данные с устройства, составляет 20 миллисекунд, и я уже пробовал FFT как с необработанными данными, так и со сглаженными, и все же безуспешно.