montage de spécialité: filtres numériques: synthèse et...

18
Montage de spécialité: Filtres numériques: Synthèse et caractérisation Nicolas Dandrimont - Mathieu Richard Février 2010 Table des matières 1 Principe et intérêt du filtrage numérique 2 1.1 Principe ................................ 2 1.2 Comparaison avec les filtres analogiques .............. 3 1.3 Familles de filtres numériques .................... 3 1.4 Cahier des charges .......................... 3 2 Méthodes de synthèse de filtres à Réponse Impulsionnelle Finie 4 2.1 Méthode des fenêtres ......................... 4 2.2 Méthode de discrétisation de la réponse en fréquence ....... 6 3 Méthodes de synthèse de filtres à Réponse Impulsionnelle Infi- nie 7 3.1 Méthode de l’invariant impulsionnel ................ 7 3.2 Transformée Bilinéaire ........................ 9 A setup_filnum.m 11 B methode_fenetres.m 12 C fenetre.m 13 D invariant_impulsionnel.m 14 E transformee_bilineaire.m 16 F script_dspace.m 18 Résumé Ce montage porte sur les filtres numériques, éléments clés pour le fil- trage moderne. Après en avoir fait une description succinte, et avoir dé- taillé les différentes structures utilisées, l’étude portera sur trois méthodes de synthèse de filtres numériques à partir d’un gabarit analogique. 1

Upload: others

Post on 29-Dec-2019

5 views

Category:

Documents


0 download

TRANSCRIPT

  • Montage de spécialité: Filtres numériques:Synthèse et caractérisation

    Nicolas Dandrimont - Mathieu Richard

    Février 2010

    Table des matières1 Principe et intérêt du filtrage numérique 2

    1.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Comparaison avec les filtres analogiques . . . . . . . . . . . . . . 31.3 Familles de filtres numériques . . . . . . . . . . . . . . . . . . . . 31.4 Cahier des charges . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    2 Méthodes de synthèse de filtres à Réponse Impulsionnelle Finie 42.1 Méthode des fenêtres . . . . . . . . . . . . . . . . . . . . . . . . . 42.2 Méthode de discrétisation de la réponse en fréquence . . . . . . . 6

    3 Méthodes de synthèse de filtres à Réponse Impulsionnelle Infi-nie 73.1 Méthode de l’invariant impulsionnel . . . . . . . . . . . . . . . . 73.2 Transformée Bilinéaire . . . . . . . . . . . . . . . . . . . . . . . . 9

    A setup_filnum.m 11

    B methode_fenetres.m 12

    C fenetre.m 13

    D invariant_impulsionnel.m 14

    E transformee_bilineaire.m 16

    F script_dspace.m 18

    RésuméCe montage porte sur les filtres numériques, éléments clés pour le fil-

    trage moderne. Après en avoir fait une description succinte, et avoir dé-taillé les différentes structures utilisées, l’étude portera sur trois méthodesde synthèse de filtres numériques à partir d’un gabarit analogique.

    1

  • 1 Principe et intérêt du filtrage numérique1.1 Principe

    Le filtre numérique est en fait un algorithme effectuant une opération (typi-quement appliquant une équation de récurrence) sur son entrée à une fréquencedonnée.

    Afin d’interfacer cet algorithme à un système physique, il nous faut convertirles données de l’analogique vers le numérique à l’entrée, et dans l’autre sens àla sortie.

    Le filtre numérique complet est présenté en figure 1

    e(t)CAN

    e[n]Algorithme

    s[n]CNA

    s(t)

    horloge TeFiltre Numérique

    Figure 1 – Filtre numérique : schéma de principe

    L’étude dans ce montage portera uniquement sur la conception de l’algo-rithme. Nous ne nous préoccuperons donc pas des problèmes dûs à l’échantillon-nage de notre signal d’entrée (repliement de spectre, gigue, résolution finie), etau blocage de notre signal de sortie. Nous choisissons une fréquence d’échan-tillonnage fixe fe = 10kHz , et nous travaillons dans les conditions de Shannon,c’est à dire avec des signaux de fréquence fsignal ≤ 5kHz .

    Pour prédéterminer le filtre numérique, et son équation de récurrence, noustravaillons avec la transformée en z des signaux numériques considérés.

    Pour un signal x[n], la transformée en z s’écrit :

    X(z) =+∞∑

    n=−∞x[n]e−nz (1)

    Si notre algorithme, forcément causal, a une équation de récurrence quis’écrit :

    s[n] =N∑k=0

    αke[n− k] +M∑k=1

    βks[n− k], (2)

    alors la fonction de transfert en z de l’algorithme s’écrit :

    H(z) = S(z)E(z) =

    α0 + α1z−1 + · · ·+ αNz−N

    1− β1z−1 − · · · − βMz−M(3)

    2

  • 1.2 Comparaison avec les filtres analogiquesLes filtres numériques permettent une plus grande flexibilité que les filtres

    analogiques sur leur réalisation. En effet, ces filtres peuvent être reprogrammésin-situ si le concepteur le choisit, ce qui est beaucoup plus difficile avec des filtresanalogiques.

    L’inconvénient des filtres numériques est qu’ils sont échantillonnés. Leur syn-thèse est donc dépendante de la fréquence d’échantillonage, et leur fonctionne-ment correct se limite à la bande de fréquences de Shannon. Ils ne sont doncpas adaptés à des applications hautes fréquences (supérieures à une centaine deMHz, fréquence de fonctionnement de certains circuits à grilles programmables).

    1.3 Familles de filtres numériquesLes filtres numériques peuvent être classés en deux grandes familles, dispo-

    sant respectivement d’avantages et d’inconvénients qui seront discutés par lasuite.

    La première famille, dite des filtres à Réponse impulsionnelle finie, rassembleles filtres non récursifs, c’est à dire les filtres dont l’équation de récurrence,donnée en équation 2, voit ses coefficients β nuls. La réponse de ce filtre à uneimpulsion d’un échantillon est alors finie, avec les coefficients de l’équation derécurrence donnés directement par la sortie du filtre.

    La seconde famille, celle des filtres à Réponse impulsionnelle infinie, ras-semble les filtres récursifs. Ces filtres sont généralement d’ordre plus faible queles filtres à RIF, mais présentent certains inconvénients, notamment sur la sta-bilité des filtres qui n’est pas assurée.

    1.4 Cahier des chargesAfin de rendre plus concret l’objectif du montage, nous décidons de synthéti-

    ser un filtres passe-bas, de fréquence de coupure fc = 1kHz, avec une atténuationmaximale Amax = 1dB dans la bande passante. La bande atténuée, à partir defa = 3kHz, doit être d’au moins Amin = 10dB.

    fG(f)

    −Amax

    fa

    −Amin

    fc

    Figure 2 – Filtre passe-bas : gabarit en gain

    3

  • 2 Méthodes de synthèse de filtres à Réponse Im-pulsionnelle Finie

    Deux méthodes s’offrent à nous pour synthétiser des filtres à RIF. Ces mé-thodes s’appuient sur la reproduction des réponses impulsionnelles de différentsfiltres analogiques correspondant au gabarit :

    – Le filtre passe-bas idéal (méthode de fenêtrage)– Le filtre passe-bas synthétisé en analogique (méthode de l’invariant im-pulsionnel)

    2.1 Méthode des fenêtresLa première méthode que nous proposons d’utiliser afin de synthétiser le

    filtre passe-bas est de récupérer la réponse impulsionnelle du filtre idéal, et dela fenêtrer.

    f0

    1

    H(f)

    −fc fc

    Figure 3 – Filtre passe-bas idéal : réponse en fréquence

    Les deux paramètres de réglage pour cette synthèse sont le nombre d’échan-tillons que l’on récupère de la réponse impulsionnelle, et la fenêtre utilisée pourla discrétisation de la réponse impulsionnelle.

    En temps continu, la réponse impulsionnelle du filtre idéal vaut

    h(t) =∫ ∞−∞

    rect (−fc, fc) e2jπftdf

    =∫ fc−fc

    e2jπftdf

    =[

    12jπte

    2jπft]fcf=−fc

    = 12jπt(e2jπfct − e−2jπfct

    )= 1πt

    sin (2πfct) .

    Enfin,h(t) = 2fc

    sin 2πfct2πfct

    (4)

    4

  • t0

    1

    h(t)

    12fc

    1fc

    2fc

    3fc

    4fc

    Figure 4 – Filtre passe-bas idéal : réponse impulsionnelle

    Il s’agit ensuite de discrétiser cette réponse impulsionnelle. Pour cela, nousrécupérons la valeur de la réponse impulsionnelle pour tn = n/fe, avec n ∈ Z.

    t0

    1

    h(t)

    1fe

    h[n]

    Figure 5 – Méthode des fenêtres: Réponse impulsionnelle discrétisée

    Reste à fenêtrer la réponse impulsionnelle discrétisée obtenue. Nous choisis-sons pour cette étude de n’utiliser que la fenêtre naturelle, rectangulaire, à desfins de simplification. Il nous faut définir le nombre de points que nous désironsconserver. Dans la suite, N = 51.

    Enfin, pour que notre filtre soit réalisable physiquement, sa réponse impul-sionnelle doit être causale. Il nous faut donc décaler la réponse obtenue parfenêtrage pour la rendre causale.

    n0

    1

    h[n]

    Figure 6 – Méthode des fenêtres: Réponse impulsionnelle causale

    À l’aide de MATLAB, il est possible d’automatiser le processus de synthèse

    5

  • du filtre. Les scripts correspondants sont donnés en annexes A (définitions dugabarit), B (calcul de la réponse impulsionnelle) et C (tracé des courbes).

    −5000 −4000 −3000 −2000 −1000 0 1000 2000 3000 4000 50000

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    1.4

    f

    G(f

    )

    Methode des fenetres : Gain complexe

    −5000 −4000 −3000 −2000 −1000 0 1000 2000 3000 4000 5000−1500

    −1000

    −500

    0

    500

    1000

    1500

    f

    φ(f

    )

    En traçant le gain complexe du filtre synthétisé, nous pouvons constaterdeux effets :

    – Tout d’abord, nous retrouvons l’effet de Gibbs sur l’amplitude du gain :des oscillations caractéristiques se retrouvent aux transitions autour de lafréquence de coupure. Plus le nombre d’échantillons est grand, plus lesoscillations sont piquées.

    – La phase du filtre dans la bande passante est linéaire : le retard de pro-pagation dû au filtre est constant dans toute la bande passante, et lessignaux ne sont pas déformés, ce qui peut être un avantage dans certainesapplications de traitement du signal. Les signaux ne sont pas distorduspar le filtre.

    2.2 Méthode de discrétisation de la réponse en fréquenceUne autre méthode permettant d’obtenir un filtre à réponse impulsionnelle

    finie est de discrétiser la réponse en fréquence du filtre analogique en N points.Cette méthode n’est pas détaillée lors du montage afin de pouvoir étudier desméthodes pour synthétiser des filtres à réponse impulsionnelle infinie. La mé-thode est détaillée dans Y. Mori, Filtrage Numérique aux éditions Hermes.

    6

  • 3 Méthodes de synthèse de filtres à Réponse Im-pulsionnelle Infinie

    3.1 Méthode de l’invariant impulsionnelUne deuxième méthode utilisable pour générer un filtre à réponse impul-

    sionnelle finie est le pendant de la méthode précédente, mais pour un filtreanalogique réel.

    La première étape est donc de synthétiser un filtre analogique qui corres-pond à notre gabarit. Ceci est effectué à l’aide de MATLAB, avec les fonctionsbuttord et butter qui synthétisent un filtre de Butterworth adapté au gabaritqui leur est passé en argument (cf. annexe D).

    Il s’agit ensuite de créer un filtre numérique dont la réponse impulsionnelleest la discrétisation de la réponse impulsionnelle du filtre analogique. Si la fonc-tion de transfert du filtre analogique, dans le domaine de Laplace, est notéeH(p), nous pouvons la décomposer selon ses pôles, notés p0, . . . , pN−1 :

    H(p) =N−1∑i=0

    αip− pi

    (5)

    La réponse impulsionnelle de ce filtre vaut alors

    ha(t) =N−1∑i=0

    αie−pitu(t) (6)

    Après discrétisation, le n-ième échantillon de la réponse impulsionnelle vau-dra

    hn[n] =N−1∑i=0

    αie−pin

    fe u( nfe

    ) (7)

    La transformée en z de cette réponse correspondra alors à la transformée enz du filtre numérique synthétisé :

    Hn(z) =+∞∑n=0

    N−1∑i=0

    αie−pin

    fe z−n (8)

    =+∞∑n=0

    αi

    1− z−1e−pife

    (9)

    Il est alors possible de directement transposer une fonction de transfert ana-logique par invariation de la réponse impulsionnelle, en utilisant la transforma-tion

    αip− pi

    ⇒ αi1− z−1e−

    pife

    (10)

    C’est cette transformation que MATLAB applique lorsque l’on utilise lafonction impinvar (cf. annexe D). La réponse impulsionnelle obtenue est bienidentique pour les filtres analogique et numérique. Les réponses impulsionnellessont tracées en figure 7.

    7

  • 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

    x 10−3

    −1000

    0

    1000

    2000

    3000

    4000

    5000

    t (s)

    h(t

    )

    Invariant impulsionnel : reponses impulsionnelles

    Filtre analogique

    Filtre numerique

    Figure 7 –

    La réponse en fréquence obtenue par la méthode de l’invariant impulsionnelest présentée en figure 8. On constate bien que la réponse en fréquence est mo-difiée lors de la discrétisation. Ceci est un problème, puisqu’il n’est plus garantique le filtre numérique entrera dans les spécifications du gabarit analogique,comme nous pouvons le constater sur le graphe obtenu.

    100

    101

    102

    103

    −25

    −20

    −15

    −10

    −5

    0

    f (Hz)

    G(f

    )

    Invariant impulsionnel : diagramme de Bode

    Filtre analogique

    Filtre numerique

    Figure 8 –

    8

  • 3.2 Transformée BilinéaireLa méthode de transformée bilinéaire permet de passer outre cette incer-

    titude de l’invariant impulsionnel. Il s’agit ici de substituer à la variable deLaplace p un équivalent en transformée en z, déterminé par une équation auxdifférences.

    p⇒ 2fe1− z−1

    1 + z−1 (11)

    On constate pour cette transformation que l’axe des fréquences p = jω esttransformé en le cercle de rayon unité dans l’espace de la transformée en z. Ceciminimise les problèmes de recouvrement de l’échantillonnage.

    L’inconvénient de cette transformation est que la relation entre les fréquencesanalogiques et numériques n’est plus linéaire. Le filtre numérique est donc dé-formé par rapport au filtre analogique. Il faut alors soit considérer que la relationest linéaire pour les faibles fréquences analogiques, ou déformer le filtre analo-gique au préalable de la transformation pour minimiser les dommages.

    Les caractéristiques du filtre numérique sont tracées en figures 9 et 10, àl’aide du script E.

    0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

    x 10−3

    −1000

    0

    1000

    2000

    3000

    4000

    5000

    t (s)

    h(t

    )

    Transformee bilineaire : reponses impulsionnelles

    Filtre analogique

    Filtre numerique

    Figure 9 –

    9

  • 100

    101

    102

    103

    −25

    −20

    −15

    −10

    −5

    0

    f (Hz)

    G(f

    )

    Transformee bilineaire : diagramme de Bode

    Filtre analogique

    Filtre numerique

    Figure 10 –

    10

  • A setup_filnum.m%% Synthèse de filtres numériques% Nicolas Dandrimont - Agreg PA 2010

    %% Paramètres du montage Filtres Numériquesclear all; close all;

    % Fréquence d’échantillonnageFe = 1e4;

    % Gabarit du filtrefp = 1e3;fa = 3e3;Rp = 3;Ra = 10;

    % Paramètres pour la méthode des fenêtresNfenetres = 51;Nbourrage = 3000;

    11

  • B methode_fenetres.mfunction imp=methode_fenetres(tau, Fe, M, fenetre)% imp=methode_fenetres(tau, Fe, M)% Application de la méthode des fenêtres au filtre passe-bas idéal de% fréquence de coupure 1/\tau.%% Nicolas Dandrimont - Agreg PA 2010

    n = (-M:M);B = 2/tau;

    imp = B/Fe*sinc(n*B/Fe).*window(fenetre,length(n))’;

    12

  • C fenetre.m%% Synthèse de filtres numériques par la méthode des fenêtres% Nicolas Dandrimont - Agreg PA 2010

    %% Récupération des paramètressetup_filnum

    %% Calcul de la réponse impulsionnelle pour la méthode des fenêtresimp = methode_fenetres(1/fp, Fe, floor(Nfenetres/2), @rectwin);

    %% Tracé de la réponse impulsionnellefigure(1)stem((0:Nfenetres-1), imp)xlabel(’n’),ylabel(’h[n]’),title(’Methode des fenetres : Réponse impulsionnelle’)

    %% Calcul de la réponse en fréquencefft_imp = fft(imp, Nbourrage);

    mod_f = fftshift(abs(fft_imp));phase_f = 180/pi*unwrap(fftshift(angle(fft_imp)));

    phase_f = phase_f - phase_f(floor(Nbourrage/2)+1);

    f = linspace(-Fe/2, Fe/2, Nbourrage);

    %% Tracé de la réponse en fréquencefigure(2)subplot(211)plot(f,mod_f);xlabel(’f’),ylabel(’G(f)’),title(’Methode des fenetres : Gain complexe’)subplot(212)plot(f,phase_f);xlabel(’f’),ylabel(’\phi(f)’)

    13

  • D invariant_impulsionnel.m%% Synthèse de filtres numériques par la méthode de l’Invariant Impulsionnel% Nicolas Dandrimont - Agreg PA 2010

    %% Récupération des paramètressetup_filnum

    %% Filtre de Butterworth analogique[order, Wbutter] = buttord(2*pi*fp, 2*pi*fa, Rp, Ra, ’s’);[num, den]=butter(order, Wbutter, ’s’);lin = tf(num, den);

    %% Invariant impulsionnel[num_ech, den_ech] = impinvar(num, den, Fe);disc = tf(num_ech, den_ech, 1/Fe);

    %% Tracésf = linspace(1,Fe,101);

    % Gain des filtres analogiques et numériquesHlin = freqs(num, den, 2*pi*f);Hdisc = freqz(num_ech, den_ech, 2*pi*f/Fe);

    % Tracé des réponses impulsionnelles[y_lin,t_lin] = impulse(lin, 0:1/(100*Fe):20/Fe);[y_ech,t_ech] = impulse(disc, 0:1/Fe:20/Fe);

    hold onplot(t_lin, y_lin,’-’)stem(t_ech, Fe*y_ech,’g’);xlabel(’t (s)’),ylabel(’h(t)’)title(’Invariant impulsionnel : reponses impulsionnelles’)legend(’Filtre analogique’, ’Filtre numerique’)hold off

    % Tracé des diagrammes de Bode et du gabarit[mag,pha]=bode(disc,2*pi*f);mag = permute(mag, [3 1 2]);pha = permute(pha, [3 1 2]);

    [mag2,pha2] = bode(lin, 2*pi*f);mag2 = permute(mag2, [3 1 2]);pha2 = permute(pha2, [3 1 2]);

    figure(2)

    % Gabaritmin_G = -25;max_F = Fe/2;

    14

  • h=axes;axis(h,[1 max_F min_G 0]);set(h, ’XScale’, ’log’);rectangle(’Position’, [1 min_G fp-1 (-Rp - min_G)], ’FaceColor’, [1 0 0]);rectangle(’Position’, [fa -Ra max_F-fa Ra], ’FaceColor’, [1 0 0])hold on;

    % Bodessemilogx(f, 20*log10(mag2));semilogx(f, 20*log10(mag),’g’);xlabel(’f (Hz)’),ylabel(’G(f)’)title(’Invariant impulsionnel : diagramme de Bode’)legend(’Filtre analogique’, ’Filtre numerique’)

    15

  • E transformee_bilineaire.m%% Synthèse de filtres numériques par la méthode de la Transformée Bilinéaire% Nicolas Dandrimont - Agreg PA 2010

    %% Récupération des paramètressetup_filnum

    %% Filtre de Butterworth analogique[order, Wbutter] = buttord(2*pi*fp, 2*pi*fa, Rp, Ra, ’s’);[num, den]=butter(order, Wbutter, ’s’);lin = tf(num, den);

    %% Transformée bilinéaire[num_ech, den_ech] = bilinear(num, den, Fe);disc = tf(num_ech, den_ech, 1/Fe);

    %% Tracésf = linspace(1,Fe,101);

    % Gain des filtres analogiques et numériquesHlin = freqs(num, den, 2*pi*f);Hdisc = freqz(num_ech, den_ech, 2*pi*f/Fe);

    % Tracé des réponses impulsionnelles[y_lin,t_lin] = impulse(lin, 0:1/(100*Fe):20/Fe);[y_ech,t_ech] = impulse(disc, 0:1/Fe:20/Fe);

    hold onplot(t_lin, y_lin,’-’)stem(t_ech, Fe*y_ech,’g’);xlabel(’t (s)’),ylabel(’h(t)’)title(’Transformee bilineaire : reponses impulsionnelles’)legend(’Filtre analogique’, ’Filtre numerique’)hold off

    % Tracé des diagrammes de Bode et du gabarit[mag,pha]=bode(disc,2*pi*f);mag = permute(mag, [3 1 2]);pha = permute(pha, [3 1 2]);

    [mag2,pha2] = bode(lin, 2*pi*f);mag2 = permute(mag2, [3 1 2]);pha2 = permute(pha2, [3 1 2]);

    figure(2)

    % Gabaritmin_G = -25;max_F = Fe/2;

    16

  • h=axes;axis(h,[1 max_F min_G 0]);set(h, ’XScale’, ’log’);rectangle(’Position’, [1 min_G fp-1 (-Rp - min_G)], ’FaceColor’, [1 0 0]);rectangle(’Position’, [fa -Ra max_F-fa Ra], ’FaceColor’, [1 0 0])hold on;

    % Bodessemilogx(f, 20*log10(mag2));semilogx(f, 20*log10(mag),’g’);xlabel(’f (Hz)’),ylabel(’G(f)’)title(’Transformee bilineaire : diagramme de Bode’)legend(’Filtre analogique’, ’Filtre numerique’)

    17

  • F script_dspace.m%% Synthèse de filtres numériques. Compilation du modèle dSPACE% Nicolas Dandrimont - Agreg PA 2010

    %% Paramètres de simulationsetup_filnum

    %% Discrétisation par la méthode des fenêtresnum_fenetre = methode_fenetres(1/fp, Fe, Nfenetres, @rectwin);den_fenetre = 1;

    %% Définition d’un filtre continu de butterworth dans le gabarit fixéorder = buttord(2*pi*fp, 2*pi*fa, Rp, Ra, ’s’);[num, den]=butter(order, 2*pi*fp, ’s’);

    %% Invariant impulsionnel[num_imp, den_imp] = impinvar(num, den, Fe);

    %% Transformation bilinéaire[num_bil, den_bil] = bilinear(num, den, Fe);

    %% Construction du modèle dSPACErti_build(’filtres_numeriques’);

    18

    Principe et intérêt du filtrage numériquePrincipeComparaison avec les filtres analogiquesFamilles de filtres numériquesCahier des charges

    Méthodes de synthèse de filtres à Réponse Impulsionnelle FinieMéthode des fenêtresMéthode de discrétisation de la réponse en fréquence

    Méthodes de synthèse de filtres à Réponse Impulsionnelle InfinieMéthode de l'invariant impulsionnelTransformée Bilinéaire

    setup_filnum.mmethode_fenetres.mfenetre.minvariant_impulsionnel.mtransformee_bilineaire.mscript_dspace.m