2016-09-05 22 views
1

fftについて学ぶためのチュートリアルに従っていますが、コードの冗長性はありますが、私のマシンからのプロットはどうしたらいいかわかりません。私は5292サンプル以上の正弦波wavを持つことを確認するためにデータを記録します。私はshow()でプロットを実行したときしかし、私は、次の画像を取得する:(?ところで、これらの画像を小さくするためのマークダウンattrがあります)Plylab/MatPlotLibプロットでデータが正しく表示されない

pyplot

繰り返しますが、これは、その後のコードから生成されます。

from pylab import * 
from scipy.io import wavfile 


sampFreq, snd = wavfile.read('440_sine.wav') 

snd = snd/(2.**15) 

s1 = snd[:,0] 

timeArray = arange(0, 5292, 1) 
timeArray = timeArray/sampFreq 
timeArray = timeArray * 1000 #scale to milliseconds 


plot(timeArray, s1, color='k') 
ylabel('Amplitude') 
xlabel('Time (ms)') 


for i in s1: 
    print i 

show() 

要するに、私はfftについて学んでおり、私はpython/matplotlibの新人です。どんな助力も前もって高く評価されています。

答えて

0

sampFreqの値は? timeArrayは整数リストであり、sampFreqも同様に整数を返すと仮定しています。 sampFreqtimeArrayの値より大きい場合、結果のすべての値は整数除算であるため0になります。

を最初にfloatにキャストしてから、timeArrayリストをダイビングして、それが役立つかどうかを確認してください。

問題の一例として、Pythonシェルで試す:

>>> 3/4 

>>> 3/4.0 
関連する問題