我的数据集(患者编号,时间/毫秒,x,y,z,标签)
1,15,70,39,-970,0
1,31,70,39,-970,0
1,46,60,49,-960,0
1,62,60,49,-960,0
1,78,50,39,-960,0
1,93,50,39,-960,0
.
.
.
我正在尝试在预处理阶段使用spectrogam用于x轴信号,然后将其用作机器学习模型的输入数据,而不是使用原始的原始x轴数据
这是我试图做的事情
import matplotlib.pyplot as plt
import numpy as np
dt = 0.0005
t = np.arange(0.0, 20.0, dt)
data = np.loadtxt("trainingdataset.txt", delimiter=",")
x = data[:]
NFFT = 1024 # the length of the windowing segments
Fs = int(1.0/dt) # the sampling frequency
ax1 = plt.subplot(211)
plt.plot(x)
plt.subplot(212, sharex=ax1)
Pxx, freqs, bins, im = plt.specgram(x, NFFT=NFFT, Fs=Fs, noverlap=900)
plt.show()
它让我得到以下错误
Warning (from warnings module):
File "C:\Users\hadeer.elziaat\AppData\Local\Programs\Python\Python36\lib\site-packages\matplotlib\axes\_axes.py", line 7221
Z = 10. * np.log10(spec)
RuntimeWarning: divide by zero encountered in log10
答案 0 :(得分:0)
如果x
是您的信号,并且您可以假设您的采样率是time/millisecond
的平均值,则可能您可以使用librosa
库来使用{计算梅尔频谱图{3}},还有其他工具来计算信号相关的功能。