7

約 300,000 のデータ ポイントから移動平均をプロットしました。信号のピークの最大 y 値と、対応する x 値 (頻度) を見つける必要があります。プロット自体の座標を教えてほしいのですが、少なくともそれらを印刷できれば満足です。彼らは最強ではないので、私のプログラミングスキルを許してください。これは、私が取り組んでいるコードのセクションと、それが生成するプロットへのリンクです。画像を投稿するのに十分なポイントがありません。

def movingaverage(interval, window_size):
    window= np.ones(int(window_size))/float(window_size)
    return np.convolve(interval, window, 'same')

x = freq[0:300000]
y = fft
pylab.plot(x,y,"k.")
y_av = movingaverage(y, 30)
pylab.plot(x, y_av,"r")
pylab.xlim(0,10)
pylab.ylim(0,1500)
pylab.xlabel("Frequency")
pylab.ylabel("Moving Average Magnitude")
pylab.grid(True)
pylab.show() 

移動平均プロット

4

1 に答える 1

9

次のようなことができるはずです。

max_y = max(y_av)  # Find the maximum y value
max_x = x[y_av.index(max_y)]  # Find the x value corresponding to the maximum y value
print max_x, max_y

編集

numpy 配列には index メソッドがないため、コメントで指摘されているように、argmax を使用する必要があります。

max_y = max(y_av)  # Find the maximum y value
max_x = x[y_av.argmax()]  # Find the x value corresponding to the maximum y value
print max_x, max_y

この APIは、画像にテキストを描画できるように機能するはずだと思います。あなたは次のようにそれを行うことができます:

pylab.text(max_x, max_y, str((max_x, max_y)))
于 2012-08-08T18:59:41.640 に答える