import scipy
import pylab
def calc_x_k_list(k, t_list):
result_list = []
w = 1
T_0 = 4
for t in t_list:
t1 = 1.0 * w/T_0 * scipy.sinc(1.0 * w/ T_0 *k)
t_last = scipy.e**complex(0, 2 * scipy.pi * k /T_0 * t)
result = (t1 * t_last).real
result_list.append(result)
return result_list
def calc_x_f_list(k, t_list):
y_list_list = []
for k in range(-k, k):
y_list = calc_x_k_list(k, t_list)
y_list_list.append(y_list)
final_y_list = [ sum(a) for a in zip(*y_list_list)]
return final_y_list
t_list = scipy.arange(-2*scipy.pi, 2*scipy.pi, 0.1)
k = 3
y_list = calc_x_f_list(k, t_list)
p3 = pylab.plot(t_list, y_list, label = 'k=%d' % k)
k = 5
y_list = calc_x_f_list(k, t_list)
p5 = pylab.plot(t_list, y_list, label = 'k=%d' % k)
k = 200
y_list = calc_x_f_list(k, t_list)
p200 = pylab.plot(t_list, y_list, label = 'k=%d' % k)
pylab.legend()
pylab.title(r'Fourier Series')
pylab.xlabel(r'Time $t$')
pylab.ylabel(r'$x(t)$')
pylab.grid(True)
pylab.show()