clear // // paramètres de l’acquisition // nombre de points, fréquence du signal, amplitude, fréquence d’échantillonnage N=32; Fx=26e3 ; A=1 ; Fe=64e3 ; // // paramètre de l’échelle analogique : nombre de points Na=1024 ; // // définition du vecteur temps et du vecteur fréquence normalisé à N ta=N/(Na*Fe)*(0 :Na-1) ; ; k=N/Na*(0 : Na-1) ; // // définition du signal temporel sa= A*exp(2*%i*%pi*Fx*ta) ; // // échelle des temps et fréquence numérique tn=1/Fe*(0:N-1) ; fn=(0 :N-1) ; // // échantillonnage du signal temporel, calcul de la fft sn=A*exp(2*%i*%pi*Fx*tn) ; Sf=abs(fft(sn,-1)); // // expression théorique de la DFT d’une exponentielle x=k/N-Fx/Fe; S= A*sin(N*x*%pi) . / (sin(x*%pi)+(x==0)) + (x==0)*N; S2=dft(sn,-1); // // précision sur l’échelle des fréquences des points affichables pts=zeros(1, N) ; // // affichage xset("window", 0) ; clf(0) ; xset ("font size", 4) ; xsetech([ 0, 0, 1, 1/2]);//sous-fenêtre est définie par wrect=[x,y,w,h] ici haut gauche + pleine largeur et 1/2 hauteur => demi-fenetre haute plot2d(ta, real(sa), rect=[0, -1.1*A, N/Fe, 1.1*A], style=0) ; // Les échelles sont fixées par rect =[xmin,ymin,xmax,ymax] plot2d3(tn,real(sn)) ; xtitle("signal analogique et échantillons temporels" ,"temps(s)", "amplitude (V)") ; xsetech([ 0, 1/2, 1, 1/2]) ; //plot2d(k, abs(S), style=0, rect=[0, 0, N, 1.1*A*N]) ; //plot2d(k, abs(S2), style=3, rect=[0, 0, N, 1.1*A*N]) ; plot2d(fn, abs(S2), style=0, rect=[0, 0, N, 1.1*A*N]) ; plot2d3(fn, Sf) ; plot2d(fn, pts, style=-3) ; xtitle("transformée de Fourier théorique et calculée","rang", "amplitude(V.s)") ;