30
Calcul et implantation des filtres numériques RIF et RII dans un DSP

Calcul et implantation des filtres numériques RIF et RII dans un DSP

Embed Size (px)

Citation preview

Page 1: Calcul et implantation des filtres numériques RIF et RII dans un DSP

Calcul et implantation des filtres numériques RIF

et RII dans un DSP

Page 2: Calcul et implantation des filtres numériques RIF et RII dans un DSP

• Traitements numériques des signaux M.KUNT (Dunod)

• Traitement du signal F.COTTET (Dunod)

• Cours d ’électronique numérique échantillonnée A.DELUZURIEUX et M.RAMI (Eyrolles)

• Datasheet et documentation en ligne des fabricants de DSP

Bibliographie

Page 3: Calcul et implantation des filtres numériques RIF et RII dans un DSP

• Description des filtres RIF et RII

• Comment choisir RIF ou RII ?

• Algorithme et implantation dans le DSP 320LF2407

• Calcul des coefficients

Filtres numériques linéaires

Page 4: Calcul et implantation des filtres numériques RIF et RII dans un DSP

Filtres RIF yn = a0xn + a1x(n-1) … + aMx(n-M)

Entrée

SortieCalcul

x(n-M) ...x(n-1) xn

yn

Page 5: Calcul et implantation des filtres numériques RIF et RII dans un DSP

Filtres RII yn = a0xn + a1x(n-1) … + aMx(n-M) - b1y(n-1) - b2y(n-2) …

… - bN y(n-N)

Entrée

SortieCalcul

x(n-M) ...x(n-1) xn

y(n-N) …y(n-1) y(n)

Page 6: Calcul et implantation des filtres numériques RIF et RII dans un DSP

• Filtre à réponse impulsionnelle finie (FIR) – toujours stable

– phase linéaire (retard constant indépendant de f)

– les performances dépendent de M

– Le calcul des coefficients est facile

• Filtres à réponse impulsionnelle infinie (IIR)– grandes performances avec peu de calculs

– peuvent osciller : il faut étudier la stabilité

– on peut les calculer à partir des résultats des filtres analogiques

Comparaison RIF et RII

Page 7: Calcul et implantation des filtres numériques RIF et RII dans un DSP

• Les coefficients ai sont obtenus par échantillonnage de la transformée de Fourrier inverse de la réponse fréquentielle

Calcul des coefficients d ’un filtre RIF passe-bas

|H(f)|

0 fc fe/2

Fonction de transfert Coefficients

Tr.Fourier1

h(t) en bleu

t

et ak = Te h(kTe)+fc

h(t) = e j2f t df =-fc

tsin(2fct)

Page 8: Calcul et implantation des filtres numériques RIF et RII dans un DSP

Décalage et fenêtrage temporel

M+1 coefficients (M pair)

0 M/2 M

a k

sin (2.(k-M/2). fc/fe) .(k-M/2)ak =

aM/2 = 2.fc/fe

Page 9: Calcul et implantation des filtres numériques RIF et RII dans un DSP

Filtre RIF passe-haut

|H(f)|

0 fc fe/2

1

aM/2= 1- 2fc/fe

sin (2(k-M/2). fc/fe)(k-M/2)

ak = -

Page 10: Calcul et implantation des filtres numériques RIF et RII dans un DSP

Filtre RIF coupe-bande (rejecteur ou notch)

|H(f)|

0 fc1 fc2 fe/2

1

Coeff. = coeff. Passe Bas + coeff. Passe Haut

Page 11: Calcul et implantation des filtres numériques RIF et RII dans un DSP

Filtre RIF passe-bande

|H(f)|

0 fc1 fc2 fe/2

1

Coeff. = - ( Passe Bas + Passe Haut)

Coeff M/2 = 1 - (PasseBasM/2 + PasseHautM/2 )

Page 12: Calcul et implantation des filtres numériques RIF et RII dans un DSP

Oscillations dues à la limitation du nombre de coefficients

Phase en deg.20log(|H|)

17 coefficients|H(f/fe)|

Page 13: Calcul et implantation des filtres numériques RIF et RII dans un DSP

Pondération des coeff. par une fenêtre de Hamming

Phase en deg.20log(|H|)

17 coefficients |H(f/fc)|

ak’ = ak.[0.54+(1-0.54).cos(2..(k-M/2)/(M+1))]

Page 14: Calcul et implantation des filtres numériques RIF et RII dans un DSP

Calcul des filtres RII à partir d ’un modèle analogique H(p)

La méthode présentée est basée sur une approximation de Z

Z = e pTe (1 +pTe/2)/(1-pTe/2)

=> p 2.Fe (1- z-1)/(1+ z-1)

1) On détermine H(p) à partir du gabarit en analogique

2) On remplace p par l ’expression ci-dessus.

2) H(z) permet d ’obtenir l ’équation de récurrence

yn = a0xn + a1x(n-1) … + aMx(n-M) - b1y(n-1) - b2y(n-2) …… - bN y(n-N)

Page 15: Calcul et implantation des filtres numériques RIF et RII dans un DSP

Exemple

Soit un passe-bas du premier ordre fc = 1kHz

H(p) = 1/(1+ p/c)

En remplaçant p on obtient un équivalent numérique :

Avec fe = 10kHz on obtient:

H(z) = (0.24 + 0.24 z-1 ) / (1 - 0.52z-1)

On en déduit:

Yn = 0.24Xn +0.24 Xn-1 + 0,52 Yn-1

Page 16: Calcul et implantation des filtres numériques RIF et RII dans un DSP

– Initialisation• Configuration des registres

– de contrôle: horloge, multiplexage des pattes, ADC, Timer, IRQ...

– Acquisition de l ’entrée x déclenchée par un Timer

• Stockage des coefficients dans la mémoire « donnée Y »• Configurer les buffers circulaires et les registres pointeurs• Configurer CORCON (saturation, virgule fixe)• Autorisation de l ’ interruptions ADC• Puis boucle infinie ou autre tâches….

– Traitement par interruption ADC (ou Timer)• Lire et stocker xn en mémoire « données  X»

• Calculer yn

• Envoyer yn en sortie

• Fin d ’interruption

Programme de Filtrage RIF

Page 17: Calcul et implantation des filtres numériques RIF et RII dans un DSP

Coefficients en « mémoire Y » :

.section .ydata, "d"

Coeff: .word 0x1234, 0x5678, 0x9abc, 0xdef0, 0xabab

Réservation de mémoire pour stocker les échantillons « mémoire X »

.section .xbss, "b" Buffer_X: .space 2*100 ; 100 mots de 16 bits = 200 octets réservés

Stockage des données en RAM

Page 18: Calcul et implantation des filtres numériques RIF et RII dans un DSP

Initialiser W10 , W8 et les buffers circulaires (routines d ’initialisation)

Zone Données Y Zone Données X

a0

a1

...

..

aM-1

aM

W10 W8 xn

x n-1

x n-2

..

xn-M+1

xn-M

Remarques: Le buffer Y contient les coefficients

Le contenu du buffer X est nul au départ

Page 19: Calcul et implantation des filtres numériques RIF et RII dans un DSP

Routine de traitement

Page 20: Calcul et implantation des filtres numériques RIF et RII dans un DSP

Stocker l ’échantillon Xn à l ’adresse pointée par W8

Zone Données Y Zone Données X

a0

a1

...

..

aM-1

aM

W10 W8 xn

x n-1

x n-2

..

xn-M+1

xn-M

MOV ADCBUF0,W0

MOV W0, [W8]

Page 21: Calcul et implantation des filtres numériques RIF et RII dans un DSP

Initialiser W4 et W5 et l ’accumulateur: CLR A, [W8]+=2,W4, [W10]+=2,W5

Zone Données Y Zone Données X

Contenu de: W5 : a0

W4 : xn

A : 0000000000 hexa

a0

a1

...

..

aM-1

aM

W10 W8

xn

x n-1

x n-2

..

xn-M+1

xn-M

W5 W4

Page 22: Calcul et implantation des filtres numériques RIF et RII dans un DSP

REPEAT #M-1 (ATTENTION =faire M fois) MAC W4*W5, A, [W8]+=2,W4, [W10]+=2,W5

Zone Données Y Zone Données X

a0

a1

...

..

aM-1

aM

W10 W8

xn

x n-1

x n-2

..

xn-M+1

xn-MContenu de: W5 : a1

W4 : xn-1

A : a0Xn

Premier

« MAC »

W5 W4

Page 23: Calcul et implantation des filtres numériques RIF et RII dans un DSP

REPEAT #M-1 (ATTENTION =faire M fois) MAC W4*W5, A, [W8]+=2,W4, [W10]+=2,W5

Zone Données Y Zone Données X

a0

a1

...

..

aM-1

aM

W10 W8

xn

x n-1

x n-2

..

xn-M+1

xn-MContenu de: W5 : a2

W4 : xn-2

A : a0Xn + a1Xn-1

Deuxième

« MAC »

W5 W4

Page 24: Calcul et implantation des filtres numériques RIF et RII dans un DSP

REPEAT #M-1 (ATTENTION =faire M fois) MAC W4*W5, A, [W8]+=2,W4, [W10]+=2,W5

Zone Données Y Zone Données X

a0

a1

...

..

aM-1

aM

W10 W8 xn

x n-1

x n-2

..

xn-M+1

xn-MContenu de: W5 : a2

W4 : xn-2

A : a0Xn +a1Xn-1+…..a M-1 X n-M+1

Fin de REPEAT

le calcul n ’est pas terminé….

W5 W4

Page 25: Calcul et implantation des filtres numériques RIF et RII dans un DSP

MAC W4*W5, A, [W8]-=2,W4, [W10],W5

Zone Données Y Zone Données X

a0

a1

...

..

aM-1

aM

W10

W8

xn

x n-1

x n-2

..

xn-M+1

xn-MContenu de: W5 : a0

W4 : xn-2

A : a0Xn +a1Xn-1+…..a M-1 X n-M

Fin du premier calcul

les pointeurs sont bien positionnés

Page 26: Calcul et implantation des filtres numériques RIF et RII dans un DSP

Envoyer le résultat en sortie

Fin de la routine de traitement

Page 27: Calcul et implantation des filtres numériques RIF et RII dans un DSP

Stocker l ’échantillon suivant à l ’adresse pointée par W8

Zone Données Y Zone Données X

a0

a1

...

..

aM-1

aM

W10

W8

xn

x n-1

x n-2

..

xn-M+1

xn+1

L’échantillon le plus ancien est écrasé

Les pointeurs sont bien alignés pour la suite du calcul….

Page 28: Calcul et implantation des filtres numériques RIF et RII dans un DSP

Evolution des pointeurs W10 et W8

Zone Données Y Zone Données X

a0

a1

...

..

aM-1

aM

W10

W8 xn

x n-1

x n-2

..

xn-M+1

xn+1

Page 29: Calcul et implantation des filtres numériques RIF et RII dans un DSP

Fin du deuxième calcul

Zone Données Y Zone Données X

a0

a1

...

..

aM-1

aM

W10

W8

xn

x n-1

x n-2

..

xn-M+1

xn+1

W8 pointe sur  l’échantillon le plus ancien

Page 30: Calcul et implantation des filtres numériques RIF et RII dans un DSP

Début du 3ième calcul

Zone Données Y Zone Données X

a0

a1

...

..

aM-1

aM

W10

W8

xn

x n-1

x n-2

..

Xn+2

xn+1

Le nouvel échantillon remplace le plus ancien