Ja widze ze tu chodzi o widmo sygnalu analogowego a nie dyskretnego.Bez matmy tego nie obejdziesz chocbys nie wiem jak bardzo chcial.O ile sygnaly sa przyste lub nieparzyste sprawa sie troche ulatwia.Ogolnie twierdzenie Fouriera i nasze kochane caleczki

Jedyne co moze ci uproscic policzenie tego to jakis algorytm na liczenie calek oznaczonych a te najprostsze sa wrecz banalne i dostepne wszedzie np taki:
/*liczenie calki oznaczonej funkcji x^2 w granicach <2,3>*/
#define x0 2
#define x1 3
int suma=0;
float x;
float delta_x=0.001;
float f(float x)
{
return x*x;
}
int main()
{
x=x0;
while(x<=x1)
{
suma+=(f(x)+f(x+delta_x))/2*delta_x;
x+=delta_x;
}
printf("policzona calka %f",suma);
return 1;
}
Chyba sie nigdzie nie pomylilem a jesli tak to prosze o poprawienie.Odpowiednie wspolczynniki szeregu Fouriera to beda odpowiednie calki z danych przebiegow.Nie pamietam szczegolow wiec nie czuje sie na silach zeby przytaczac konkretne wzory.Mozna je znalezc wszedzie.Powodzenia.
Sorki zmienilem kod bo palnalem glupote jesli chodzi o liczenie tej calki

Teraz powinno byc ok.