修剪matplotlib功率谱图

时间:2012-09-07 02:57:24

标签: python plot matplotlib psd

我的第一个stackoverflow问题,希望我做得对..

我正在尝试构建功率谱密度图表(matplotlib.pyplot.psd),我需要在绘制之前丢弃光谱两端的256个分档。对于我的任务,我需要实际删除数据点而不是简单地限制x轴范围。

psd函数返回两个数组的元组,我想我可以简单地删除数组的元素,然后调用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情节?

1 个答案:

答案 0 :(得分: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()