next up previous contents index
suivant: La transformée de Fourier monter: Transformée de Fourier discrète précédent: Les propriétes   Table des matières   Index

Où interviennent ces sommes ?

  1. Valeur d'un polynôme
    Soit un polynôme P(x) = $ \sum_{{j=0}}^{{N-1}}$cjxj donné par la liste de ces coefficients [c0, c1,..cN-1] complété par des zéros pour que N soit une puissance de 2.
  2. Interpolation trigonométrique
    Soit f une fonction 2$ \pi$-périodique dont on connait les valeurs en xk = 2k$ \pi$/N, f (xk) = f (2k$ \pi$/N) = fk pour k = 0..(N - 1) avec N = 2*m.
    On veut déterminer le polynôme p trigonométrique interpolateur de f aux points 2k$ \pi$/N pour k = 0..(N - 1), sous la forme :
    p(x) = a0/2 + $ \sum_{{n=0}}^{{\frac{N}{2}-1}}$ancos(nx) + bnsin(nx) + 1/2a$\scriptstyle {\frac{{N}}{{2}}}$cos($ {\frac{{Nx}}{{2}}}$)
    on suppose donc b0 = b$\scriptstyle {\frac{{N}}{{2}}}$ = 0 et on choisit cette notation pour simplifier les calculs ultérieurs.
    On a aussi :
    p(x) = 1/2p$\scriptstyle {\frac{{-N}}{{2}}}$exp(- iNx/2) + $ \sum_{{n=\frac{-N}{2}+1}}^{{\frac{N}{2}-1}}$pnexp(inx) + 1/2p$\scriptstyle {\frac{{N}}{{2}}}$exp(iNx/2).
    avec pour k = 0..$ {\frac{{N}}{{2}}}$
    pk = 1/2(ak - ibk)
    p-k = 1/2(ak + ibk)
    comme b$\scriptstyle {\frac{{N}}{{2}}}$ = 0 on a p$\scriptstyle {\frac{{-N}}{{2}}}$ = p$\scriptstyle {\frac{{N}}{{2}}}$
    On veut déterminer les pk pour avoir :
    p(xk) = fk =
    1/2p$\scriptstyle {\frac{{-N}}{{2}}}$exp(- ik$ \pi$) + $ \sum_{{n=\frac{-N}{2}+1}}^{{\frac{N}{2}-1}}$pnexp(in2k$ \pi$/N) + 1/2p$\scriptstyle {\frac{{N}}{{2}}}$exp(ik$ \pi$)
    puisque exp(- ik$ \pi$) = exp(ik$ \pi$) = - 1 et p$\scriptstyle {\frac{{-N}}{{2}}}$ = p$\scriptstyle {\frac{{N}}{{2}}}$ on a
    p(xk) = fk = - p$\scriptstyle {\frac{{-N}}{{2}}}$ + $ \sum_{{n=\frac{-N}{2}+1}}^{{\frac{N}{2}-1}}$pnexp(in2k$ \pi$/N)
    On transforme $ \sum_{{n=\frac{-N}{2}+1}}^{{-1}}$ en posant j = n + N on obtient :
    $ \sum_{{n=\frac{-N}{2}}}^{{-1}}$pnexp(inx) = $ \sum_{{j=\frac{N}{2}}}^{{N-1}}$pj-Nexp(i(j - N)x)
    puisque pour k = 0..(N - 1), exp(i(j - N)xk) = exp(ijxk),
    on a :
    p(xk) = $ \sum_{{j=\frac{N}{2}}}^{{N-1}}$pj-Nexp(ijxk) + $ \sum_{{n=0}}^{{\frac{N}{2}-1}}$pnexp(inxk).
    ou encore :
    p(xk) = $ \sum_{{n=0}}^{{\frac{N}{2}-1}}$pnexp(inxk) + $ \sum_{{n=\frac{N}{2}}}^{{N-1}}$pn-Nexp(inxk).
    On pose :
    pour n = 0..($ {\frac{{N}}{{2}}}$ - 1), qn = pn et
    pour n = $ {\frac{{N}}{{2}}}$..(N - 1), qn = pn-N.
    Donc pour k = 0..(N - 1), p(xk) = $ \sum_{{n=0}}^{{N-1}}$qnexp(inxk) = fk.
    Il suffit donc de résoudre ce système d'inconnues qn.
    On a :
    fk = f (2k$ \pi$/N) = p(xk) = N*FN-1(q) = $ \tt N*ifft(q)$
    soit :
    q = [p0,..p$\scriptstyle {\frac{{N}}{{2}}}$-1, p$\scriptstyle {\frac{{-N}}{{2}}}$,.., p-1] = $ {\frac{{1}}{{N}}}$FN([f0,..f(N-1)]) =
    $ \tt\frac{1}{N}fft([f_0,...f_{(N-1)}])$
    Remarque
    Si la fonction f est réelle on a :
    p-k = $ \overline{p}_{k}^{}$ pour k = 1..($ {\frac{{N}}{{2}}}$ - 1) et p0 et p$\scriptstyle {\frac{{-N}}{{2}}}$ sont réels.
    Donc si la fonction f est réelle on a :
    p(x) = p0 +2*re($ \sum_{{k=0}}^{{\frac{N}{2}-1}}$pkexp(ikx) + 1/2p$\scriptstyle {\frac{{-N}}{{2}}}$*exp(- i$ {\frac{{Nx}}{{2}}}$))
    En résumé :
    pour 0 $ \leq$ n < $ {\frac{{N}}{{2}}}$, pn est le n-ième élément de $ {\frac{{1}}{{N}}}$FN([f0,..f(N-1)]) et,
    pour - $ {\frac{{N}}{{2}}}$ $ \leq$ n < 0, pn est le (n + N)-ième élément de $ {\frac{{1}}{{N}}}$FN([f0,..f(N-1)]).

  3. Série de Fourier
    Soit f une fonction 2$ \pi$-périodique dont on connait les valeurs en xk = 2k$ \pi$/N, f (xk) = f (2k$ \pi$/N) = yk pour k = 0..(N - 1).
    On suppose que sa série de Fourier converge simplement vers f, et on veut connaître les coefficients cn pour - $ {\frac{{N}}{{2}}}$ $ \leq$ n < $ {\frac{{N}}{{2}}}$.
    Il fait donc calculer de façon approchée :
    cn = $ {\frac{{1}}{{2\pi}}}$$ \int_{0}^{{2\pi}}$f (t)exp(- int)dt
    Remarque
    Lorsque la fonction périodique f est égale à sa série de Fourier, on a :
    f (x) = a0/2 + $ \sum_{{k=1}}^{\infty}$akcos(kx) + bksin(kx) avec ck = $\displaystyle {\frac{{a_k-ib_k}}{{2}}}$.

    On calcule l'intégrale donnant cn de manière approchée par la méthode des trapèzes. Ici Romberg ne sert a rien, car le développement d'Euler Mac Laurin a ses coefficients déjà nuls puisque la fonction que l'on intègre est périodique et donc toutes ses dérivées sont égales en 0 et en 2$ \pi$.
    Si cn$\scriptstyle \simeq$ est la valeur approchée de cn obtenue par la méthode des trapèzes, on a pour - $ {\frac{{N}}{{2}}}$ $ \leq$ n < $ {\frac{{N}}{{2}}}$:
    cn$\scriptstyle \simeq$ = $ {\frac{{1}}{{2\pi}}}$$ {\frac{{2\pi}}{{N}}}$$ \sum_{{k=0}}^{{N-1}}$ykexp(- 2ink$ \pi$/N)
    puisque xk = 2k$ \pi$/N et f (xk) = yk on a
    f (xk)exp(- inxk) = ykexp(- 2ink$ \pi$/N) et
    f (0)exp(0) = f (2$ \pi$)exp(- 2inN$ \pi$/N) = y0 = yN
    On a donc :
    [c0$\scriptstyle \simeq$,..c$\scriptstyle {\frac{{N}}{{2}}}$-1$\scriptstyle \simeq$, c$\scriptstyle {\frac{{-N}}{{2}}}$$\scriptstyle \simeq$,..c-1$\scriptstyle \simeq$] = $ {\frac{{1}}{{N}}}$FN([y0, y1...y(N-1)]) car
    si n $ \geq$ 0, on a cn$\scriptstyle \simeq$ = yn et
    si n < 0, on a cn$\scriptstyle \simeq$ = yn+N si $ \omega_{N}^{}$ = exp($ {\frac{{2i\pi}}{{N}}}$), $ \omega_{N}^{n}$ = $ \omega_{N}^{{n+N}}$ puisque $ \omega_{N}^{N}$ = 1

    Propriétés
    On retrouve les coefficients du polynôme interpolateur de f :
    pn = cn$\scriptstyle \simeq$ pour - $ {\frac{{N}}{{2}}}$ $ \leq$ n < $ {\frac{{N}}{{2}}}$.
    Ce qui veut dire que le polynôme trigonométrique $ \sum_{{n=-\frac{N}{2}}}^{{\frac{N}{2}-1}}$cn$\scriptstyle \simeq$exp(inx) interpole f (x) aux points x = 2k$ \pi$/N.
    Donc si f est un polynôme trigonométrique P de degré m $ \leq$ $ {\frac{{N}}{{2}}}$ :
    f (t) = P(t) = $ \sum_{{k=-m}}^{{m-1}}$ckexp(2ik$ \pi$t), le polynôme trigonométrique qui interpole f = P est P lui-même, les coefficients approchés sont exacts ( cn$\scriptstyle \simeq$ = cn).
    On peut, plus généralement calculer l'erreur cn$\scriptstyle \simeq$ - cn.
    On suppose que f est égale à sa série de Fourier, c'est à dire que l'on a :
    f (t) = $ \int_{{m=-\infty}}^{{+\infty}}$cmexp(2i$ \pi$mt) avec $ \sum_{{m=-\infty}}^{{+\infty}}$| cm| < $ \infty$
    On a donc :
    f (xk) = f (2k$ \pi$/N) = yk = $ \sum_{{m=-\infty}}^{{+\infty}}$cm$ \omega_{N}^{{km}}$ et
    cn$\scriptstyle \simeq$ = $ {\frac{{1}}{{N}}}$$ \sum_{{k=0}}^{{N-1}}$yk$ \omega_{N}^{{-kn}}$
    En remplaçant yk on obtient :
    cn$\scriptstyle \simeq$ = $ {\frac{{1}}{{N}}}$$ \sum_{{k=0}}^{{N-1}}$$ \sum_{{m=-\infty}}^{{+\infty}}$cm$ \omega_{N}^{{km}}$$ \omega_{N}^{{-kn}}$
    Or :
    $ \omega_{N}^{{km}}$$ \omega_{N}^{{-kn}}$ = $ \omega_{N}^{{k(m-n)}}$ et
    puisque $ \omega_{N}^{{m-n}}$ est une racine N-ième de l'unité, on a :
    $ \omega_{N}^{{(m-n)N}}$ = 1 et $ \sum_{{k=0}}^{{N-1}}$$ \omega_{N}^{{(m-n)k}}$ = 0.
    Donc :
    si m - n est un multiple de N ( m = n + l . N) on a $ \sum_{{k=0}}^{{N-1}}$$ \omega_{N}^{{k(m-n)}}$ = N et
    sinon $ \sum_{{k=0}}^{{N-1}}$$ \omega_{N}^{{k(m-n)}}$ = 0
    En intervertisant les deux sommes on a :
    cn$\scriptstyle \simeq$ = $ {\frac{{1}}{{N}}}$$ \sum_{{m=-\infty}}^{{+\infty}}$cm$ \sum_{{k=0}}^{{N-1}}$$ \omega_{N}^{{k(m-n)}}$
    cn$\scriptstyle \simeq$ = $ \sum_{{l=-\infty}}^{{+\infty}}$c(n+l . N)
    c'est à dire :
    cn$\scriptstyle \simeq$ = ...cn-2 . N + cn-N + cncn+Ncn+2 . N + .....

    Exemple :
    f(t):=cos(t)+cos(2*t)
    x:=f(2*k*pi/8)$(k=0..7)
    On obtient :
    $ \tt x=\{2,(\sqrt 2)/2,-1,-((\sqrt2)/2),0,-((\sqrt2)/2),-1,(\sqrt2)/2\}$
    fft(x)=[0.0,4.0,4.0,0.0,0.0,0.0,4.0,4.0]
    donc en divisant par N = 8 :
    c0 = 0, c1 = 4.0/8, c2 = 4.0/2, c3 = 0.0,
    c-4 = 0, c-3 = 0, c-2 = 4.0/8, = c-1 = 4.0/8
    donc retrouve bien :
    bk = 0 et ak = c-k + ck vaut 1 si k = 1, 2 et 0 sinon.

  4. Produit de convolution
    Soient deux polynômes P(x) = $ \sum_{{j=0}}^{{n-1}}$ajxj et Q(x) = $ \sum_{{j=0}}^{{m-1}}$bjxj donné par la liste de leurs coefficients a = [a0, a1,..an-1] et b = [b0, b1,..bm-1].
    On veut calculer le produit de ces deux polynômes c'est à dire le produit de convolution de leurs coefficients si on se place dans l'ensemble des suites périodiques de période supérieure ou égale à (n + m) en complétant a (resp b) par m + ? (resp n + ?) zéros (en pratique on choisit ? pour que n + m + ? soit une puissance de 2.
    On alors pour a = [a0, a1,..an-1, 0..0] et b = [b0, b1,..bm-1, 0..0]:
    P(x)Q(x) = $ \sum_{{j=0}}^{{n+m-1}}$(a*b)jxj
    On calcule donc :
    Fn(a), Fn(b), Fn-1(Fn(a) . Fn(b)) et puisque
    nFn(x . y) = Fn(x)*Fn(y)
    Fn(x*y) = Fn(x) . Fn(y)
    on a :
    a*b = Fn-1(Fn(a) . Fn(b))


next up previous contents index
suivant: La transformée de Fourier monter: Transformée de Fourier discrète précédent: Les propriétes   Table des matières   Index
Documentation de giac écrite par Renée De Graeve