如何从 Python PSD 函数中获取最大幅度值

how to get the maximum amplitude value from the Python PSD function

我用以下代码绘制了这个频谱:

PSD plot

[Y,F]=psd(samples, NFFT=1024, Fs=sdr.sample_rate/1e6, 
Fc=sdr.center_freq/1e6, noverlap=0)
xlabel('Frequency (MHz)')
ylabel('Relative power (dB)')           
max=np.max(Y)
print(max)

但后来我得到

max=0.000458510518667

实际上,如果我打印 Y 的值,我得到:

[ 8.60400008e-06 7.85361760e-06 9.00300444e-06 ...,
9.55738417e-06 1.14888955e-05 1.12340323e-05]

也许我需要做一些其他事情来获得我在图中看到的振幅?

结果没有以 dB 为单位,所以实际上:

10*log(0.000458) = -33 dB (approx.)

因此,前面的代码是正确的,如果需要获取PSD函数的最大值可以使用。您可以添加此代码:

    max=np.max(Y)
    log=10*math.log10(max)
    print(max)
    print(log)

感谢用户 @ImportanceOfBeingErnest,他是我使用的 Python 库 matplotlib 的专家。