0

これは、python 計算物理クラス用です。同じ音符を演奏するハープとピアノのファイルを含む 2 つの .wav ファイルが与えられます。「ファイルをロードし、振幅の FFT を取得します。FFT から、両方の楽器の基本波の周波数を 4 sig fig に決定する」ことになっています。

これが私がやったことです。

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 FFT グラフの最初のスパイクの値 = インデックス。

deltaF = サンプリング レート / サンプル数。

インデックス * deltaF = 周波数。注目の演奏。

私はこれらの手順に従い、2 つのまったく異なるメモを取得しました。私のプロセスにミスステップが見られる人はいますか? 頭に浮かんだアイデアでも大歓迎です。私は物理学の学位を取得したばかりのジュニアです。よろしくお願いします。

4

0 に答える 0