这是一个python计算物理课。我们给了两个.wav文件,其中包含竖琴文件和弹奏相同音符的钢琴。我们应该'#34;加载文件并采用幅度的FFT。从FFT确定两种仪器的基波频率到4 sig figs。"
这就是我所做的。
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')
这一切都很好。现在,找到频率。注意到这是我被教导要做的事情。
FFT图中第一个尖峰的x值=指数。
deltaF =采样率/样本数。
指数* deltaF = Freq。发挥的说明。
我按照这些步骤获得了两个截然不同的音符。有没有人在我的过程中看到失误?即使他们超越我的头脑,任何想法都会受到赞赏。我只是一名获得物理学位的大三学生。首先十分感谢。