bonjour à tous,
je travaille sur le traitement d'un signal ECG en langage C. j'ai essayé de programmer une équation aux différence d'un filtre numérique mais je sais pas si j'etais sur le bon chemin ou non. je serais tres reconnaissant si quelqun peut m'orienter.

l'equation du filtre:
y[n] = 2*y[n-1] - y[n-2] + x[n] - 2*x[n-6] + x[n-12]

code:
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// data :le signal d'entrée
// y:le signal de sorttie 
 
int LowPassFilter(int data)
{
  int y[NUM_SAMPLES]={0};
  y[1]=data[1];
  y[2]=2*y[1]+data[2];
 
  for (i=3,i<NUM_SAMPLES,i++)
  {
    if (i<7) 
    {
      y[i]=2*y[i-1]-y[i-2]+data[i];
    }
    if(i>=7 & i<13) 
    {
      y[i]=2*y[i-1]-y[i-2]+data[i]-2*data[i-6];
    }
    if (i>=13)
    {
      y[i]=2*y[i-1]-y[i-2]+data[i]-2*data[i-6]+data[i-12];
    }
  }
}