Routine de calcul bas-niveau
eng - fr


nfilter_c - routine de calcul filtre à réponse impulsionnelle finie par méthode de convolution discrète

Librairie

Paramètres

Description

Add here a paragraph of the function description.

Contenu du fichier


/* nfilter_c subroutine
 * FIR computation
 * with classic discrete convolution method
 * IRCOM GROUP - Author : A.Layec
 */
 
/* REVISION HISTORY :
 * $Log$
 */
 
#include "mod_num_lib.h"

/* nfilter_c : routine de calcul d'un filtre à réponse impulsionnelle fini 
 *             par convolution numérique
 *
 * Entrées :
 * n : longueur du vecteur d'entrée à filtrer
 * nbcoef : longueur de la réponse impulsionelle
 * u : adresse de départ du vecteur d'entrée à filtrer
 * pulse : adresse de départ de la réponse impulsionelle
 *
 * Sorties :
 * y : adresse de départ du vecteur filtré
 * 
 * Entrées/sorties :
 * z : adresse de départ du vecteur mémoire du filtre
 */
 
void nfilter_c(int *n,int *nbcoef,double *u,double *pulse,double *y,double *z)
{
 /*déclaration*/
 double somme;
 int i,j;
 
 for(j=0;j<(*n);j++)
 {
  /*calcul sortie*/
  somme=0;
  for(i=0;i<(*nbcoef)-1;i++)
  {
   somme=somme+z[(*nbcoef)-1-i]*pulse[i];
  }
  somme=somme+u[j]*pulse[*nbcoef-1];
  
  /*calcul mémoire*/
  for(i=0;i<(*nbcoef)-1;i++)
  {
   z[(*nbcoef)-i-1]=z[(*nbcoef)-i-2];
  }
  z[0]=u[j];
  
  /*recopie sortie dans y*/
  y[j]=somme;
 }
 
 return;
}

Auteurs

IRCOM Group Alan Layec