Les coefficients de Fourier d'un signal créneau sont :
La série de Fourier s'écrit :
Les coefficients de Fourier sont définis par une fonction :
cnCreneau[n_]:=-I/(n*Pi)*(1-(-1)^n);
La fonction suivante affiche le spectre (module de ) en décibel :
plotSpectre[cn_, nmax_] := Module[{spectre}, spectre = Table[Line[{{n, -80}, {n,20*Log[10,Abs[cn[n]]+10^(-4)]}}], {n, 1, nmax}]; Return[Graphics[{RGBColor[1, 0, 0],spectre},Frame->True,AspectRatio->0.7, PlotRange -> {{0, nmax},{-80,0}}, FrameLabel -> {"n", "20*log(|cn|)"}]]; ]
Show[plotSpectre[cnCreneau,50]]plot1.pdf
Fonction de calcul de la somme partielle de la série de Fourier (période 1) :
serie[cn_,nmax_,t_]:=Sum[2*Re[cn[n]*Exp[I*2*Pi*n*t]],{n,1,nmax}];
Somme partielle à N=20 :
Plot[serie[cnCreneau,20,t],{t,0,1},AxesLabel->{"t","u"}]plot2.pdf
Somme partielle à N=100 :
Plot[serie[cnCreneau,100,t],{t,0,1},AxesLabel->{"t","u"}]plot3.pdf
La fonction de transfert d'un filtre passe-bas du premier ordre est :
où est la fréquence de coupure.
Considérons le cas où . On définit la fonction de transfert puis on calcule les nouveaux coefficients de Fourier, en remarquant que l'indice n correspond à la fréquence :
h[f_]:=1/(1+I*f/10); cnSortie[n_]:=cnCreneau[n]*h[n];
Voici le nouveau spectre
Show[plotSpectre[cnSortie,50]]plot4.pdf
et la somme partielle pour N=100
Plot[serie[cnSortie,100,t],{t,0,1},AxesLabel->{"t","u"}]plot5.pdf
Dans le cas , les harmoniques du créneau sont toutes dans le domaine intégrateur du filtre :
h[f_]:=1/(1+I*f/0.1); cnSortie[n_]:=cnCreneau[n]*h[n];
Plot[serie[cnSortie,100,t],{t,0,1},AxesLabel->{"t","u"}]plot6.pdf