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

Slides:



Advertisements
Présentations similaires
La méthode du simplexe.
Advertisements

« Systèmes électroniques »
ARCHITECTURE INTERNE d’un MICROPROCESSEUR
notes de cours Filtrage Numérique
Analyse temps-fréquence
Cours 5-b Problèmes spatio-temporels d’ordre 1 en temps
Pour voir où nous en sommes dans le cours S.S.I.
S.S.I., ESSI1, samedi 10 avril 2004 Page 1 Comment tailler les filtres sur mesure Séance 8, nouvelle application des filtres, 1 heure Version : samedi.
Comment créer des filtres d’ordre 1 et 2
Comment on filtre un signal audio
Cours 5 – Comment bien échantillonner le signal audio
4. La transformée en z Un formalisme adapté au filtrage et à l’analyse en fréquence des signaux échantillonnés et à l’automatique numérique x(t) signal.
1 Jean-Paul Stromboni, octobre 2007, SI3 Réviser le devoir surveillé n°1 du cours S.S.I.I. Jean-Paul Stromboni, octobre 2007, SI3 Elève : ______________________.
Calculs de complexité d'algorithmes
Filtres (n entier, Te=1s)
Calcul de la composition fréquentielle du signal audio
Du signal continu au numérique
Mesures dans le domaine fréquentiel
Equations différentielles
2. Echantillonnage et interpolation des signaux vidéo



Traitement du Signal Hugues BENOIT-CATTIN.
Comment créer des filtres « simples »
Cours S.S.I., SI1, avril 2007 – Comment utiliser les outils déjà présentés. Page 1 Comment utiliser les outils déjà présentés dans le cours S.S.I. et pourquoi.
Les structures de données
Stabilité des systèmes linéaires continus
Stabilité des systèmes linéaires continus
Chapitre VII :Commande par retour d’état
Synthèse de filtres numériques
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Chapitre III : Description externe des systèmes linéaires invariants (SLI) III-1 Définitions III-2 SLI à temps continu III-3 SLI à temps discret.
BTS Systèmes Electroniques
Traitement Numérique du Signal
Chapitre 6 : Restauration d’images
Chapitre 2 : Filtrage Professeur. Mohammed Talibi Alaoui
Identification des processus
électronique analogique
Dynamique des Systèmes Asservis
LIEU DES PÔLES.
AUTOMATIQUE NUMERIQUE
Transformée de Fourier discrète et transformée de Fourier rapide
S.S.I.I., , n°6, Créer des filtres sur mesure pour compresser S.S.I.I., , n°6, : Créer des filtres sur mesure pour compresser 1 Créer un.
1 Jean-Paul Stromboni, octobre 2007, SI3 Réviser le devoir surveillé n°1 du cours S.S.I.I. Jean-Paul Stromboni, octobre 2007, SI3 Elève : ______________________.
Filtrer le signal audio numérique
2. La série de Fourier trigonométrique et la transformée de Fourier
Traitement Numérique du Signal
Traitement Numérique du Signal
Cours H Filtres à réponse impulsionnelle infinie (RII)
I S E N 2006 COURS DE DSP (Digital Signal Processor) Partie 3: Filtres Alain Fruleux Une idée intéressante soumise par un étudiant est le combat de robots,
BTS_IRIS_Traitement_numérique_du_signal
Analyse des systèmes linéaires types
Conversion analogique numérique et numérique analogique
FILTRAGE - R.WEBER - POLYTECH'ORLEANS
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
MIC7340 Chapitre 12 Filtres.
Transformée de Fourier en Temps Continu (TFTC)
SoundEngine Un serveur d ’effets sonore en temps réel Juillerat Nicolas.
DU TRAITEMENT DU SIGNAL
1 Cliquez ici pour avancer Ici pour reculer Ch.Dupaty 11/97.
Reconnaissance automatique de la parole
Les différentes sortes de filtre
TNS et Analyse Spectrale
TNS et Analyse Spectrale
Progression - Quelques rappels
Calcul numérique de la transformée de Fourier Applications:
DU TRAITEMENT DU SIGNAL
I - Rappels en théorie du Signal
Transcription de la présentation:

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) Datasheet et documentation en ligne des fabricants de DSP

Filtres numériques linéaires Description des filtres RIF et RII Comment choisir RIF ou RII ? Algorithme et implantation dans le DSP 320LF2407 Calcul des coefficients

Filtres RIF x(n-M) ...x(n-1) xn Entrée Calcul Sortie yn yn = a0xn + a1x(n-1) … + aMx(n-M) Entrée Sortie Calcul x(n-M) ...x(n-1) xn yn

Filtres RII x(n-M) ...x(n-1) xn Entrée Calcul Sortie yn = a0xn + a1x(n-1) … + aMx(n-M) - b1y(n-1) - b2y(n-2) … … - bN y(n-N) Entrée Sortie Calcul x(n-M) ...x(n-1) xn y(n-N) …y(n-1) y(n)

Comparaison RIF et RII 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

Calcul des coefficients d ’un filtre RIF passe-bas Les coefficients ai sont obtenus par échantillonnage de la transformée de Fourrier inverse de la réponse fréquentielle h(t) en bleu |H(f)| Tr.Fourier 1 0 fc fe/2 t Fonction de transfert Coefficients +fc h(t) = e j2f t df = -fc t sin(2fct) et ak = Te h(kTe)

Décalage et fenêtrage temporel a k sin (2.(k-M/2). fc/fe) ak = .(k-M/2) 0 M/2 M aM/2 = 2. fc/fe M+1 coefficients (M pair)

|H(f)| ak = - sin (2(k-M/2). fc/fe) 1 (k-M/2) aM/2= 1- 2fc/fe Filtre RIF passe-haut |H(f)| 0 fc fe/2 1 sin (2(k-M/2). fc/fe) (k-M/2) ak = - aM/2= 1- 2fc/fe

Filtre RIF coupe-bande (rejecteur ou notch) |H(f)| 1 0 fc1 fc2 fe/2 Coeff. = coeff. Passe Bas + coeff. Passe Haut

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 )

Oscillations dues à la limitation du nombre de coefficients |H(f/fe)| 20log(|H|) Phase en deg.

Pondération des coeff. par une fenêtre de Hamming ak’ = ak.[0.54+(1-0.54).cos(2..(k-M/2)/(M+1))] 17 coefficients |H(f/fc)| 20log(|H|) Phase en deg.

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)

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

Programme de Filtrage RIF 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

Stockage des données en RAM 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

Le contenu du buffer X est nul au départ Initialiser W10 , W8 et les buffers circulaires (routines d ’initialisation) Zone Données Y Zone Données X a0 a1 ... .. aM-1 aM xn x n-1 x n-2 .. xn-M+1 xn-M W10 W8 Remarques: Le buffer Y contient les coefficients Le contenu du buffer X est nul au départ

Routine de traitement

Stocker l ’échantillon Xn à l ’adresse pointée par W8 Zone Données Y Zone Données X a0 a1 ... .. aM-1 aM xn x n-1 x n-2 .. xn-M+1 xn-M W10 W8 MOV ADCBUF0,W0 MOV W0, [W8]

Initialiser W4 et W5 et l ’accumulateur: CLR A, [W8]+=2,W4, [W10]+=2,W5 Zone Données Y Zone Données X a0 a1 ... .. aM-1 aM xn x n-1 x n-2 .. xn-M+1 xn-M W5 W4 W10 W8 Contenu de: W5 : a0 W4 : xn A : 0000000000 hexa

a0 a1 ... .. aM-1 aM xn x n-1 x n-2 .. xn-M+1 xn-M 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 xn x n-1 x n-2 .. xn-M+1 xn-M W5 W4 W10 W8 Premier « MAC » Contenu de: W5 : a1 W4 : xn-1 A : a0Xn

a0 a1 ... .. aM-1 aM xn x n-1 x n-2 .. xn-M+1 xn-M 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 xn x n-1 x n-2 .. xn-M+1 xn-M W5 W4 Deuxième « MAC » W10 W8 Contenu de: W5 : a2 W4 : xn-2 A : a0Xn + a1Xn-1

le calcul n ’est pas terminé…. 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 xn x n-1 x n-2 .. xn-M+1 xn-M W10 W8 Fin de REPEAT le calcul n ’est pas terminé…. W5 W4 Contenu de: W5 : a2 W4 : xn-2 A : a0Xn +a1Xn-1+…..a M-1 X n-M+1

les pointeurs sont bien positionnés MAC W4*W5, A, [W8]-=2,W4, [W10],W5 Zone Données Y Zone Données X a0 a1 ... .. aM-1 aM xn x n-1 x n-2 .. xn-M+1 xn-M W10 Fin du premier calcul les pointeurs sont bien positionnés W8 Contenu de: W5 : a0 W4 : xn-2 A : a0Xn +a1Xn-1+…..a M-1 X n-M

Envoyer le résultat en sortie Fin de la routine de traitement

Stocker l ’échantillon suivant à l ’adresse pointée par W8 Zone Données Y Zone Données X a0 a1 ... .. aM-1 aM xn x n-1 x n-2 .. xn-M+1 xn+1 W10 L’échantillon le plus ancien est écrasé Les pointeurs sont bien alignés pour la suite du calcul…. W8

Evolution des pointeurs W10 et W8 Zone Données Y Zone Données X a0 a1 ... .. aM-1 aM xn x n-1 x n-2 .. xn-M+1 xn+1 W8 W10

W8 pointe sur l’échantillon le plus ancien Fin du deuxième calcul Zone Données Y Zone Données X a0 a1 ... .. aM-1 aM xn x n-1 x n-2 .. xn-M+1 xn+1 W10 W8 W8 pointe sur  l’échantillon le plus ancien

Début du 3ième calcul a0 a1 ... .. aM-1 aM xn x n-1 x n-2 .. Xn+2 xn+1 Zone Données Y Zone Données X a0 a1 ... .. aM-1 aM xn x n-1 x n-2 .. Xn+2 xn+1 W10 W8 Le nouvel échantillon remplace le plus ancien