0

这是针对 Python 计算物理课程的。我们得到两个 .wav 文件,其中包含演奏相同音符的竖琴和钢琴文件。我们应该“加载文件并获取幅度的 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 = 频率。注意播放。

我遵循了这些步骤,得到了两个截然不同的笔记。有没有人看到我的过程中有失误?任何想法都会受到赞赏,即使它们超出了我的想象。我只是一个获得物理学学位的大三学生。首先十分感谢。

4

0 回答 0