我正在使用 FFT 来查看我正在设计的 IC 测试仪的输出信号上的失真。我有两个数组,一个包含采样频率,另一个包含相应的 FFT 值。我已经能够使用 heapq 库中的 nlargest 函数打印三个最高的 FFT 值,但还想从 x 轴数组中打印相应的频率值。我的部分代码如下。频率值存储在数组“frq”中,FFT 值存储在数组“Y”中
Y = sci.fft(y)/n # fft computing and normalization
Y = Y[range(n/2)]
Y = abs(Y)
print heapq.nlargest(3, 20*np.log10(abs(Y)))
print heapq.nlargest(3, frq, key=lambda i: Y[i])
我从最后一行代码收到以下错误:
print heapq.nlargest(2, frq, key=lambda i: Y[i])
IndexError: index 500 is out of bounds for axis 0 with size 50