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
- 16 autres exercices corrigés dans ce chapitre, et 13 à chercher avec le tuteur
- Les 2 QCM du chapitre, le premier sans compte
- Le podcast et la vidéo du chapitre et la correction filmée du TD : 2 minutes sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
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.