filtriranje EKG signala...
01.06.2010. u 18:47 · pre 199 meseci
#1
Da li bi neko mogao da mi "sažvaće" funkciju koja treba da filtrira signal EKG-a???
Kod je preuzet sa www.ti.com i odnosi se na mikrokontroler MSP430FG439. Naime, u pitanju je FIR filtar
Ne razumem bas najbolje kako je ovo u stvari realizovano.
mul16 je funkcija za asemblersko množenje, i nalazi se u posebnom fajlu.
Ukoliko bi neko uspeo da mi ovo dočara, bilo bi super... Potrebni fajlovi su priloženi...
Kod je preuzet sa www.ti.com i odnosi se na mikrokontroler MSP430FG439. Naime, u pitanju je FIR filtar
Code:
...
int filterlp(int sample) // Lowpass FIR filter for EKG
{ static int buflp[32]; // Reserve 32 loactions for circular buffering
static int offsetlp = 0;
long z;
int i;
buflp[offsetlp] = sample;
z = mul16(coeffslp[8], buflp[(offsetlp - 8) & 0x1F]);
for (i = 0; i < 8; i++)
z += mul16(coeffslp[i], buflp[(offsetlp - i) & 0x1F] + buflp[(offsetlp - 16 + i) & 0x1F]);
offsetlp = (offsetlp + 1) & 0x1F;
return z >> 15; // Return filter output
}// int filterlp
...
...
int filterlp(int sample) // Lowpass FIR filter for EKG
{ static int buflp[32]; // Reserve 32 loactions for circular buffering
static int offsetlp = 0;
long z;
int i;
buflp[offsetlp] = sample;
z = mul16(coeffslp[8], buflp[(offsetlp - 8) & 0x1F]);
for (i = 0; i < 8; i++)
z += mul16(coeffslp[i], buflp[(offsetlp - i) & 0x1F] + buflp[(offsetlp - 16 + i) & 0x1F]);
offsetlp = (offsetlp + 1) & 0x1F;
return z >> 15; // Return filter output
}// int filterlp
...
Ne razumem bas najbolje kako je ovo u stvari realizovano.
mul16 je funkcija za asemblersko množenje, i nalazi se u posebnom fajlu.
Ukoliko bi neko uspeo da mi ovo dočara, bilo bi super... Potrebni fajlovi su priloženi...
