1

私の最初のstackoverflowの質問、私がそれを正しく行うことを願っています。

パワースペクトル密度チャート()を作成しようとしてmatplotlib.pyplot.psdいますが、プロットする前に、スペクトルの両端にある256個のビンを破棄する必要があります。私のタスクでは、x軸の範囲を制限するだけでなく、実際にデータポイントを削除する必要があります。

psd関数は2つの配列のタプルを返します。配列の要素を削除してから、を呼び出すだけでよいと思いshow()ました。しかし、それは機能していないようです。

from matplotlib.pyplot import *
import numpy as np

#put some dummy data into s
s=np.vectorize(complex)(range(2048),range(2048))

x=psd(s, 2048, 194171, window=np.bartlett(2048),Fc=14050000)

#trim x
del x[0][-256:]
del x[0][:256]
del x[1][-256:]
del x[1][:256]

show()

これは与える:

Traceback (most recent call last):
  File "dummy-fft.py", line 10, in <module>
    del x[0][-256:]
ValueError: cannot delete array elements

psdプロットを切り捨てるより良い方法はありますか?

4

1 に答える 1

1

頭と尾を削除する代わりに、スライスを使用して必要な部分を取得できます。

from matplotlib.pyplot import *
import numpy as np

#put some dummy data into s
s=np.vectorize(complex)(range(2048),range(2048))

power, freq=psd(s, 2048, 194171, window=np.bartlett(2048),Fc=14050000)
figure()
semilogy(freq[256:-256], power[256:-256])
show()
于 2012-09-07T03:08:02.617 に答える