In [59]:
import scipy
import scipy.fftpack
import pylab
from scipy import pi
import pandas as pd
def get_sin(freq, t):
return scipy.sin(2*pi*t*freq)
def mix_sin(t, freq_ratio):
rst = np.zeros(t.shape)
for freq, ratio in freq_ratio:
rst += get_sin(freq, t)
return rst
# 2*scipy.random.random(len(t))
t = scipy.linspace(0,12,400)
freq_ratio = [(3,1), (7,2)]
signal = mix_sin(t, freq_ratio)
FFT = abs(scipy.fft(signal))
freqs = scipy.fftpack.fftfreq(signal.size, t[1]-t[0])
freqs = abs(freqs)
pylab.subplot(211)
pylab.plot(t, signal)
pylab.subplot(212)
pylab.plot(freqs,FFT,'x')
pylab.show()
In [69]:
stk = pd.read_csv("./data/stock/0006.csv",parse_dates=True)
In [62]:
signal = stk['Adj Close']
t = np.arange(signal.size)
signal = signal[1:1500]
t = t[1:1500]
In [68]:
FFT = abs(scipy.fft(signal))
freqs = scipy.fftpack.fftfreq(signal.size, t[1]-t[0])
freqs = abs(freqs)
pylab.subplot(211)
pylab.plot(t, signal)
pylab.subplot(212)
pylab.plot(freqs[100:500],FFT[100:500],'x')
pylab.show()
In [ ]: