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()