FFT を使用して、設計中の IC テスターの出力信号の歪みを調べています。1 つはサンプリングされた周波数を含み、もう 1 つは対応する FFT 値を含みます。heapq ライブラリの nlargest 関数を使用して 3 つの最大 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