Я совершенно новичок в python, scipy, matplotlib и программировании в целом. Я использую следующий код, с которым я столкнулся в Интернете, для применения БПФ к файлам .wav:
import scipy.io.wavfile as wavfile
import scipy
import scipy.fftpack as fftpk
import numpy as np
from matplotlib import pyplot as plt
s_rate, signal = wavfile.read("file.wav")
FFT = abs(scipy.fft.fft(signal))
freqs = fftpk.fftfreq(len(FFT), (1.0/s_rate))
plt.plot(freqs[range(len(FFT)//2)], FFT[range(len(FFT)//2)])
plt.xlabel('Frequency (Hz)')
plt.ylabel('Amplitude')
plt.show()
Полученные графики дают значения амплитуды от 0 до нескольких тысяч, в зависимости от файлов. , и я понятия не имею, в каких единицах они находятся. Я предполагаю, что это могут быть относительные амплитуды, и мне было интересно, есть ли способ превратить это в децибелы, поскольку мне нужно указать c значений.
Спасибо
Танги