Adloun

traitement du signal et logique (MPI) · Chapitre 2 · Application directe du cours

Séparer deux raies par le calcul : durée d'acquisition et zéros ajoutés

Électronique numérique : échantillonnage et filtrage · niveau 2

Énoncé

(MPI) Deux diapasons, l'un à , l'autre à , sonnent ensemble devant un microphone, qui délivre (unités arbitraires) ; on entend des battements de période , un tiers de seconde. Une carte d'acquisition échantillonne à . On calcule la TFD par numpy.fft.rfft : pour un tableau x de réels, rfft(x) renvoie les complexes , la case correspondant à la fréquence ; de plus, numpy.fft.rfft(x, n=M), avec , complète les échantillons par zéros avant le calcul.

  • On acquiert pendant . Donner et l'écart entre cases ; calculer entre et . Combien de raies voit-on ?
  • Même question pour une acquisition de .
  • On reprend l'acquisition de , complétée par des zéros jusqu'à points. Quel est le nouvel écart entre cases ? Les deux raies sont-elles séparées ?
  • Même démarche pour une acquisition de , sans puis avec zéros. Conclure : qu'est-ce qui fixe la possibilité de séparer deux raies ?

Corrigé

Le programme, pour une durée T et un nombre de points de calcul M :


import numpy as np
fe = 5000.0
def spectre(T, M=None):
    N = int(round(T*fe))
    t = np.arange(N) / fe
    x = np.cos(2*np.pi*440*t) + np.cos(2*np.pi*443*t)
    M = M or N
    X = np.fft.rfft(x, n=M)
    f = np.fft.rfftfreq(M, 1/fe)
    return f, 2*np.abs(X)/N    # division par N, pas par M

1. , cases espacées de . Les cases voisines valent à et à , puis et de part et d'autre : une seule raie, large. L'écart de est plus petit que la résolution de , et ne tombe pas sur une case ( périodes dans la fenêtre) : sa fuite se mêle à la case de .

2. , cases espacées de : deux raies nettes, d'amplitude , à et , et des zéros partout ailleurs. La fenêtre d'une seconde contient et périodes entières : aucune fuite.

3. Avec , les cases sont espacées de et la courbe est lisse ; mais elle ne présente qu'un seul maximum, à , entre deux lobes secondaires (à et , hauteur ). Les zéros ont interpolé le spectre de la fenêtre de ; ils n'ont rien ajouté à ce que contiennent les échantillons. La largeur de la raie, environ entre ses premiers zéros, est celle de la fenêtre, et elle engloutit l'écart de .

4. Pour , , cases espacées de : à , puis à et à . La lecture brute est ambiguë, car ( périodes) tombe entre deux cases. Complétée par des zéros jusqu'à , la courbe montre deux maxima, à et (hauteur ), séparés par un creux à : cette fois les zéros ont rendu lisible une séparation que les échantillons contenaient (figure).

{ Bâtons : cases de la TFD brute ; trait fin : TFD complétée par des zéros () ; tirets : et .}

Conclusion. Ce qui sépare deux raies distantes de , c'est la durée d'acquisition : il faut , ici un tiers de seconde, et pour être à l'abri. À la limite , le résultat dépend de la phase relative des deux sons au début de l'acquisition : en phase, deux maxima (à et ) ; en opposition, un seul (à ). Ce temps est aussi la période des battements : pour distinguer deux fréquences, il faut écouter au moins un battement. Les zéros ajoutés n'améliorent jamais la résolution ; ils affinent le tracé et aident à pointer un sommet.

Ce que l'exercice installe : la résolution d'une TFD est et ne se gagne qu'en acquérant plus longtemps ; compléter par des zéros interpole sans séparer ; les amplitudes se normalisent par le nombre d'échantillons réels.

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours, le premier QCM et 2 minutes de podcast et de vidéo. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →