Wykład nr 3
Trygonometryczny Szereg Fouriera

Wstęp do szeregu trygonometrycznego Fouriera

Ciągły sygnał okresowy x(t) o okresie T możemy przedstawić za pomocą nieskończonej sumy składowych harmonicznych:
x(t)=((Subscript[a, 0])/2)+(∑_(n=1)^∞)[(Subscript[a, n]) cos(((2 n π)/T)t)+(Subscript[b, n]) sin(((2 n π)/T)t)], przy czym:
(Subscript[a, n]) =(2/T)(∫_(-(T/2))^(T/2))x(t)cos(((2 n π)/T)t) dt   - są współczynnikami widma parzystego, n=0,1,2,3,...
(Subscript[b, n]) =(2/T)(∫_(-(T/2))^(T/2))x(t)sin(((2 n π)/T)t) dt   - są współczynnikami widma nieparzystego, n=1,2,3,...
Często spotykane jest następujące oznaczenie ω=((2  π)/T), gdzie ω nosi nazwę pulsacji lub częstości kołowej, natomiast f=(1/T)nazywamy częstotliwością.

Sygnał okresowy spełniający warunki Dirichleta można przedstawić za pomocą zbieżnego szeregu Fouriera.
Poniżej mamy przykład szeregu trygonometrycznego Fouriera dla funkcji f(x)=x w przedziale <-π,π> ( zatem T=2π), dla n=3 (co nie oznacza trzech wyrazów w rozwinięciu).

FourierTrigSeries[x ,x,3]

Opcje funkcji FourierTrigSeries[]:

Options[FourierTrigSeries]

FourierTrigSeries[x ,x,7,FourierParameters->{1,2 Pi}]
FourierTrigSeries[x ,x,7,FourierParameters->{0,2 Pi}]
FourierTrigSeries[x ,x,7,FourierParameters->{1,1}]
FourierTrigSeries[x ,x,7,FourierParameters->{0,1}]

Poniżej wycinek z dokumentacji Mathematici, stąd parametr b odpowiada za okres podstawowy rozwinięcia b=2π/T, natomiast parametr a za normalizację:

With the setting (RefLink[FourierParameters, paclet:ref/FourierParameters])->{a,b} the following series is returned: ((|(b/π)|)^((1-a)/2))((Subscript[a, 0])/2+(∑_(k=1)^n)(Subscript[a, k]) cos(b k t)+(Subscript[b, k]) sin(b k t)) with (Subscript[a, k])=((|(b/π)|)^((a+1)/2)) (∫_(-π/|b|)^(π/|b|))f(t) cos(b k t)dt and (Subscript[b, k])=((|(b/π)|)^((1+a)/2))(∫_(-π/|b|)^(π/|b|))f(t) sin(b k t)dt.

Plot[Evaluate[FourierTrigSeries[x,x,7]],{x,- 3 Pi,3 Pi}]

f[x_]:=FourierTrigSeries[x,x,7]
Plot[Evaluate[f[t]],{t,-3 Pi,3 Pi}]

f2pi[x_]:=FourierTrigSeries[x ,x,7,FourierParameters->{0,1}]
Plot[Evaluate[f2pi[t]],{t,-3 Pi,3 Pi}]

Opcje funkcji Plot[]:

Options[Plot]

Plot[Evaluate[f[t]],{t,-3 Pi,3 Pi}, Frame-> True, PlotRange-> All, PlotLabel-> "obrazek",AxesOrigin->{0.5,0}, PlotStyle-> Hue[0.3]]

Przykłady: fala piłokształtna, prostokątna, trójkątna

Poniższa animacja przedstawia kolejne przybliżenia funkcji f(x)=x/(2π)- round(x/(2π)). Taki sygnał nazywamy sygnałem piłokształtnym. Funkcja Round[] oznacza najbliższą liczbę całkowitą; sprawdź także Floor[] i Ceiling[].

a=-1; b=1; c=-1; d=1;f1[x_]:=x/(2 Pi)-Round[x/(2 Pi)];
ListAnimate[Table[Plot[Evaluate[FourierTrigSeries[f1[x],x,n]],{x,-3 Pi,3 Pi},PlotRange->{-1,1}],{n,15}]]

Poniższa animacja przedstawia kolejne przybliżenia funkcji okresowej f(x)=1/2 sign(cos(x)). Taki sygnał nazywamy sygnałem prostokątnym.

a=-1; b=1; c=-1; d=1; n=15;f2[x_]:=Sign[Cos[x]]/2
ListAnimate[Table[Plot[Evaluate[FourierTrigSeries[f2[x],x,n]],{x,-3 Pi,3 Pi},PlotRange->{-1,1}],{n,15}]]

Poniższa animacja przedstawia kolejne przybliżenia funkcji okresowej f(x)=-Abs[x/(2π)-Round[x/(2π)]]/π+0.5. Taki sygnał nazywamy sygnałem trójkątnym.

a=-1; b=1; c=-1; d=1; n=15;f3[x_]:=-Abs[x/(2 Pi)-Round[x/(2 Pi)]]+0.5;
ListAnimate[Table[Plot[Evaluate[FourierTrigSeries[f3[x],x,n]],{x,-3 Pi,3 Pi},PlotRange->{-1,1}],{n,15}]]

Widzimy, że w punktach nieciągłości szereg gorzej przybliża funkcję. Jest to tzw. Zjawisko Gibbsa; elektronicy nazywają je zakłóceniami szpilkowatymi.

Przykłady: sygnały parzyste i nieparzyste

Sygnał parzysty ma zawsze widmo parzyste - zatem (Subscript[b, n])=0, natomiast sygnał nieparzysty widmo nieparzyste - (Subscript[a, n])=0.

FourierTrigSeries[x,x,10]

FourierTrigSeries[(x^3),x,10]

FourierTrigSeries[(x^2),x,10]

FourierTrigSeries[Abs[x]+x,x,10]

Zespolony Szereg Fouriera

Wstęp do zespolonego szeregu trygonometrycznego Fouriera

Ciągły sygnał okresowy x(t) o okresie T możemy także przedstawić za pomocą zespolonego szeregu Fouriera:
x(t)=(∑_(n=-∞)^∞)(Subscript[c, n]) (e^(i((2 n π)/T)t)) 
Ze wzorów Eulera: 
cos(x)=(((e^ix)+(e^(-ix)))/2), sin(x)=(((e^ix)-(e^(-ix)))/(2i))
można wyprowadzić zespolone współczynniki widma: 
(Subscript[c, n]) =(1/T)(∫_(-(T/2))^(T/2))x(t)(e^(-i((2 n π)/T)t)) dt   - zespolone współczynniki widma nazywane także amplitudą zespoloną n=...-2,-1,0,1,2...

Needs["FourierSeries`"]
FourierSeries[x,x,3]

Plot[%,{x,-3 π,3 π}]

NFourierSeries[x,x,3]

Chop[%]

Plot[%,{x,-3 π,3 π}]

Relacje pomiędzy współczynnikami rozwinięcia szeregu trygonometrycznego Fouriera i szeregu zespolonego Fouriera:
(Subscript[c, n]) =(((Subscript[a, n])-(Subscript[ib, n]))/2)
(SuperStar[(Subscript[c, -n])=(Subscript[c, n])])
an =(Subscript[c, n])+(Subscript[c, -n])
bn =(Subscript[ic, n])-(Subscript[ic, -n])

Widmo sygnałów okresowych ciągłych

Współczynniki rozwinięcia w zespolony szereg Fouriera są zespolone.

FourierSeries[Abs[x],x,10]
FourierCoefficient[Abs[x],x,5]
FourierCoefficient[Abs[x],x,-6]

f4[x_]:=0.3 Sin[ x]+0.8 Sin[2 x]+0.5 Sin [8 x]
FourierSeries[f4[x],x,10]
Table[FourierCoefficient[f4[x],x,n],{n,1,10}]

W tym przypadku mamy do czynienia z zespolonymi współczynnikami rozwinięcia, zatem rozpatrując widmo należy wziąć pod uwagę jego część rzeczywistą i urojoną.
Na wykresach poniżej został przedstawiony sygnał, oraz moduł, argument, część rzeczywista i urojona współczynników rozwinięcia.

sygnal=Plot[f4[x],{x,- 3 Pi,3Pi},PlotLabel-> "sygnał"];
lista1=Table[Abs[(FourierCoefficient[f4[x],x,n])],{n,-10,10}];
lista2=Table[Arg[(FourierCoefficient[f4[x],x,n])],{n,-10,10}];
lista3=Table[Re[(FourierCoefficient[f4[x],x,n])],{n,-10,10}];
lista4=Table[Im[(FourierCoefficient[f4[x],x,n])],{n,-10,10}];
abswidmo=ListPlot[lista1,PlotLabel-> "|(Subscript[c, n])|", PlotRange-> {-0.1,0.8},Filling->Axis];
argwidmo=ListPlot[lista2,PlotLabel-> "Arg[(Subscript[c, n])]", PlotRange-> {-2,2},Filling->Axis];
rewidmo=ListPlot[lista3,PlotLabel-> "Re[(Subscript[c, n])]", PlotRange-> {-0.8,0.8},Filling->Axis];
imwidmo=ListPlot[lista4,PlotLabel-> "Im[(Subscript[c, n])]", PlotRange-> {-0.8,0.8},Filling->Axis];
GraphicsRow[{sygnal,abswidmo,argwidmo,rewidmo, imwidmo}]

Zatemo widmo sygnału okresowego ciągłego może być zespolone.

Widmo sygnałów okresowych ciągłych parzystych i nieparzystych

Analiza częstotliwościowa umożliwia określenie częstotliwości składowych zawartych w przebiegu czasowym funkcji. Jeżeli funkcja jest ciągła i okresowa, to znając współczynniki rozwiniecia szeregu Fouriera można określić wartości amplitud częstotliwości wchodzących w skład sygnału. Analiza częstotliwościowa bywa również nazywana analizą harmoniczną.

f5[x_]:=0.3 Cos[x]+0.8 Cos[2 x]+0.5 Cos [8 x]
sygnal=Plot[f5[x],{x,- 3 Pi,3Pi},PlotLabel-> "sygnał"];
lista1=Table[Abs[(FourierCoefficient[f5[x],x,n])],{n,-10,10}];
lista2=Table[Arg[(FourierCoefficient[f5[x],x,n])],{n,-10,10}];
lista3=Table[Re[(FourierCoefficient[f5[x],x,n])],{n,-10,10}];
lista4=Table[Im[(FourierCoefficient[f5[x],x,n])],{n,-10,10}];
abswidmo=ListPlot[lista1,PlotLabel-> "|(Subscript[c, n])|", PlotRange-> {-0.1,0.8},Filling->Axis];
argwidmo=ListPlot[lista2,PlotLabel-> "Arg[(Subscript[c, n])]", PlotRange-> {-2,2},Filling->Axis];
rewidmo=ListPlot[lista3,PlotLabel-> "Re[(Subscript[c, n])]", PlotRange-> {-0.8,0.8},Filling->Axis];
imwidmo=ListPlot[lista4,PlotLabel-> "Im[(Subscript[c, n])]", PlotRange-> {-0.8,0.8},Filling->Axis];
GraphicsRow[{sygnal,abswidmo,argwidmo,rewidmo, imwidmo}]

Ćwiczenia na laboratorium

Ćwiczenie nr 6 - 3p.
Dana jest funkcja f(x) = |x| w przedziale x ∈ <-π,π>
Należy:
1. Znaleźć pięć pierwszych wyrazów rozwinięcia tej funkcji w szereg trygonometryczny Fouriera.
2. Wyznaczyć funkcję okresową g(x), taką, że g(x) = f(x) dla x ∈ <-π,π>; i g(x) = g(x + 2 π k), k∈ Z oraz narysować jej wykres.
3. Przygotować animację pokazującą zależność rozwinięcia funkcji g(x) w szereg trygonometryczny Fouriera w zależności od parametru n od 1 do 20.
4. Zapoznać się z dowolną funkcją Mathematici, przedstawić jej zastosowanie i podać trzy przykłady jej zastosowania inne niż w materiałach z wykładu i helpie do Mathematici.

Aby wykonać animację w wyższych wersjach Mathematici użyj ListAnimate np.
ListAnimate[Table[Plot[Evaluate[FourierTrigSeries[x, x, k]], {x, -Pi, Pi}], {k, 20}]]

Pytania na kolokwium

1. Proszę podać wzory na rozwinięcie funkcji w szereg trygonometryczny Fouriera - p.p 
2. Proszę podać wzory na rozwinięcie funkcji w szereg zespolony Fouriera - p.p