如何从 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 的专家。
我用以下代码绘制了这个频谱:
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 的专家。