Почему два.wav, которые должны иметь одинаковую высоту звука, не

Это для класса вычислительной физики Python. Нам даны два файла.wav, которые содержат файлы арфы и фортепиано, играющих одну и ту же ноту. Предполагается, что мы "загрузим файлы и возьмем БПФ амплитуды. От БПФ определим частоту основного сигнала для обоих инструментов до 4-х фиг".

Вот что я сделал.

import scipy.io.wavfile as sciwav
import matplotlib.pyplot as plt
#import data from .wav file. This function returns the sampling rate and the data in an array.
harp_rate,harp_data=sciwav.read('/Users/williamweiss2/Desktop/Test2/harp.wav',mmap=False)
piano_rate,piano_data=sciwav.read('/Users/williamweiss2/Desktop/Test 2/piano.wav',mmap=False)
#perform the FFT on both sets of data and graph to find the index of the first harmonic.
plt.figure(1)
p=rfft(piano_data)
h=rfft(harp_data)
plt.subplot(121)
plot(abs(p),'b')
title('Piano FFT')
xlim(0,100000)
plt.subplot(122)
plot(abs(h),'g')
title('Harp FFT')

Это все работает просто отлично. Теперь, чтобы найти freq. Примечательно, что это то, чему меня учили.

Значение x первого пика на графике БПФ = индекс.

deltaF = частота выборки / количество образцов.

Индекс * deltaF = Freq. ноты сыграно.

Я следовал этим шагам и получил две совершенно разные заметки. Кто-нибудь видит ошибку в моем процессе? Любые идеи ценятся, даже если они идут над моей головой. Я только что получил степень по физике. Большое спасибо заранее.

0 ответов

Другие вопросы по тегам