Cours:Elen4 TNS TP Implementations : Différence entre versions
(→Implémentation d'un filtre RII) |
|||
| Ligne 15 : | Ligne 15 : | ||
x<sub>1</sub>(n) = sin(n/10) + b(t) | x<sub>1</sub>(n) = sin(n/10) + b(t) | ||
</center> | </center> | ||
| − | ''b(t)'' étant du bruit | + | ''b(t)'' étant du bruit blanc gaussien (todo : à définir proprement => une possibilité est d'utiliser <code>wgn()</code> en faisant le lien avec le snr) |
| − | |||
Le filtre sera défini par sa fonction de transfert | Le filtre sera défini par sa fonction de transfert | ||
| Ligne 26 : | Ligne 25 : | ||
=== Implémentation hors-ligne === | === Implémentation hors-ligne === | ||
| − | Sous '''Matlab''', Vous travaillerez avec le signal ''x<sub>1</sub>'' crée par le code suivant : | + | (todo : finaliser) Sous '''Matlab''', Vous travaillerez avec le signal ''x<sub>1</sub>'' crée par le code suivant : |
<source lang=matlab> | <source lang=matlab> | ||
N=1:200; | N=1:200; | ||
| Ligne 36 : | Ligne 35 : | ||
Avec le produit de convolution, Il s'agit d'une implémentation hors-ligne dans le domaine temporel. | Avec le produit de convolution, Il s'agit d'une implémentation hors-ligne dans le domaine temporel. | ||
| − | a) Appliquez à ''x<sub>1</sub>'' le filtre RIF dont la fonction de transfert est | + | a) Appliquez à ''x<sub>1</sub>'' le filtre RIF dont la fonction de transfert est ''H(z)'' |
| − | + | par un produit de convolution (fonction <code>conv()</code>) avec la réponse impusionnelle ''h'' du filtre : | |
| − | H(z) | ||
| − | |||
| − | par un produit de convolution (fonction <code>conv</code>) avec la réponse impusionnelle ''h'' du filtre : | ||
<center> | <center> | ||
| − | y<sub>c</sub> = x<sub>1</sub> | + | y<sub>c</sub> = x<sub>1</sub> ∗ h. |
</center> | </center> | ||
| Ligne 56 : | Ligne 52 : | ||
Avec la réponse fréquentielle, il s'agit d'une implémentation hors-ligne dans le domaine fréquentiel. | Avec la réponse fréquentielle, il s'agit d'une implémentation hors-ligne dans le domaine fréquentiel. | ||
| − | a) | + | a) En exploitant le théorème de la convolution (le produit de convolution se transforme en produit simple fréquences à fréquences), filtrer le signal ''x<sub>1</sub>''. |
| + | (todo : ajouter schéma avec TF et TF-1) | ||
| − | b) | + | b) Tracer le spectre d’amplitude de ''x<sub>1</sub>'', la réponse fréquentielle de ''H'' et le spectre d’amplitude de ''y''. |
===== Comparaison des implémentations ===== | ===== Comparaison des implémentations ===== | ||
| Ligne 67 : | Ligne 64 : | ||
b) ainsi qu'une vérification quantifiée en calculant une norme entre les deux signaux ''y''. | b) ainsi qu'une vérification quantifiée en calculant une norme entre les deux signaux ''y''. | ||
| + | (todo : faire le lien avec le snr ici ?) | ||
=== Implémentation en ligne === | === Implémentation en ligne === | ||
Version du 27 février 2023 à 12:23
TP3 : Implémentation des filtres numériques
Le travail de ce TP va consister à filtrer des signaux numériques avec divers filtres (RIF puis RII), en exploitant trois implémentations différentes à partir du produit de convolution, de la reponse fréquentielle et de l'équation aux différences.
Il s’agit d’une page protégée.
Sommaire
Implémentation d'un filtre RII
L'objectif est de filtrer le signal
x1(n) = sin(n/10) + b(t)
b(t) étant du bruit blanc gaussien (todo : à définir proprement => une possibilité est d'utiliser wgn() en faisant le lien avec le snr)
Le filtre sera défini par sa fonction de transfert
| H(z) = |
1 + 2z-1 + z-2 |
| | |
|
4 |
Implémentation hors-ligne
(todo : finaliser) Sous Matlab, Vous travaillerez avec le signal x1 crée par le code suivant :
N=1:200;
X1 = sin(N/10) + rand(size(N))/3;
Avec le produit de convolution
Avec le produit de convolution, Il s'agit d'une implémentation hors-ligne dans le domaine temporel.
a) Appliquez à x1 le filtre RIF dont la fonction de transfert est H(z)
par un produit de convolution (fonction conv()) avec la réponse impusionnelle h du filtre :
yc = x1 ∗ h.
b) Tracer le graphe de l'entrée x1 et de la sortie obtenue :
figure(1)
subplot(211); plot(X1); xlabel(’n’); ylabel(’x1[n]’);
subplot(212); plot(Yc); xlabel(’n’); ylabel(’yc[n] avec conv’);
Avec la réponse fréquentielle
Avec la réponse fréquentielle, il s'agit d'une implémentation hors-ligne dans le domaine fréquentiel.
a) En exploitant le théorème de la convolution (le produit de convolution se transforme en produit simple fréquences à fréquences), filtrer le signal x1. (todo : ajouter schéma avec TF et TF-1)
b) Tracer le spectre d’amplitude de x1, la réponse fréquentielle de H et le spectre d’amplitude de y.
Comparaison des implémentations
Vérifier que le filtrage dans le domaine fréquentiel fourni une sortie identique à celle obtenue avec le produit de convolution. Vous pourrez faire
a) une vérification graphique en affichant les signaux y
b) ainsi qu'une vérification quantifiée en calculant une norme entre les deux signaux y. (todo : faire le lien avec le snr ici ?)
Implémentation en ligne
- à partir du schéma-bloc
- en écrivant du code