На графике FFT (второй) я ожидаю более высокий пик на частоте = 1,0, по сравнению с другими частотами, поскольку это сигнал квадратной волны 1 Гц, отснятый на частоте 5 Гц.Как найти частоту прямоугольной волны с использованием 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 Гц Square Wave сэмпл в 5Гц в течение 5 секунд:
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()
Здесь, на втором участке, я ожидаю, что магнит itude при f = 1 Гц будет больше, чем при f = 2. Я что-то упускаю ?
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