使用 librosa 和 Log10() 的示例计算:
import librosa, librosa.display
import numpy as np
magnitude_values = np.array([0, 108.963])
log_spectro_test = librosa.amplitude_to_db(magnitude_values)
print("magnitude_values:", magnitude_values)
print("log_spectro_test:", log_spectro_test)
my_max_val = 20 * np.log10(108.963 + 1e-6)
my_min_val = 20 * np.log10(0 + 1e-6)
print ("my_min_val", my_min_val, "my_max_val", my_max_val)
输出值:
magnitude_values: [ 0. 108.963]
log_spectro_test: [-39.25441896 40.74558104]
my_min_val -120.0 my_max_val 40.745581116739906
对于最大值它是正确的但对于最小值不正确。 我如何使用 log10 获得相同的值? 帮我找出我错在哪里?
我也看到了:
librosa min dB value -39.25441896 is
-39.25441896/20 = -1,962720948
10^-1,962720948 = 0,0108963000
这是最大震级值 108.963 除以 10000