这是一个很基础的问题。我想使用SciPy/NumPy对示波器上的电压-时间数据进行fft处理,但在将数据传递给Scipy进行fft处理时完全不知所措。我有两个列表(x和y值)作为数据,并可以将它们压缩成元组。然而,我不确定该怎么做。我似乎找不到太多文档。如果之前有人问过这个问题,我很抱歉没能找到相关的问题。
总之,如果一个人有存储在两个列表或元组中的x和y数据,他们应该如何对这些数据执行FFT呢?
总之,如果一个人有存储在两个列表或元组中的x和y数据,他们应该如何对这些数据执行FFT呢?
from matplotlib import pyplot
fy = numpy.fft.fft(y)
dt = x[1] - x[0]
n = x.size
freqs = numpy.fft.fftfreqs(n, d=dt) # Frequencies associated with each samples
pyploy.plot(numpy.fft.fftshift(freqs), numpy.fft.fftshift(abs(fy)))
pyplot.show()
文档可在http://docs.scipy.org/doc/scipy/reference/generated/scipy.fftpack.fft.html找到。
我不确定为什么你想浪费时间; 电压测量序列中难道不是隐含的吗?
通常情况下,
import numpy as np
import scipy.fftpack
data = np.arange(0.0, 12.8, 0.1)
fft = scipy.fftpack.fft(data)
from scipy.fftpack import fft
my_voltage_list = [1.1,1.2,1.1,1.1,3.0,3.1]
my_time_list = [1,2,3,4,5,6]
fft_result = fft(my_voltage_list)
print fft_result
>>> array([ 10.6 +0.00000000e+00j, 0.1 +3.29089653e+00j,
-2.0 +4.44089210e-16j, -0.2 +0.00000000e+00j,
-2.0 -4.44089210e-16j, 0.1 -3.29089653e+00j])