Pentru calcularea BPM(numărul de bătăi ale inimii pe minut) există mai mulți algoritmi, unii mai simpli, dar mai puțin eficienți și altii mai complexi, dar mult mai preciși.
Cel mai folosit algoritm are ca scop găsirea momentelor dintre două bătăi succesive și măsurarea timpului dintre ele(IBI).
Fiecare bătaie a inimii generează așa numitele valuri(waves), afișate în imaginea alăturată asemenea unor “unde de șoc”. Practic, momentul dintre două bătăi este reprezentat de “distanța” dintre două unde de șoc.
Pentru a fi cât mai precis, acest algoritm calculează media ultimelor zece IBI(valori înregistrate într-un array). La depăsirea primelor zece valori, valoarea a unsprezecea ia locul primei valori(array[0]), a doisprezecea ia locul celei de-a doua valorii și tot așa.
Acum este momentul ca algoritmul să calculeze cât timp a durat IBI 10 și pe baza acestuia să calculeze care ar fi BPM dacă IBI ar avea de fiecare dată media IBI 10.
Pe lângă aceste calcule, aplicația trebuie să trateze și posibilele erori apărute, cum ar fi lipsa pulsului, sau un puls exagerat de mare(eroare venită din instabilitatea senzorului sau a mișcării degetului pe senzor).vezi mai multe
Un alt algoritm folosit mai puțin presupune adunarea batăilor pentru o perioadă de timp și înmulțirea rezultatului cu 60sec/perioada de timp.
De exemplu se adună numarul bătăilor apărute în 10 secunde și se inmulțeste rezultatul cu 6. În acest moment avem: nr bătăi inima/zece secunde * 6 = nr bătăi inima*6/60secunde.