MIC 7340 Chapitre 12 Filtres Quatres types fondamentaux














![Transformée Z • La transformée z d’un signal à temps échantillonné quelconque x[n] est Transformée Z • La transformée z d’un signal à temps échantillonné quelconque x[n] est](https://slidetodoc.com/presentation_image_h/7bb32abb9d9dc7115d7c2975dbac3554/image-15.jpg)
![Fonctions de transfert numériques • Si x[n] est l’excitation, h[n] la fonction de réponse Fonctions de transfert numériques • Si x[n] est l’excitation, h[n] la fonction de réponse](https://slidetodoc.com/presentation_image_h/7bb32abb9d9dc7115d7c2975dbac3554/image-16.jpg)




![Propriétés d’un filtre RII • Équation d’e/s : x[n] représente les valeurs successives du Propriétés d’un filtre RII • Équation d’e/s : x[n] représente les valeurs successives du](https://slidetodoc.com/presentation_image_h/7bb32abb9d9dc7115d7c2975dbac3554/image-21.jpg)



















- Slides: 40
MIC 7340 Chapitre 12 Filtres
Quatres types fondamentaux Passe-bas Passe-haut Idéal Réalisable fc fc Passe-bande fc 1 fc 2 Coupe-bande fc 1 fc 2 • Peuvent être réalisés par des moyens analogiques ou numériques • L’analyse de la réponse en fréquence se fait généralement avec la transformée de Fourier, la synthèse part de la transformée de Laplace
Série de Fourier • Permet de représenter tout signal périodique par une combinaison de signaux sinusoïdaux : où
Série et transformée de Fourier • L’égalité sin( ) + j cos( )=e j permet aussi d’écrire : où – Chaque terme se distingue par une amplitude ck et un angle de phase k=k 0 t • Lorsque s(t) n’est pas périodique ou T est infini, on utilise la transformée de Fourier : où – s(t) comprend un nombre infini de composant et F( ) est une fonction continue • La transformée de Fourier est aussi applicable aux fonctions de durée finie ou périodiques; F( ) est alors discontinu • Dans tous les cas, les paires (ck, k) ou F( ) décrivent le spectre de fréquences de s(t)
Transformée de Laplace • Définie par: où et • Peut être vue comme une extension de la transformée de Fourier où j est remplacé par s= + j • L’usage de s au lieu de j permet de rendre compte aussi du comportement transitoire d’un circuit • permet d’étudier la réponse transitoire et j la réponse permanente • Utile pour déterminer la stabilité d’un circuit pour différente conditions d’opération • On passe souvent de la transformée de Fourier à la transformée de Laplace en remp; açant j par s dans l’une ou l’autre • En pratique, la transformée de Fourier est plus facile d’usage
Propriété fondamentale • Les relations s(t) F( ) s(t) F(s) sont bi-univoques • Pour chaque s(t), le F( ) ou F(s) correspondant est unique s’il existe, et vice-versa • Par conséquent l’impact d’un circuit sur un signal s(t) peut se faire de manière équivalente en faisant une analyse dans le temps ou dans l’un des espaces j ou s, dépendant de qui est le plus avantageux
Fonction de transfert • Définie par H(s)=Y(s)/X(s) ou Y(s) et X(s) sont la sortie et l’entrée du circuit étudié • Joue un rôle similaire à celui la fonction de réponse en fréquence, mais dans le domaine de Laplace • Dans tous les cas : • En pratique, on retrouve aussi souvent l’une que l’autre formulation
Moyens de mise en oeuvre des filtres • Filtres numériques : implémentés par microprocesseur, microcontrôleurs, FPGA ou autre moyen numérique • • Le filtre calcule directement la fonction de réponse en fréquence en matériel ou logiciel Filtres analogiques : la mise en œuvre est basée sur des composants analogiques qui réalisent la fonction de réponse en fréquence • Les filtres passifs utilisent uniquement R, L et C et ont un gain inférieurs à 1. • Les filtre analogiques actifs ajoutent des composants actifs (habituellement des amplificateurs operations) pour un gain arbitraire
Filtre analogiques passifs + V I _ + R C 0 d. B -3 d. B . VO Diagramme de Bode _ 1/RC Filtre passe-bas de permier ordre 1 0. 707 0 x 1/RC Diagramme linéaire Réponse en amplitude
Filtre analogiques passifs 0 d. B Vi + _ C R + Bode VO 1/RC _ Filtre passe-haut de premier ordre . 1/RC 1 -3 d. B x. 0. 707 Linéaire 0 1/RC
Filtre analogiques passifs Vi + _ C + L R VO 0 d. B . -3 d. B . Bode _ lo Filtre passe-bande du second-ordre 1 0. 707 0 hi . . lo hi Linéaire
Filtre analogiques passifs Example + Vi _ + R L VO C _ Matlab: Filtre coupe-bande de second-ordre : num = [1 0 300000]; den = [1 3100 300000]; w = 1 : 5 : 10000; Bode(num, den, w) Bode Matlab
Filtre analogiques actifs Filtre passe-bas du 1 er ordre Filtre passe-haut du 1 er ordre Filtre coupe-bande du 2 nd ordre Rappel : Pour un ampli-op inverseur : G=-Zf/Zi Filtre passe-bande du 2 nd ordre
Filtres numériques • Deux types fondamentaux – À réponse impulsionnelle de durée finie (RIF) – À réponse impulsionnelle de durée infinie (RII) • Analysés et conçus à l’aide de la transformée z – Adaptation de la transformée de Laplace aux systèmes à temps échantillonnés avec le changement de variable z = e. Ts – Permet donc de : • Déterminer la réponse d’un filtre numérique à un signal d’entrée • Étudier sa réponse en fréquence • Étudier sa stabilité
Transformée Z • La transformée z d’un signal à temps échantillonné quelconque x[n] est définie par où z = es. Te, s étant la variable de Laplace et Te la période d’échantillonnage ; pour un signal causal k 0=0. • Il existe une relation biunivoque entre le signal et sa transformée z :
Fonctions de transfert numériques • Si x[n] est l’excitation, h[n] la fonction de réponse du filtre á une impulsion et y [n] sa sortie, alors et H( ) est la fonction de transfert du système. • Résultat similaire à ceux trouvés pour les transformée de Fourier et Laplace :
Diagrammes de placement des pôles-zéros et réponse en fréquence Ex. : donne Im cercle unité pôle zéro • L’effet du numérateur et du dénominateur peut être représenté par des vecteurs qui partent de pôles ou zéros et se rejoignent en un point commun sur le cercle unité. • Les rapports d’amplitudes et les angles des vecteurs définissent la réponse en fréquence. -1/3 1 Re
Comparaison entre RII et RIF Stable par défaut u Demande n>> 1 pour une bonne performance u u Peut demander un temps de calcul escessif La gamme dynamique se calcule facilement u Réponse en phase linéaire si filtre causal RII u u u Ne possède pas d’équivalent analogique stable La stabilité dépend de la position des pôles de H(z) Peut donner une performance adéquate pour n=1 ou 2 La gamme dynamique se calcule difficilement u Peut nuire à la performance u Réponse en phase non linéaire en général Effets de quantification et d’arrondi plus prononcés que pour RIF. Possède un équivalent analogique u u
Propriétés d’un filtre RIF • Équation d’e/s :
Réponse en fréquence d’un filtre FIR • La transformée z de est: u La fonction de réponse en fréquence du filtre est obtenue en remplaçant z by ej Te : u La similarité de H( ) avec une série de Fourier suggère une méthode pour trouver h[n] !
Propriétés d’un filtre RII • Équation d’e/s : x[n] représente les valeurs successives du signal d’entrée, ak, bk représentent les coefficients de la fonction de transfert du filtres, y[n] représente les valeurs successives du signal de sortie, N, M représententlesordresdunumérateuretdudénominateur de H(Z) (M est souvent appelé l’ordre du filtre).
Réponse en fréquence d’un filtre RII u La transformée z de est : u La fonction de réponse en fréquence du filtre est obtenue en remplaçant z by ej Te :
Propriétes de la réponse en fréquence numérique u Puisque e-j 2 k = 1, on a : u La réponse en fréquence est périodique avec période 2 /Te dans le cercle de rayon unité. Si on normalise Te à 1, on a
Conception d’un filtre numérique u Cinq étapes requises : 1. 2. 3. 4. 5. u Spécification du filtre Calcul des coefficients. Choix d’une architecture de mise en oeuvre. Simulation (option). Implémentation. Dans la suite, on discute les filtres RII
Étape 1 : spécification du filtre
Étape 2 : calcul des coefficients • Il existe deux approches : – Placement direct des pôles et zeros dans la plan z – Conversion d’un filtre analogique : • Par transformation bilinéaire • En utilisant le principe de l’invariance de la réponse impulsionnelle • Dans le cas de la transformation d’un filtre analogique, on part souvent de l’équation d’un filtre passe bas normalisé que l’on adapte au type désiré (passe haut, passe bande, etc. ) avant la conversion.
Méthode du placement des pôles et zéros • Basée sur le principe que, dans le plan z : – Le placement d’un zéros ~ |z|=1 minimise la fonction de réponse en fréquence du filtre à cet endroit. – Le placement d’un pôle ~ |z|=1 maximise la fonction de réponse en fréquence du filtre à cet endroit. – Pour obtenir un filtre avec des coefficients réels (donc réalisable), il faut que les pôles et zéros soient à valeurs réelles ou qu’ils apparaissent pas paires conjuguées. • Méthode intuitive mais qui demande un réglage fin
Méthode du placement des pôles et zéros • Exemple :
Méthode du placement des pôles et zéros % Conception et simulation d’un filtre par placement de pôles et zéros pole 1 = 0. 5+0. 5 i; % création de deux paires de pôles conjugués pole 2 = 0. 8 +0. 25 i; pole 3 = conj(pole 1); pole 4 = conj(pole 2); poles = [pole 1 pole 2 pole 3 pole 4]; zero 1 = -0. 5 + 0. 8 i; % création de deux paires de zéros conjugués zero 2 = -0. 2 + 0. 9 i; zero 3 = conj(zero 1); zero 4 = conj(zero 2); zeros = [zero 1 zero 2 zero 3 zero 4]; 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 t=[0: 1: 127]; % test avec 128 valeurs d’un sinus corrompu x=sin(2*pi*t/24); x=x+rand(1, 128)-0. 5; y=filter(numz, denz, x); figure(3); plot(t, 500*x, 'b', t, y, 'k'); axis([0 128 -1000]); axis('normal');
Méthode du placement des pôles et zéros
Méthode du placement des pôles et zéros % 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 t=[0: 1: 127]; % test avec 128 valeurs d’un sinus bruité x=sin(2*pi*t/24); x=x+rand(1, 128)-0. 5; y=filter(numz, denz, x); figure(3); plot(t, 500*x, 'b', t, y, 'k'); axis([0 128 -1000]); axis('normal');
Méthode du placement des pôles et zéros
Conversion d’un filtre analogique • Méthode la plus « simple » • Exploite le fait qu’il existe des méthodes établies de conception de filtres analogiques. • Consiste à concevoir un filtre analogique et à le convertir en filtre numérique. • Les deux méthodes les plus utilisés sont : – L’invariance de la réponse impulsionnelle : – La transformation bilinéaire :
Méthode de l’invariance de la réponse impulsionnelle % Conception d’un filtre par la méthode de l’invariance de la réponse impulsionnelle [num, den]=butter(15, 2*pi, 's'); % Filtre Passe Bas de Butterworth dans le domaine s avec N=15, fc=1 Hz [a, p, K] = residue(num, den); % Décomposition en fractions élémentaires par la méthode des résidus : figure(1); plot(p, 'xk'); % digramme des pôles maqués par des x noirs figure(2); freqs(num, den); % réponse en fréquence analogique % dans s donne dans t, ce qui donne dans z : % % Te=0. 05; % fe=20 Hz (=> fc normalisé = 1 Hz/(fe/2) =0. 1) pz=exp(p*Te); % conversion des pôles dans s en des pôles dans z az=-a. *pz; % détermination des coefficients des fractions élémentaires correspondantes K=K*sum(a); % Terme continu [numz, denz] = residue(az, pz, K); % détermination de H(z) à partir des fractions élementaires dans z figure(3); zplane(numz, denz); % digramme des pôles et zéros dans le plan z figure(4); freqz(numz, denz); % réponse en fréquence numérique
Méthode de l’invariance de la réponse impulsionnelle fc= c/2 =1 Hz fc= ( c/2 )fe=1 Hz
Méthode de la transformation bilinéaire u Normalement u On peut donc dériver H(z) de H(s) par la transformation u Cette transformation donne des équations compliquées u La transformation bilinéaire utilise l’approximation d’une surface continue par un ensemble de surfaces trapézoïdales.
Méthode de la transformation bilinéaire y((k-1)Te ) y(t) y(k. Te ) A((k-1)Te ) k-1 u Si k t=k. Te , alors et jouent le même rôle dans les domaines s et z u On peut donc dériver H(z) de H(s) par la transformation
Étape 5 : mise en oeuvre /*IIR. c IIR filter using cascaded Direct Form II. y(n)=S ax(n-k)-by(n-j)*/ /* Void IIR_Isr(void) short a 1 short a 2 short b 0 short b 1 short b 2 { = = = 0 x 0; 0 x 15 f 6; 0 x 257 d; 0 x 4 afd; 0 x 257 d; // coefficients du filtre static short p 1=0, p 2=0; short xn, p 0, y 0; int prod 1, prod 2, prod 3, prod 4, prod 5; // variables persistentes // variables d’e/s // termes intermédiaires xn = input_sample(); pn=xn-((b 0*p 1)>>15)-((b 1*p 2)>>15); yn=((a 0*pn)>>15) + ((a 1*p 1)>>15) + ((a 2*p 2)>>15); p 2 = p 1; p 1 = p 0; output_sample(y 0); // Envoyer le signal au port de sortie sériel } § >>15 non requis si calculs fait en virgule flottante § Noter l’absence de boucles for.
Étape 5 : mise en oeuvre Code c plus rapide void IIR_Isr (void) { short a 1 = 0 x 0; short a 2 = 0 x 15 f 6; short b 0 = 0 x 257 d; short b 1 = 0 x 4 afd; short b 2 = 0 x 257 d; // coefficients du filtre static short p 1=0, p 2=0; short xn, p 0, y 0; int prod 1, prod 2, prod 3, prod 4, prod 5; // variables persistentes // variables d’e/s // termes intermédiaires xn = input_sample(); prod 1 = _mpy(p 2, a 2); prod 2 = _mpy(p 1, a 1); p 0 = xn + (short)((prod 1 + prod 2)>>15); prod 3 = _mpy(p 1, b 1); prod 4 = _mpy(p 2, b 2); prod 5 = _mpy(p 0, b 0); y 0 = (short)((prod 3+prod 4+prod 5)>>15); p 2 = p 1; p 1 = p 0; output_sample(y 0); // Envoyer le signal au port de sortie sériel } >>15 non requis si calculs fait en virgule flottante








































