Filter se karakterise impulsnim odzivom. U digitalnoj obradi signala to je neki niz od n brojeva koji predstavljaju ekvidistantne odbirke recimo prenosne karakteristike analognog filtra, ako ti je tako lakse da shvatis.
Kad na ulazu u filter imas neki signal, onda iz tog ulaznog signala i karakteristike filtra mozes dobiti izlazni signal.
Dakle, ulazni signal se predstavlja kao niz brojeva (to je tvoj EKG signal), ali i karakteristika filtra je takodje niz brojeva.
Recimo: EKG signal = [e1 e2 e3 e4 e5 e6 e7 e8 e9 ......]
karakteristika filtra = [f1 f2 f3 f4]
e i f su neki brojevi. e-brojevi se dobijaju tako sto se signal sa elektroda ekg aparata A/D konvertorom pretvori u digitalne brojeve, a f-brojevi su karakteristika filtra, poznati unapred.
Izlazni signal se od ulaznog signala i karakteristike filtra dobija takozvanom operacijom konvolucije, ali ne mogu sad da ti objasnjavam matematiku i teoriju kojom se do toga dolazi (trazi literaturu iz Signala i Sistema i naci ces sve sto ti treba).
Elem, operacija konvolucije podrazumjeva da se npr. vektor filtera ''izvrne unazad" pa se vrsi mnozenje i zbrajanje sa odgovarajucim brojevima iz vektora ulaznog signala da bi se dobio izlazni signal;
Neka je izlazni signal npr. Y = [y1 y2 y3 y4 y5 y6 y7 y8 y9 710......]
Ovi y-oni se dobijaju tako sto se svaki sastoji od zbira cetiri umnoska, a koji se dobijaju ovako:
npr. y5 = f1*e5 + f2*e4 + f3*e3 + f4*e2
npr. y6 = f1*e6 + f2*e5 + f3*e4 + f4*e3
...
......y100 = f1*e100 + f2*e99 + f3*e98 + f4*e97
itd.
Primjeti da odgovarajuci odbirak u izlaznom signalu dobijas tako sto u ulaznom signalu pomnozis isti taj i jos 3 prethodna (ukupno 4) sa odbircima koji karakterisu filter. Kad bi filter bio karakterisan ne sa 4, nego npr. sa 12 brojeva onda bi mnozio 12 brojeva iz ulaznog signala (pocevsi od tog koji je na redu pa dalje u nazad) sa 12 odbiraka filtra.
E sad ovaj tvoj program radi to isto, samo sto je moguce na nekoliko nacina doci do tog izlaznog signala (mislim programski, ne sustinski - jer mozes napraviti nekoliko razlicitih petlji koji ce da urade to mnozenje i sabiranje da bi dobio izlazni signal), ali to ostavljam tebi da vidis kako je u ovoj funkciji sazvakano.
Literatura:
http://www.dspguide.com/pdfbook.htm
edit: evo vidim da ti je Bogdan objasnio algoritam programa dok sam ja ovo kucao :)
Pozdrav!