Période d'une fonction périodique.

Bonjour à tous.
Je cherche une manière d'écrire un programme évaluant $T>0$ pour une fonction $f$ $T$-périodique ($T>0$ est donc la plus petite période $>0$ de $f$).
L'idéal serait d'obtenir $T$ comme : limite d'une intégrale ($\displaystyle\underset{{x}\rightarrow{+\infty}}\lim\frac 1x\int_0^xf(t)\text{d}t=\frac 1T\int_0^Tf(t)\text{d}t$ est très insuffisant pour déterminer $T$ ...), premier zéro/$extremum$ d'une fonction à inventer, ... J'ai vu aussi apparaître la notion de fonction d'auto-corrélation que je ne connais guère, et qui est très peu documentée d'un point de vue mathématique.
Avez-vous quelques idées (le sujet peut être déplacé en informatique, mais il me semble qu'il peut donner lieu à des résultats/caractérisations mathématiques intéressants ?) ? Merci !

Réponses

  • La transformée de Fourier d'une fonction $T$-périodique est discrète et supportée aux fréquences $\frac{k}{T}$.

    On peut approximer ça en discrétisant $f$ pour obtenir $x(n)$ et en calculant sa transformée de Fourier discrète $X(k)$.

    L'autocorrélation c'est $R(m) = \sum_n x(n) \overline{x(n+m)}$ et sa transformée de Fourier discrète c'est $|X(k)|^2$.
  • Merci reuns...mais je suis trop ignorant dans ce domaine, je n'arrive pas à ''traduire''!!
  • Bonjour Dedekind93.

    Ce que tu cherches est fait très couramment en traitement du signal, aussi bien la transformation du signal par TFR (transformée de Fourier rapide) que la détection des pics. Il y a une abondante littérature sur le sujet. Il me semble qu'on utilise de plus en plus pour la deuxième étape des outils de reconnaissance de forme (traitement d'image, réseaux de neurones).
    Si tu cherches des pistes sur Internet, la TFR est souvent notée FFT (Fast Fourier Transform), et j'ai souligné dans le texte les thèmes pour un moteur de recherche.

    A noter : Tu peux aussi essayer d'inventer une "usine à gaz" logicielle qui marchera pour les premiers exemples auxquels tu as pensé, mais plus pour d'autres. Mais ce n'est pas pour rien qu'on a inventé ces méthodes "lourdes".

    Cordialement.
  • D'accord, merci à tous les deux. Je vais faire mes recherches, mais celles que j'ai déjà faites donnent des résultats et utilisent un vocabulaire/formalisme qui me déroutent un peu. Je vais regarder ça de plus près.
  • La transformée de Fourier (seule) c'est pas forcément facile à exploiter. Si le signal est la somme de $\sin(t\pi/2)$ et $\sin(t\pi/3)$, on a un signal de période $12$ alors que la transformée de Fourier va juste indiquer des pics à 4 et 6, sauf erreur.

    L'auto-corrélation paraît une meilleure piste pour commencer simplement, si on ne veut pas attaquer des algos spécifiques.
  • Effectivement, il y a de petits pics à 4 et 6, mais un bien plus grand à 12. C'est toute la problématique de la détection des pics.

    Cordialement.
  • Il y a un pic à 12 ? Je suis pas un pro de Fourier, mais de ce que j'ai lu la transformée de Fourier d'un sinus c'est uniquement deux indicatrices en plus et moins la période (je parle en module). Par linéarité, je ne vois pas comment un pic en 12 apparaîtrait ?
  • La TF est constituée de 4 Diracs décalés, mais on ne fait pas ici une TF, mais une TFT. Si on échantillonne suffisamment (*), comme il n'y a pas périodicité 4, on n'aura pas vraiment un pic à 4.

    Cordialement.

    (*) bien évidemment, sur plusieurs périodes de 12, donc un intervalle de plusieurs douzaines.
  • La subtilité vient donc de la transformée discrète (la fft c'est juste une accélération algorithmique, on devrait en toute rigueur parler de TFD).
  • Effectivement,

    ce qui change par rapport à l'outil théorique, c'est et la discrétisation, et la finitude de l'intervalle d'étude (on ne traite pas $f$, mais $f\mathbb 1_{[a,b]}$.

    Cordialement.
  • Comme je disais, je pratique pas beaucoup Fourier, mais je suis pas convaincu par ton explication (je n'ai pas testé ceci dit). Le théorème de Nyquist-Shannon nous dit quand même que si on échantillonne à une fréquence (d'au moins) deux fois celle du signal périodique, sur une fenêtre de temps qui tend vers l'infini (échantillonnage qui tend vers l'infini), on retrouve le spectre continu de la transformée de Fourier. Donc si on fait bien les choses (même si peut-être non optimale d'un point de vue calcul par rapport au problème) on n'est pas censé voir du tout de pic à 12 même avec une TFD. Du coup je maintiens mon inquiétude quant à Fourier :-D
  • Je ne suis pas assez calé sur le sujet pour te convaincre, mais tu es en train de dire que le spectre d'un signal périodique pourrait ne pas avoir de pic à la fréquence.
    D'ailleurs, c'est ça qui brouille tout (dans ma tête, au moins) !! Il y a un pic à la fréquence de base 1/12, puis des pics secondaires aux fréquences multiples 1/6, 1/4, 1/3, 5/12, 1/2, 7/12, 2/3, 3/4, 5/6,11/12, 1, ...

    Cordialement.
  • gerard0 a écrit:
    tu es en train de dire que le spectre d'un signal périodique pourrait ne pas avoir de pic à la fréquence.
    C'est tout à fait cela que je dis.

    Est-ce que pour commencer t'es déjà d'accord que la transformée de Fourier (continu) du signal périodique de période $12$ que je propose n'a aucun pic en $f=1/12$ ? Là j'ai simplement appliqué les formules connus sur Fourier. J'ai pu me planter mais je ne vois pas ce pic dont tu parles. La transformée de Fourier du sinus fait apparaître deux pics à + et - la fréquence, j'ai une somme de deux sinus, et j'utilise la linéarité de la TF. Aucun pic à $1/12$ à l'horizon selon moi.

    Pour la transformée de Fourier discrète, le théorème que j'énonce indique qu'effectivement la TFD n'aura pas non plus de pic à $1/12$. En bref, je pense que la transformée de Fourier n'est pas le bon outil pour calculer simplement la période d'un signal.

    PS : dans mes messages précédents j'ai inversé fréquence et période, ça ne change rien au raisonnement.

    PS 2 : je vais finir par faire un script python pour convaincre tout le monde puisque vous n'arrivez pas à me convaincre non plus :-D
  • Je suis d'accord pour ce qui concerne la TF. C'est purement mathématique. Mais le signal limité et échantillonné n'est pas la fonction f, ni la TFD n'est la TF.

    Si ce que tu dis est vrai, inutile d'utiliser la TFR pour détecter des fréquences. C'est bizarre, plein de gens le font !

    Cordialement.
  • skyffer3 : $x(n),n = 0 \ldots N-1$ est $M | N$ périodique ssi $X(k) = 0$ pour $k \not \equiv 0 \,\bmod\, \frac{N}{M}$.

    Dans le monde réel $M$ ne divise pas $N$, donc on multiplie $x(n)$ par une fenêtre de Hanning et on regarder les valeurs de $M$ pour lesquelles $\sum\limits_{k \not \equiv 0\, \bmod\, N/M} |X(k)|^2 \le \epsilon \sum\limits_k |X(k)|^2 $.

    Avec ton exemple en prenant $\epsilon = 1/100$, $N$ suffisamment grand et $F_s$ suffisamment petit on trouve $M \in \{(11,13),(23,25),(35,37),\ldots\}$ et il faut des algorithmes compliqués pour estimer la bonne valeur, mais en gros l'idée c'est que si $\epsilon$ ne décroit pas beaucoup entre $\approx 12$ et $\approx 24$ alors on choisit $M \approx 12$.

    Avec un $\epsilon$ et $F_s$ plus petit et un $N$ plus grand on aurait trouvé de meilleures approximations des multiples de $12$.

    Dans tous les cas $3,4$ sont exclus immédiatement.

    Note que pour calculer $\sum\limits_{k\not \equiv 0\, \bmod\, N/M} |X(k)|^2$ on peut s'amuser à estimer $Y(f) = |X(e^f)|^2$
    alors $\sum\limits_{k \equiv 0\, \bmod\, N/M} |X(k)|^2= Y \ast h(\log M)$ donc une convolution, où $h(f) = \sum_l \delta(f-l \log 2)$

    Il existe les mêmes algorithmes en travaillant sur l'autocorrélation $R(m)= FFT^{-1}[|X(k)|^2]$ et les problèmes se posent en gros dans les mêmes termes.
Connectez-vous ou Inscrivez-vous pour répondre.