5Hzでサンプリングされた1Hzの方形波信号であるため、FFT(第2の)プロットでは、周波数= 1.0の大きなピークが他の周波数と比較して高いです。FFTを使用して矩形波の周波数を見つける方法
import numpy as np
from matplotlib import pyplot as plt
from scipy import signal
t500 = np.linspace(0,5,500,endpoint=False)
s1t500 = signal.square(2*np.pi*1.0*t500)
最初のプロットは1 Hzの矩形波が5秒間は5Hzでサンプリングを示しています:
t5 = np.linspace(0,5,25,endpoint=False)
t5 = t5 + 1e-14
s1t5 = signal.square(2.0*np.pi*1.0*t5)
plt.ylim(-2,2); plt.plot(t500,s1t500,'k',t5,s1t5,'b',t5,s1t5,'bo'); plt.show()
私はおそらくここに愚かな何かが欠け、この時に初心者です ここでは、私がやっていることです
ここでは2番目のプロットでは、私はMAGNを期待していますf = 1Hzでf = 2よりも大きくなるようにする。何か不足していますか?あなたが複雑な空間でフーリエ変換(DFT/FFTの場合、または数字のシーケンス)機能を作り出す変換するという事実を見逃しているようだ
y1t5 = np.fft.fft(s1t5)
ff1t5 = np.fft.fftfreq(25,d=0.2)
plt.plot(ff1t5,y1t5); plt.show()
これはDFTのプロパティのようですが、私は同様の例をmatlabのドキュメントで見つけました:http://de.mathworks.com/help/matlab/math/discrete-fourier-transform-dft.html – jojonas