Discussion:Filtre numérique

Le contenu de la page n’est pas pris en charge dans d’autres langues.
Une page de Wikipédia, l'encyclopédie libre.
Autres discussions [liste]
  • Admissibilité
  • Neutralité
  • Droit d'auteur
  • Article de qualité
  • Bon article
  • Lumière sur
  • À faire
  • Archives
  • Commons


Le filtrage ?[modifier le code]

Bonjour,

Le filtrage ? La filtration ? Quel est le terme mieux adapté ? Est-ce que filtrage ne serait pas une façon de nommer les choses comme on le fait couramment dans les secteurs techniques (adoptant des formulation anglaises) ? Si certains connaissent l'origine des deux termes et peuvent indiquer celui qui est le plus approprié, peut-être que le wiki s'améliorerait... car rien de mieux que de bonnes expressions placées au bon endroit pour faciliter les recherches. Merci

Pour ma part, la filtration est plutôt un terme de chimie, et en tout cas relatif à la matière plutôt qu'à l'information... Qui veut discuter sur ces propos ???

Merlin


Le code C[modifier le code]

Je ne suis pas sûr qu'il soit bon. x est un double, et seule la première case du buffer est remplie... Je ne vois ce que viens faire ptr_x_.. %= NB_COEFF puisqu'il est égal à un...

Florian


Ma proposition :

// si la taille de NB_COEF = 2^n utiliser un masque au lieu du modulo (%) // %=NB_COEF => &=(NB_COEF-1) // pipe est un buffer circulaire

/* Paramètres du filtre : à compléter par autre chose que 0 */

  1. define NB_COEF 16 // nombre de coef du filtre

double coef[NB_COEF]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

/* buffer du filtre */ double x_buffer[NB_COEF]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; int ptr_x_buffer=0;

double FiltreFIR(double x) // x: Signal d'entrée // y: Signal de sortie {

 int n;
 double y=0;
 // sauvegarde de la valeur courante dans le buffer
 x_buffer[ptr_x_buffer] = x;
 // passage à la prochaine case
 ptr_c_buffer++;
 ptr_x_buffer %= NB_COEF;
 /* parcourt de tout le buffer pour appliquer le filtre */  
 /* utilisation d'un autre pointeur de parcourt pour éviter tout bug en cas d'évolution de program */
 int loop_ptr= ptr_x_buffer;
 for( n = (NB_COEF-1) ; n >= 0 ; n-- )
 {
   y += coef[n] * x_buffer[loop_ptr];
   loop_ptr++;
   loop_ptr %= NB_COEF;
 }
 return(y);

}


Emmanuel

IIR tous instables ?[modifier le code]

L'article suggère que les IIR sont nécessairement instables ce qui bien sur est faux. Les FIR ont une réponse impulsionnelle finie car limitée sur un certain nombre d'échantillons (qui dépend de l'ordre du filtre). Les IIR ont une réponse impulsionnelle infinie car elle s'étend sur un nombre infini d'échantillons. Mais ces filtres peuvent être stables si leur réponse impulsionnelle tend vers 0 à l'infini.