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

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

description

Calcul et implantation des filtres numériques RIF et RII dans un DSP. Bibliographie. 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) - PowerPoint PPT Presentation

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

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