WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Implantation d'algorithme de filtrage numérique sur FPGA(réseau de portes programmables)

( Télécharger le fichier original )
par Mohamed Bendada
Université Ferhat Abbas de Sétif Algérie - Master électronique  2010
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

III.2.3 Filtre FIR du 3ème ordre :

a) Structure

Le bloc diagramme suivant représente le principe du filtre FIR 3éme ordres

X_in(n)[k]

[k]

[2*k]

CLK

a1[k]

Reg_1[2*k]

x-int1[k]

CLK CLK

Reg_2[2*k]

a2[k]

X_int2[k]

Reg_y[2*k+2]

Reg_3[2*k]

a3[k]

DIV

Y_out [k]

Process

Figure III.9 : bloc digramme d'un filtre FIR 3ème ordre

Nous avons utilisé la même procédure pour créer ce filtre que celle exploité dans les deux premiers filtres, nous avons utilisé un autre process pour créer le troisième étage.

b) Simulation et Interprétation :

Dans cette partie nous avons utilisé une autre méthode de test et de simulation, pour ainsi valider notre conception.

Nous avons choisi de réaliser la simulation de ce filtre sur logiciel Modelsim avec une entré de type x(n)= cos (n) ou la résolution sera de 8 bits, nous avons besoin dans ce cas de figure de crée un testbench (banc de test) pour accomplir la simulation.

Par définition, un testbench VHDL est un code VHDL destiné à la vérification, par simulation, du bon fonctionnement d'un système, lui-même décrit en VHDL.

Dans notre testbenchs il faut intégrés un générateur d'horloge pour la synchronisation de ces différents composants avec le filtre qu'on veut tester. Les coefficients du filtre seront fixés dans le code du testbench. L'élément le plus important est le générateur de cosinus, il est basé sur une table de 256 valeurs qui représente un quart de période du cosinus.

Filtre RIF

Générateur d'horloge
(CLK)

Générateur de signal
périodique

Compteur

ROM
(Cosinus)

 

ROM
Coefficients

 
 

Figure III.10 : Bloc diagramme du testbench avec cosinus d'un filtre RIF

Pour générer le cosinus, il suffit de lire cette table via un générateur d'adresse sous forme d'un compteur cadencé par l'horloge. Pour réaliser une période de cosinus en adresse la table 4 fois avec 4 manières différentes :

1-

x_in cosrom (cont);

Si

(cont >= 0) and (cont< 257)

2-

x_in <= -cosrom(512-cont

Si

(cont >= 257) and (cont < 513

 

3-

x_in <= cosrom(cont-512

Si

(cont >= 513) and (cont < 769)

4-

xin <= cosrom(1024-cont)

Si

(cont >=769) and (cont<1024)

 

Pour régler la fréquence du cosinus il suffit de changer le pas du compteur, la fréquence la plus petite équivaut à un pas de comptage de 1. Pour une fréquence plus grande on peut lire la table de cosinus avec un pas de 50, soit 5 valeurs générées par 1/4 de période.

1ère simulation

Avec les paramètres suivants nous avons les résultats de simulation de la figure III.11 :

· Horloge : 1000ns

· Largeur des données : 8 bits

· Pas de comptage : +10

Soit un cosinus d'une fréquence de 10kHz

Figure III.11 : Résultats de la simulation d'un filtre du 3ème ordre avec f=10khz 2ème simulation

Avec les paramètres suivants nous avons les résultats de simulation de la figure III.11 :

· Horloge : 100ns

· Largeur des données : 8 bits

· Pas de comptage : 60

Soit un cosinus d'une fréquence de 500kHz

Figure III.12 : Résultats de la simulation d'un filtre du 3ème ordre avec f=500khz

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Le doute est le commencement de la sagesse"   Aristote