我用Tektronix示波器进行信号采集,获得了一万个测量点(几个信号周期),需要对这组数据进行频率分析。我的信号为8MHz正弦波。当我使用SciPy或NumPy时,得到的结果相同 - 频率分布太宽。两个值之间的距离为500kHz,最高频率为2.5GHz(荒谬)。当我想要测量8MHz左右的频带时,只能得到7.5、8.0和8.5 MHz的确切值。我试图改变由
(x[1]-x[0])
确定的样本间隔,但没有得到更好的结果。def CalculateFFT(t_val,p_val):
x = t_val #Two parameters: [x,y] values
y = lambda x: p_val
com_signal = y(x) # Combined signal
FFT_val = abs(scipy.fft(com_signal))
freq_val = scipy.fftpack.fftfreq(len(com_signal), x[1]-x[0])
spec_val = 20*scipy.log10(FFT_val)
return freq_val, spec_val