Разложить в ряд Фурье функцию, заданную таблично и построить график нескольких гармоники
Есть функция, она задана таблично:
X 0 1 2 3 4 5 6 7
Y 0 1 2 2 5 4 3 0
Примерный исходный график прилагаю: 
Мне необходимо построить несколько гармоник. Как я понимаю, это должно выглядеть подобным образом: 
Только как это сделать для моей функции? Можете подсказать? Заранее вам спасибо.
Код на python для построения исходной функции:
import numpy as np
from scipy.interpolate import splrep, splev
import matplotlib.pyplot as plt
X = np.array([0, 1, 2, 3, 4, 5, 6, 7])
Y = np.array([0, 1, 2, 2, 5, 4, 3, 0])
# Построение сплайна
tck = splrep(X, Y)
# Генерация новых точек для интерполяции
x_new = np.linspace(X.min(), X.max(), 100)
y_new = splev(x_new, tck)
# Визуализация результатов
plt.plot(X, Y, 'o', label='Исходные данные')
plt.plot(x_new, y_new, 'b', label='Сплайновая интерполяция')
plt.legend()
plt.xlabel('X')
plt.ylabel('Y')
plt.show()