我有一組data。顯然具有一些週期性。我想通過使用傅立葉變換找出它的頻率並繪製出來。使用python進行傅立葉變換
這是我的一個鏡頭,但它似乎不太好。
這是對應的代碼,我卻不知道失敗的原因:
import numpy
from pylab import *
from scipy.fftpack import fft,fftfreq
import matplotlib.pyplot as plt
dataset = numpy.genfromtxt(fname='data.txt',skip_header=1)
t = dataset[:,0]
signal = dataset[:,1]
npts=len(t)
FFT = abs(fft(signal))
freqs = fftfreq(npts, t[1]-t[0])
subplot(211)
plot(t[:npts], signal[:npts])
subplot(212)
plot(freqs,20*log10(FFT),',')
xlim(-10,10)
show()
我的問題是:由於原始數據是很週期性來看,我希望看到的是,在頻率域名的峯值非常尖銳;我怎樣才能使峯值更好看?
什麼是不正確的呢?你在期待什麼? –
@PaulH爲什麼峯值這麼廣泛,我看到原始數據的週期非常好。我怎樣才能讓頻率更明顯? – buzhidao