我想对不定期发布的温度传感器的频率谱数据运行聚类算法(svm,knn)。这是进行 FFT 的温度数据:
我得到了这个温度数据的平均频率以及数据帧中每个温度传感器的平均频率,平均每 18 分钟一次,2 点之间的最长距离是 3 小时:
# group by short id
groups = df.groupby('id')
time_diff = groups.apply(lambda df: df.published_at.diff().mean())
隔离一系列图形化的温度数据:
signal = df.loc[df['_id'] == 'A1']['temperature']
存储的信号大小和平均采样频率作为变量:
# sampling frequency:
Fs = time_diff[:1]
Fs
Out[217]: 00:18:54.085526
# size
S = signal.size
Then took the fft and calculated dBs
X = np.fft.fft(signal)
X_db = 20*np.log10(2*np.abs(X)/S)
And plotted the results:
plt.plot(X)
plt.show()
plt.plot(X_db)
plt.show()
这些图表直观地看起来不像它们对应于原始数据。fft 的目标是然后使用 SVM 对数据进行分类,但是,我不确定哪个变体 fft 是合适的,也不确定是否使用平均时间频率。

