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

时间:2017-11-14 16:08:44

标签: python matplotlib plot spectrum

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

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)

然后我得到了

  

最大= 0.000458510518667

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

  

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

也许我需要做些别的事来获得我在情节中看到的振幅?

1 个答案:

答案 0 :(得分:1)

实际上没有以dB为单位给出结果:

  

10 * log(0.000458)= -33 dB(约)

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

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

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