Centre Universitaire Nour Bachir –El-Bayadh
Institut : Sciences
Département : Technologie
Filière: Electronique
Spécialité : Electronique des systèmes embarqués
Matière : Traitement avancé du signal
TP2 : Synthèse et application des filtres RII
1. Les filtres numériques RII
Les filtres numériques à réponse impulsionnelle infinie sont des systèmes linéaires
discrets invariants dans le temps dont le fonctionnement est régi par une équation de
convolution portant sur une infinité de termes. En principe, ils conservent une trace des
signaux qui leur ont été appliqués pendant une durée infinie, ils sont à mémoire infinie.
Une telle mémoire est réalisée par une boucle de réaction de la sortie sur l’entrée, d’où la
dénomination courante de filtre récursif. Chaque élément de la suite des nombres de sortie
est calculé par sommation pondérée d’un certain nombre d’éléments de la suite d’entrée et
d’un certain nombre d’éléments de la suite de sortie précédents.
2. Méthode du placement des pôles et zéros
• Exemple :
1
Programme Matlab
% Conception et simulation d’un filtre par placement de pôles et zéros
pole1 = 0.5+0.5i; % création de deux paires de pôles conjugués
pole2 = 0.8 +0.25i;
pole3 = conj(pole1); pole4 = conj(pole2);
poles = [pole1 pole2 pole3 pole4];
zero1 = -0.5 + 0.8i; % création de deux paires de zéros conjugués
zero2 = -0.2 + 0.9i;
zero3 = conj(zero1); zero4 = conj(zero2);
zeros = [zero1 zero2 zero3 zero4];
denz=poly(poles); % conversion des pôles en dénominateur de H(z)
numz=poly(zeros); % numérateur de H(z) = 1
zplane(numz, denz); % affichage des pôles et zéros
figure(2); freqz(numz,denz,256); % affichage de la réponse en fréquence
Travail demandé :
1. Réécrire le code Matlab dans un fichier *.m.
2. Donnez les valeurs des pôles et zéros ?
3. Afficher les différents résultats ? Commenter-les ?
4. Appliquer ce filtre sur une sinusoïde d’amplitude 3, de fréquences 500Hz. Utiliser la
commande filter. Remarque.
5. Ajouter du bruit avec l’instruction rand sur le signal précédent. Appliquez le filtre sur
le nouveau signal. Conclusions
6. Créer un signal constitué de deux sinusoïdes respectivement d’amplitudes 3 et 2, de
fréquences 500Hz et 800Hz. Ajouter du bruit avec l’instruction rand. Appliquez sur ce
signal le filtre obtenu, en utilisant l’instruction filter, discuter les résultats obtenus.
7. Changer les valeurs des pôles et des zéros du filtre tel qu’il soit instable. Appliquer le
nouveau filtre sur le signal de la question 5. Remarques ?
3. Méthode des coordonnées polaires
Programme Matlab
% Autre exemple en utilisant des coordonnées polaires
angl=[0.2: 0.1: 0.5]*pi/2; % création de 4 paires conjuguées de pôles
poles=0.85*exp(j*angl);
poles=[poles 0.85*exp(-j*angl)];
denz=poly(poles) % conversion des pôles en dénominateur de H(z)
numz=[1]; % numérateur de H(z) = 1
zplane(numz, denz); % affichage des pôles et zéros
figure(2); freqz(numz,denz,256); % affichage de la réponse en fréquence
2
Travail demandé :
1. Réécrire le code Matlab dans un fichier *.m.
2. Donnez les valeurs des pôles et zéros ainsi que les coordonnées polaires.
3. Afficher les différents résultats ? Commenter-les ?
4. Appliquer ce filtre sur une sinusoïde d’amplitude 3, de fréquences 500Hz. Utiliser la
commande filter. Remarque.
5. Ajouter du bruit avec l’instruction rand sur le signal précédent. Appliquez le filtre sur
le nouveau signal. Conclusions.
6. Créer un signal constitué de deux sinusoïdes respectivement d’amplitudes 3 et 2, de
fréquences 500Hz et 800Hz. Ajouter du bruit avec l’instruction rand. Appliquez sur ce
signal le filtre obtenu, en utilisant l’instruction filter, discuter les résultats obtenus.
7. Changer les valeurs des pôles et des zéros du filtre tel qu’il soit instable. Appliquer le
nouveau filtre sur le signal de la question 5. Remarques ?
4. Méthode supplémentaire
Soit le filtre suivant :
y(n) = 0,1 x(n) + 0,9 y(n-1).
1. Donnez la fonction de transfert en Z de ce filtre ? De quel filtre s’agit-il ?
2. Créer un code Matlab du filtre ci-dessus à l’aide de la fonction tf.
3. Compléter le script Matlab on rependant en question suivante :
Calculer sa réponse impulsionnelle grâce à la commande impulse.
Calculer sa réponse indicielle (à une entrée échelon). Utiliser la commande step.
Calculer sa réponse harmonique (ou fréquentielle) à l’aide de la commande bode
(attention elle est en rad/s). Voir aussi la fonction freqz() (en Hz).
4. Commenter les différents résultats obtenues ?
5. Appliquer ce filtre sur une sinusoïde d’amplitude 3, de fréquences 500Hz. Utiliser la
commande filter. Remarques.
6. Ajouter du bruit avec l’instruction rand sur le signal précédent. Appliquez le filtre sur
le nouveau signal. Conclusions.
7. Créer un signal constitué de deux sinusoïdes respectivement d’amplitudes 3 et 2, de
fréquences 500Hz et 800Hz. Ajouter du bruit avec l’instruction rand. Appliquez sur ce
signal le filtre obtenu, en utilisant l’instruction filter. Discuter les résultats obtenus.
3
Travail supplémentaire :
Proposez un programme Matlab pour un filtre de type RII par la conversion d’un filtre
analogique (utiliser la transformation bilinéaire).
Travail à faire pour le 3ème et 4ème TP :
TP3 : Proposé un programme Matlab permettant de faire une Analyse spectrale paramétrique
AR et/ou ARMA de signaux sonores (exemple de signaux non- stationnaires).
TP4 : Proposé un programme Matlab permettant l’Elimination d’une interférence 50Hz par
l’algorithme du gradient LM.