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.2 Filtre FIR d'un ordre :

a) Structure

Tiré de la structure du filtre de 1er ordre, le filtre FIR de 2ème ordre illustré sur la figure III.6 possède trois coefficients et 2 registres de sauvegarde, et pour la description VHDL elle réunit deus process qui assurent la mémorisation des états de l'entrée, en les transmettant d'un process à l'autre pour les multiplier par les coefficients.

x-int1[k]

X_int2[k]

X_in(n)[k]

Process

CLK

Process

CLK

[k]

a [k]

a [k]

Reg_2[2*k]

[2*k+1]

DIV

Reg_y[2*k+2]

Y_out [k]

[2*k]

Reg_1[2*k]

Figure III.6 : bloc digramme d'un filtre FIR 2ème ordre

Figure III.7 : Décomposition fonctionnelle d'un filtre RIF 1 ère ordre sous Active-HDL

Sur la figure III. 7 une reconstitution de la décomposition fonctionnelle du code VHDL faite avec le logiciel Active-HDL, elle permet de bien identifier les grands lignes de notre code et les différents signaux d'interface et ceux utilisé en interne.

Cette reconstitution représente la description VHDL suivante du filtre RIF 2ème ordre.

library ieee;

Use ieee.std_logic _1164.all;
Use ieee.numeric_std.all;

entity FIRFilter is

generic( word_size : integer := 4 );

port( clk : in std_logic;

a_0, a_1, a_2 : in unsigned(word_size-1 downto 0);

x_in : in unsigned(word_size-1 downto 0);

y_out : out unsigned(word_size-1 downto 0)); end entity;

Architecture FIRFilter of FIRFilter is

signal reg_2 : unsigned(2*word_size-1 downto 0):="00000000";

signal reg_ 1 : unsigned(2*word_size-1 downto 0):="00000000";

signal reg y : unsigned(2*word_size-1 downto 0):="00000000";

signal x_int1,x_int2 : unsigned(word_size-1 downto 0):="0000";

begin

process (clk)

begin

x_int1 <= x_in;

end process;

process (clk)

begin

x_int2 <= x_int1;

end process;

reg_y <= (x_in * a_0) + reg_1 + reg_2;

y_out <= reg_y(2*word_size-3 downto word_size-2); end architecture;

b) Simulation et Interprétation :

On peut tester ce filtre RIF de 2ème comme nous avons testé celui du 1er ordre, et on aura les mêmes résultats et commentaires. Dans ce cas, nous avons testé le filtre décrit avec un signal x(n) périodique de forme triangulaire de période T = 3000ns à l'aide d'un compteur/décompteur tiré des outils intégrées du logiciel de simulation ModelSim. On donne des valeurs codées en 4 bits de 0000 à 1111 et de 1111 à 0000 avec des changements dans quelques états pour simuler le bruit.

Figure III.8 : Résultats de la simulation de filtre du 2ème ordre

Ce filtre est l'extension du filtre de 1er ordre, selon cette configuration il calcule la

moyenne de trois échantillons successifs. La sortie y(n) écrit par :

Avec les coefficients sont égaux = =

Donc se filtre effectue la moyenne glissante sur les 3 derniers échantillons arrivées sur l'entrée x(n) en éliminant les parasites et les valeurs aberrantes, ceci est représenté par l'exemple de simulation de la figure III.8.

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








"Qui vit sans folie n'est pas si sage qu'il croit."   La Rochefoucault