【发布时间】:2017-11-28 03:52:52
【问题描述】:
我想对在 200Hz 获得的 FFT 图进行平滑处理(我目前捕获了 500 个点),以便在 THIS 附近显示代表峰值。
这是我的代码:
N = 500
T = 5/1000
y1 = np.array(data_Ax)
yf1 = scipy.fftpack.fft(y1)
xf1 = np.linspace(0.0, 1.0/(2.0*T), N/2)
yfft1 = 2.0/N * np.abs(yf1[:N//2])
plt.figure(figsize=(20, 3), dpi= 100, facecolor='w', edgecolor='k')
plt.plot(xf1, yfft1, 'g-', label ="FFT for Ax")
plt.xlabel('Frequency [Hz]')
plt.legend(loc=1)
为了平滑我尝试使用这个:
rft = np.fft.rfft(yfft1)
y_smooth = np.fft.irfft(rft)
但是没有任何作用。
我很清楚 200Hz 是一个低采样频率,500 次测量并不多,但这只是为了掌握程序的窍门。这是获得的图表:
我想知道:
- 如何平滑图形?
- 如何去除 0Hz 处的峰值(高通滤波器)?
- 从理论上讲,代表性 FFT 图是否有最小测量次数要求?
感谢您的任何帮助!
L
【问题讨论】:
标签: python python-3.x scipy signal-processing fft