Cours:Elen4 TNS TP Implementations : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(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)''
<center>
+
par un produit de convolution (fonction <code>conv()</code>) avec la réponse impusionnelle ''h'' du filtre :
H(z) = (1 + 2z<sup>-1</sup> + z<sup>-2</sup>)/4
 
</center>
 
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> * h.
+
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) Tracer le spectre d’amplitude de ''x<sub>1</sub>'', la réponse fréquentielle de ''H'' et le spectre d’amplitude de ''y''.
+
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) 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>''.
+
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

Retour à la page du cours

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.

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