这是一个非常基本的问题。我试图用SciPy/NumPy来对来自示波器的电压与时间数据进行fft处理。在将数据传递给scipy以进行fft处理时,我完全丧失了信心。我有数据作为两个列表(x和y值),显然可以将列表压缩到元组。我不确定该怎么做。我似乎无法找到很多文档。如果以前有人问过我的道歉,我找不到相关的问题。总结:如果一个人的x和y数据存储在两个列表中或存储在一个元组中,他们如何对这些数据执行FFT?电压/时间数据的NumPy/SciPy FFT
2
A
回答
2
的文档可以在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)
+0
你是对的,我想我不需要花时间去使用它来指定其他波形的相对时间位置。这可以很容易地从文件名中推断出来。有时,这些明显的事情从来没有出现过。谢谢。 – relaytheurgency
3
假设所有样本被等距间隔(即,有每次采样之间的差相同),你只需要传递y
向量到FFT功能。
它会返回一个复数的向量。第一个数字将对应于直流电压。然后,一半的矢量将是正频率,而另一半将对应负频率。如果你只处理真实的电压,你可能不需要负频率。
下面是一个例子,假设x
任何y
是numpy的阵列:
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()
1
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])
相关问题
- 1. EEG数据的频率电压图 - Python中的FFT
- 2. FFT与IQ数据之间的关系
- 3. fft的fft未返回预期数据
- 4. FFT - 对PCM数据
- 5. STFT /滑动FFT实时数据
- 6. 使用Numpy的波动压力的FFT
- 7. 如何使用MATLAB按时间序列压缩数据点?
- 8. 关于spice数据(时间,数值)频率轴上的FFT不正确
- 9. FFT MATLAB时间频率和背部
- 10. JTransforms从PCM数据的Android中的FFT
- 11. 实时做FFT
- 12. 旋转/解压缩的时间序列数据在Python数据帧
- 13. 如何从FFT文件中提取数据以用于FFT
- 14. 转换FFT数据以匹配ComputeSpectrum FFT输出
- 15. 将AudioQueueBufferRef数据传递给FFT函数!
- 16. 在命令行启动时对xmgrace中的数据执行FFT
- 17. 用于FFT的窗口化实时音频数据
- 18. 压缩数据库和SQL Server数据库之间的区别
- 19. FFTS FFT和Matlab FFT之间的不同结果值
- 20. 仅需要几个时间点时的逆FFT
- 21. 数字电压表为8051
- 22. 使用cassandra压力测试生成时间序列数据
- 23. 应该多长时间一次压缩SQL CE数据库?
- 24. matlab:在数据长度的for循环中的短时间间隔内运行fft
- 25. 实时FFT绘图
- 26. FFT - 何时开窗?
- 27. Matlab fft函数
- 28. Matlab:conv() - > fft()* fft() - > ifft()
- 29. 使用1D FFT的2D FFT
- 30. 数据压缩
是否所有时间样本等距间隔? –
嗨,你知道吗?我有一个10000点的时间与速度数据,时间均匀分布。你能告诉我如何使用Python来获取我的数据的频率? – jhaprade