У меня есть файл .wav, я загрузить его, и я получаю следующие спектрограммы, показывающие спектр в децибелахКак получить значения определенного частотного диапазон
http://i.stack.imgur.com/22TjY.png
Теперь я хотел бы знать, эти значения точно, потому что я хочу сравнить с другим wav-файлом, чтобы узнать, есть ли эти 4 значения.
http://i.stack.imgur.com/Jun25.png
источника для генерации, что фотографии (взятые из других StackOverflow например)
## some stuff here
for i in range(0, int(RATE/CHUNK_SIZE * RECORD_SECONDS)):
# little endian, signed shortdata_chunk
data_chunk = array('h', stream.read(CHUNK_SIZE))
if byteorder == 'big':
data_chunk.byteswap()
data_all.extend(data_chunk)
## some stuff here
Fs = 16000
f = np.arange(1, 9) * 2000
t = np.arange(RECORD_SECONDS * Fs)/Fs
x = np.empty(t.shape)
for i in range(8):
x[i*Fs:(i+1)*Fs] = np.cos(2*np.pi * f[i] * t[i*Fs:(i+1)*Fs])
w = np.hamming(512)
Pxx, freqs, bins = mlab.specgram(data_all, NFFT=512, Fs=Fs, window=w,
noverlap=464)
#plot the spectrogram in dB
Pxx_dB = np.log10(Pxx)
pyplot.subplots_adjust(hspace=0.4)
pyplot.subplot(211)
ex1 = bins[0], bins[-1], freqs[0], freqs[-1]
pyplot.imshow(np.flipud(Pxx_dB), extent=ex1)
pyplot.axis('auto')
pyplot.axis(ex1)
pyplot.xlabel('time (s)')
pyplot.ylabel('freq (Hz)')
я «думает», что информация находится в ром, но я не знаю, как получить его.
Почему мы рассматриваем Pxx должно иметь 512 столбцов? У меня есть фиксированный образец в 5 секунд. Также мой сигнал действительно грязный, у меня шум от окружающей среды – fler
Извините, это было плохое предположение с моей стороны. Поскольку я понятия не имею, как долго 'data_all', я создал (случайный) массив, который в моем случае оказался двумерным массивом с 512 столбцами (удачный снимок). Лучше всего, чтобы вы получили форму «Pxx» с «Pxx.shape», конечно. Затем возьмите кусочек примерно на 20%, потому что это где (на вашем изображении) сигналы начали. Кроме того, даже если ваш сигнал шумный, использование 'argrelmax' будет работать, хотя вам, возможно, придется помочь ему, отрезав ваш specgram в срезах (подобно вашему 2-му изображению). –
Спасибо, да, это работает с вашим ответом !!! – fler