Я новичок в области обработки сигналов и пытаюсь найти образец по данным акселерометра. Следующий график (временная метка против нескольких трасс) представляет данные акселерометра вместе с меткой.
Я нанес несколько кривых на оси Y. Как видно из графика, когда устройство выполняет какую-то операцию и на основании этого мы можем видеть всплески данных акселерометра. Для большей ясности я также делюсь развернутым видом (увеличенный вид, как показано ниже).
Для большей ясности и поиска возможности машинного обучения я применил БПФ, используя следующий фрагмент кода:
import pandas as pd
from scipy.fftpack import fft
df1 = pd.read_csv('/home/accelerometer_data.csv',delimiter=",")
print(df1.shape) # Output: (3755771, 4)
sample_rate = 50 # Frequency of the signal i.e. 50 HZ. Number of samples per second.
N = len(df1['acc_z']) # Total number of readings i.e. 3755771
frequency = np.linspace (0.0, 25, int (N/2))
freq_data = fft(df1['acc_z']) # Selecting accelerometer z axis
y = 2/N * np.abs (freq_data [0:np.int (N/2)])
В приведенном выше коде len(frequency)
и len(y)
равны 1877885
, что составляет половину от общего количества показаний. Тогда это может не обеспечить частоту для остальных точек данных. Это правильно?
Диаграмма БПФ для приведенного выше кода показана ниже:
Правильно ли рассчитан БПФ? Диаграмма БПФ, по-видимому, не полезна для извлечения объектов.
Пожалуйста, поделитесь своими взглядами.