我是处理信号的新手,需要您的帮助。
我从我的 TI AFE4490 获得了一个 10 秒的原始 PPG(光体积描记图)信号。我的硬件已经过校准,我每秒使用 250 个样本来记录这些信号。最后我获得了2500分。
您可以在下面看到图像、点和代码。
顶部:我的原始 PPG 信号 - 底部:尝试应用 FFT:

代码:
RED, IR, nSamples, sRate = getAFESignal()
period = 1/sRate
plt.figure(1)
plt.subplot(2,1,1)
x = np.linspace(0.0, nSamples*period, nSamples)
y = IR
plt.xlabel("Time (s)")
plt.ylabel("Voltage (V)")
plt.plot(x,y)
plt.subplot(2,1,2)
yf = fft(y)
xf = np.linspace(0.0, 1.0/(2.0*period), nSamples//2)
plt.xlabel("Frequency (Hz)")
plt.ylabel("Gain")
plt.plot(xf, 2.0/nSamples * np.abs(yf[0:nSamples//2]))
plt.grid()
plt.show()
Run Code Online (Sandbox Code Playgroud)
该函数getAFEsignal()只是一个读取 .txt 文件并将所有内容放入两个 numpy 数组的函数。
在这里您可以找到 .txt 文件:原始信号文件
如您所见,我没有正确应用 FFT,我需要它来发现我需要过滤的频率。你知道我做错了什么吗,是否可以在这个信号上应用 FFT?