9.9 Polynˆ ome trigonom´ etrique de Fourier
357
(pour la preuve, voir [CHQZ06], Chapitre 2).
Remarquer que h
N−1
j=0 f(x j ) n’est rien d’autre que la formule composite du trap` eze pour l’approximation de l’int´ egrale
2π
0
f(x)dx. Cette formule
s’av` ere donc extrˆ emement pr´ ecise quand on l’applique `
a des fonctions p´ eriodiques et r´ eguli` eres.
Les Programmes 76 et 77 proposent une impl´ ementation MATLAB de DFT
et IDFT. Le param` etre d’entr´ ee f est une chaˆ ıne contenant la fonction f ` a
transformer et fc est un vecteur de taille N contenant les valeurs
f k .
Programme 76 - dft : Transformation de Fourier discr` ete
function fc=dft(N,f)
%DFT Transformation de Fourier discr` ete.
% FC=DFT(N,F) calcule les coefficients de la transformation de Fourier
% discr` ete d’une fonction F.
h = 2*pi/N;
x=[0:h:2*pi*(1-1/N)]; fx = eval(f);
wn = exp(-i*h);
for k=0:N-1,
s = 0;
for j=0:N-1
s = s + fx(j+1)*wnˆ((k-N/2)*j);
end
fc (k+1) = s/N;
end
return
Programme 77 - idft : Transformation de Fourier discr` ete inverse
function fv = idft(N,fc)
%IDFT Transformation de Fourier discr` ete inverse.
% FV=IDFT(N,F) calcule les coefficients de la transformation de Fourier
% discr` ete inverse d’une fonction F.
h = 2*pi/N; wn = exp(-i*h);
for k=0:N-1
s = 0;
for j=0:N-1
s = s + fc(j+1)*wnˆ(-k*(j-N/2));
end
fv (k+1) = s;
end
return
357
(pour la preuve, voir [CHQZ06], Chapitre 2).
Remarquer que h
N−1
j=0 f(x j ) n’est rien d’autre que la formule composite du trap` eze pour l’approximation de l’int´ egrale
2π
0
f(x)dx. Cette formule
s’av` ere donc extrˆ emement pr´ ecise quand on l’applique `
a des fonctions p´ eriodiques et r´ eguli` eres.
Les Programmes 76 et 77 proposent une impl´ ementation MATLAB de DFT
et IDFT. Le param` etre d’entr´ ee f est une chaˆ ıne contenant la fonction f ` a
transformer et fc est un vecteur de taille N contenant les valeurs
f k .
Programme 76 - dft : Transformation de Fourier discr` ete
function fc=dft(N,f)
%DFT Transformation de Fourier discr` ete.
% FC=DFT(N,F) calcule les coefficients de la transformation de Fourier
% discr` ete d’une fonction F.
h = 2*pi/N;
x=[0:h:2*pi*(1-1/N)]; fx = eval(f);
wn = exp(-i*h);
for k=0:N-1,
s = 0;
for j=0:N-1
s = s + fx(j+1)*wnˆ((k-N/2)*j);
end
fc (k+1) = s/N;
end
return
Programme 77 - idft : Transformation de Fourier discr` ete inverse
function fv = idft(N,fc)
%IDFT Transformation de Fourier discr` ete inverse.
% FV=IDFT(N,F) calcule les coefficients de la transformation de Fourier
% discr` ete inverse d’une fonction F.
h = 2*pi/N; wn = exp(-i*h);
for k=0:N-1
s = 0;
for j=0:N-1
s = s + fc(j+1)*wnˆ(-k*(j-N/2));
end
fv (k+1) = s;
end
return
