2016-10-03 9 views
2

に余分なラインを手に入れた私は、信号のFFTを示すために、「」、ここでコードpyplotを使用しています:ありはPythonのプロット

myFFT = numpy.fft.fft(a) 
x = numpy.arange(len(a)) 
fig2 = plt.figure(2) 
plt.plot(numpy.fft.fftfreq(x.shape[-1]), myFFT) 
fig2.show() 

を、私はこの数字 enter image description here

を取得します周波数領域における信号の開始から終了までの線。どうすればこの行を削除できますか?私はpyplotに何か間違っている?

答えて

0

plt.plot(numpy.fft.fftfreq(x.shape[-1])を見てください:最初と最後の点は同じであり、したがって、グラフは、「ループを作る」

あなたはplt.plot(sorted(numpy.fft.fftfreq(x.shape[-1])),myFFT)またはplt.plot(myFFT)

0

代わりのsortedを行うことができ、あなたが使用することをお勧めしますnp.fft.fftshiftを中心にして0番目の周波数を中心に、これは奇数信号と偶数信号を適切に扱います。最も重要なのは、プロットしているxベクトルとyベクトルの両方に変換を適用する必要があることです。

plt.plot(np.fft.fftshift(np.fft.fftfreq(x.shape[-1])), np.fft.fftshift(myFFT)) 

はまた、FFT(np.absまたはnp.angle)の振幅や位相を表示することができます - - であるとして、あなただけの実部をプロットしています。

関連する問題