0
我有兩個numpy數組(一個用於時間,一個用於值)從spice導出文本文件導入。該文件包含1kHz的竇。關於spice數據(時間,數值)頻率軸上的FFT不正確
當使用plotSpectrum函數(link here)繪製FFT時,輸出與1kHz不匹配,大約爲891Hz。
有什麼建議可能出了什麼問題?我計算了前4個時間樣本之間的dt,它們是等距的。香料是否不等於在出口文件中的所有樣品?或者出了什麼問題? Doe我需要限制陣列2的冪?
感謝您的幫助!
我完整的代碼看起來像
import numpy
from pylab import plot, show, title, xlabel, ylabel, subplot
from scipy import fft, arange
import pylab
data = numpy.loadtxt('sin1k.txt', delimiter='\t')
time = data[:,0]
value = data[:,1]
def plotSpectrum(y,Fs):
"""
Plots a Single-Sided Amplitude Spectrum of y(t)
"""
n = len(y) # length of the signal
k = arange(n)
T = n/Fs
frq = k/T # two sides frequency range
frq = frq[range(n/2)] # one side frequency range
Y = fft(y)/n # fft computing and normalization
Y = Y[range(n/2)]
plot(frq,abs(Y),'r') # plotting the spectrum
xlabel('Freq (Hz)')
ylabel('|Y(freq)|')
subplot(2,1,1)
plot(time,value)
xlabel('Time')
ylabel('Amplitude')
subplot(2,1,2)
plotSpectrum(value,(time[1]-time[0])*10e9)
pylab.xlim([0,2000])
show()