électricité (PTSI) · Chapitre 6 · Exercice de TD
Fabriquer une sinusoïde à partir d'un créneau (capacité numérique)
Filtrage linéaire · D. Action d'un filtre sur un signal · niveau 3 (difficile)
Énoncé
Un générateur ne délivre qu'un créneau symétrique de fréquence , d'amplitude , dont la décomposition est fournie : . On veut en tirer une sinusoïde à l'aide d'un filtre passe-bande d'ordre 2 de fréquence centrale et de facteur de qualité : On mesure la pureté de la sortie par son taux de distorsion harmonique , où est l'amplitude de la raie en sortie et la raie que l'on veut garder.
1) Avant tout calcul : pourquoi un filtre linéaire ne peut-il que modifier l'amplitude et la phase des raies du créneau ? Que vaut le THD du créneau lui-même ?
2) Écrire un script Python qui, pour et donnés, calcule le gain et la phase sur chaque harmonique (), affiche le THD et l'amplitude de la raie gardée, et trace l'entrée et la sortie sur deux périodes.
3) : THD pour , , , . Quel assure un THD de 1 % ? Expliquer la loi observée.
4) (on veut une sinusoïde à ) : mêmes calculs. Pourquoi faut-il un dix fois plus grand ? Quelle raie domine le résidu ?
5) Quelle est l'amplitude de la sinusoïde obtenue dans chaque cas, et sa phase ? Comparer, pour , avec un passe-bas d'ordre 1 de coupure (une ligne du script à changer). Conclure sur le choix du modèle de filtre.
Corrigé
1) Ce que la linéarité permet et interdit. Le créneau est une somme de sinusoïdes ; un filtre linéaire transforme chacune en une sinusoïde de même fréquence, multipliée par et déphasée de , et la sortie est la somme de ces sorties. Il ne crée donc aucune raie, et il ne peut pas en supprimer une exactement (sauf si s'annule pile à sa fréquence) : il ne fait que changer les proportions.
Le THD du créneau : , donc . C'est le complément des 81 % de l'exercice 1 : .
2) Le script. Il applique exactement la méthode du cours : spectre fourni, gain et phase raie par raie, somme.
import numpy as np
import matplotlib.pyplot as plt
f0 = 1000.0 # frequence du creneau (Hz)
n = np.arange(1, 2000, 2) # harmoniques impaires, n <= 1999
A = 4 / (np.pi * n) # spectre FOURNI du creneau
def passe_bande(f, fr, Q):
return 1 / (1 + 1j * Q * (f / fr - fr / f))
def filtrer(fr, Q, H=passe_bande):
Hn = H(n * f0, fr, Q) # gain et phase, raie par raie
B = A * np.abs(Hn) # amplitudes de sortie
k = (n == round(fr / f0)) # la raie que l'on garde
thd = np.sqrt(np.sum(B[~k]**2)) / B[k][0]
return thd, B[k][0], np.degrees(np.angle(Hn[k][0])), Hn
def tracer(fr, Q):
t = np.linspace(0, 2 / f0, 2000)
Hn = filtrer(fr, Q)[3]
w = 2 * np.pi * n[:, None] * f0 * t
e = np.sum(A[:, None] * np.sin(w), axis=0)
s = np.sum((A * abs(Hn))[:, None]
* np.sin(w + np.angle(Hn)[:, None]), axis=0)
plt.plot(t * 1e3, e, t * 1e3, s); plt.xlabel("t (ms)")
plt.show()
print("THD du creneau :", np.sqrt(np.sum(A[1:]**2)) / A[0])
for fr in (f0, 3 * f0):
for Q in (1, 3, 10, 30):
thd, a, phi, _ = filtrer(fr, Q)
print(f"fr={fr:.0f} Hz Q={Q:>2} : THD={100*thd:6.2f} %"
f" amplitude={a:.3f} phase={phi:+.1f} deg")
Q = 1.0
while filtrer(fr, Q)[0] > 0.01:
Q += 0.1
print(f"fr={fr:.0f} Hz : THD = 1 % pour Q = {Q:.1f}")
pb = lambda f, fr, Q: 1 / (1 + 1j * f / fr) # passe-bas, fc = f0
thd, a, phi, _ = filtrer(f0, None, H=pb)
print(f"passe-bas ordre 1 : THD={100*thd:.1f} %"
f" amplitude={a:.3f} phase={phi:+.0f} deg")
tracer(f0, 10)
Résultat obtenu en l'exécutant :
THD du creneau : 0.48316720724507284
fr=1000 Hz Q= 1 : THD= 12.69 % amplitude=1.273 phase=+0.0 deg
fr=1000 Hz Q= 3 : THD= 4.46 % amplitude=1.273 phase=+0.0 deg
fr=1000 Hz Q=10 : THD= 1.35 % amplitude=1.273 phase=+0.0 deg
fr=1000 Hz Q=30 : THD= 0.45 % amplitude=1.273 phase=+0.0 deg
fr=1000 Hz : THD = 1 % pour Q = 13.5
fr=3000 Hz Q= 1 : THD=115.99 % amplitude=0.424 phase=+0.0 deg
fr=3000 Hz Q= 3 : THD= 42.34 % amplitude=0.424 phase=+0.0 deg
fr=3000 Hz Q=10 : THD= 12.88 % amplitude=0.424 phase=+0.0 deg
fr=3000 Hz Q=30 : THD= 4.30 % amplitude=0.424 phase=+0.0 deg
fr=3000 Hz : THD = 1 % pour Q = 129.0
passe-bas ordre 1 : THD=16.4 % amplitude=0.900 phase=-45 deg
(Spectre tronqué à , d'où au lieu de .) Le tracé montre, pour , une sortie qu'on ne distingue pas à l'œil d'une sinusoïde, d'amplitude , superposée au créneau.
3) Centré sur le fondamental. Le THD passe de à quand passe de à : il est inversement proportionnel à , et 1 % est atteint pour . L'explication. Pour la raie et grand, et . La raie de sortie vaut donc , et ce qui donne bien pour 1 %.
4) Centré sur l'harmonique 3. Pour un même , le THD est environ dix fois plus grand ( pour , pour ), et il faut pour atteindre 1 %. Deux raisons s'ajoutent. La raie qu'on veut garder est trois fois plus faible que le fondamental ( contre ). Et le fondamental, qu'il faut maintenant éliminer, n'est qu'à un facteur trois en fréquence sous : . Le résidu est dominé par le fondamental : pour , il ressort à , deux fois plus que la raie 5 (). Extraire une harmonique est bien plus difficile qu'extraire le fondamental.
5) Amplitude, phase, et choix du modèle. À , exactement : le passe-bande transmet la raie gardée sans l'atténuer ni la déphaser (amplitude pour le fondamental, pour l'harmonique 3). Le passe-bas d'ordre 1 de coupure , lui, donne un THD de , moins bon que le passe-bande avec , et il atténue de (amplitude ) et déphase de la raie qu'on veut garder. Pour isoler une raie, le bon modèle est le passe-bande : il atténue des deux côtés et sa sélectivité se règle par . Le passe-bas ne sait qu'atténuer d'un côté, avec une pente douce.
Ce que l'exercice installe. La capacité numérique du programme : simuler l'action d'un filtre sur un signal périodique de spectre donné, raie par raie, et étudier l'influence d'un paramètre du filtre. Et deux lois à retenir : la distorsion résiduelle décroît comme ; on ne crée pas une sinusoïde, on rend les autres raies négligeables.
100 % gratuit
La suite du chapitre est sur Adloun
- 16 autres exercices corrigés dans ce chapitre, et 9 à 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.