因此,我试图找到在不同频率下采样的各种信号的psd
,并在0-50Hz范围内进行比较
我有以下代码:
for i, th in enumerate(ths):
NFFT = 2**(int(np.log2(th.size)) - 8)
ax.psd(th, Fs = freq[i], NFFT = NFFT, scale_by_freq = False)
ax.set_xlabel("freq (Hz)")
ax.set_xlim(0,50)
#ax.relim() #These
#ax.autoscale() #Didn't work
我想做的是:
由于信号在50Hz以下经过低通滤波,因此采样频率高于100Hz的任何信号的psd部分都会降至极低。所以我的ylim
非常大,我想看到的psd
部分不容易看到。我可以在每次调用函数时手动set_ylim
,但是我想用某种方法自动设置ylim
以适应psd
,但是我在上找到的每个手动方法都假设我已经知道y值。但是psd
在后端做了很多计算,我不知道如何访问
有没有办法:
psd
绘图中的y值读取到数组中,或pyplot
中的当前x轴以某种方式重新安装y轴李>
您可以使用^{} 的返回值。它回来了
Pxx
(1D数组)-缩放前功率谱的值P_{xx}
(实值)freq
(1D数组)-Pxx中元素对应的频率李>line
(Line2D
)-此函数创建的行。仅当返回行为^{在这种情况下,我相信可以使用频率值以编程方式适当设置y限制,如下所示:
相关问题 更多 >
编程相关推荐