所以我试图找到以不同频率采样的各种信号的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
,但是我在SO上找到的每个手动方法都假定我知道y值已经。但是psd
在我不知道如何访问的后端进行了大量计算。
有什么方法可以选择:
psd
图中的y值读取到数组,或pyplot
中的当前x轴重新设置y轴?您可以使用matplotlib.pyplot.psd
的返回值。返回
matplotlib.pyplot.psd
(一维数组)-缩放前功率谱的值Pxx
(实际值)P_{xx}
(一维数组)-对应于Pxx中元素的频率。freq
(line
)-此函数创建的行。仅在return_line为Line2D
时返回。在这种情况下,我相信可以使用频率值以编程方式适当地设置y限制,如下所示:
True