* The preview only shows a few pages of manuals at random. You can get the complete content by filling out the form below.
The preview is currently being created... Please pause for a moment!
Description
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.