Поэтому я пытаюсь найти psd
различных сигналов, отобранных на разных частотах, и сравнить их в диапазоне 0-50 Гц
У меня есть этот код:
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
Что я пытаюсь сделать:
Поскольку сигналы фильтруются нижними частотами ниже 50 Гц, любой сигнал с частотой дискретизации выше 100 Гц имеет часть, которая падает до очень низкого значения psd. Так что мои ylim
очень большие, и часть psd
, которую я хочу увидеть, не так легко увидеть. Я могу вручную set_ylim
каждый раз, когда я вызываю функцию, но я бы хотел, чтобы какой-то способ автоматически установил ylim
для соответствия psd
, однако каждый ручной метод, который я нашел в SO, предполагает, что я знаю значения y уже. Но psd
выполняет множество вычислений на сервере, к которому я не знаю, как получить доступ.
Есть ли способ либо:
- прочитать значения y из графика
psd
для массива, или - каким-либо образом замените ось y на основе текущей оси x в
pyplot
?