Dokumentacija LifeLink Algoritama
Ovaj dokument opisuje algoritme za obradu signala koji se koriste u LifeLink projektu za praćenje vitalnih funkcija i detekciju pada.
1. Puls i SpO2 (Bazirano na FFT-u)
Koristimo Brzu Furijeovu Transformaciju (FFT) za analizu fotopletizmogramskog (PPG) signala sa MAX30102 senzora. Ova metoda je robusnija protiv artefakata pokreta u poređenju sa jednostavnom detekcijom vrhova u vremenskom domenu.
Detalji Implementacije:
- Biblioteka:
espressif/esp-dsp(Hardverski ubrzano na ESP32-S3). - Brzina uzorkovanja: 100 Hz.
- Veličina bafera: 512 uzoraka (~5.12 sekundi podataka).
Koraci:
- Uklanjanje DC komponente: Oduzimanje srednje vrednosti signala.
- Prozorska funkcija: Primena Hann prozora za smanjenje spektralnog curenja.
- FFT: Izračunavanje kompleksnog FFT-a.
- Izračunavanje SpO2:
- Ekstrakcija AC i DC komponenti:
- DC komponenta: Konstantna apsorpcija tkiva i kostiju (0Hz magnituda FFT-a).
- AC komponenta: Pulsirajuća apsorpcija arterijske krvi (magnituda na frekvenciji pulsa).
- Izračunavanje odnosa (Ratio of Ratios):
$$R = \frac{AC_{red}/DC_{red}}{AC_{ir}/DC_{ir}}$$
- Finalna formula: Procenat se dobija linearnom (empirijskom) aproksimacijom:
$$SpO_2 = 110 - 25 \times R$$
* Kalibrisano za medicinski opseg 70-100% gde linearni fit nudi najbolji balans preciznosti i performansi.
- Ekstrakcija AC i DC komponenti:
2. Napredna Detekcija Pada (3-Fazni Model)
Detekcija pada koristi podatke sa QMI8658 IMU senzora i implementira mašinu stanja kako bi razlikovala stvarne padove od svakodnevnih aktivnosti.
Osnovni koncept: SVM (Signal Vector Magnitude)
Totalna G-sila se izračunava kao:
$$SVM = \sqrt{a_x^2 + a_y^2 + a_z^2}$$
3-Fazna Logika:
- Faza 1: Slobodan Pad:
Detekcija gubitka težine (SVM < 0.6g). Sistem beleži referentnu orijentaciju ruke neposredno pre pada.
- Faza 2: Udarac (Impact):
Nagli skok ubrzanja (> 3.5g) koji se mora desiti u roku od 500ms. Ovo odvaja padove od običnih udaraca rukom o objekte.
- Faza 3: Mirovanje i Provera Ugla:
Sistem čeka 5 sekundi stabilnosti. Ako je korisnik miran, računa se promena ugla u odnosu na referentnu tačku iz Faze 1.
Verifikacija Orijentacije
Koristimo kosinusnu sličnost (dot-product) za izračunavanje promene nagiba:
$$\theta = \arccos\left(\frac{v_{ref} \cdot v_{curr}}{|v_{ref}| \cdot |v_{curr}|}\right)$$
Ako je $\theta > 60^\circ$ i detektovano je mirovanje $\rightarrow$ POTVRĐEN PAD.
3. Fuzija Senzora i Ograničenje Brzine
- GPS (LC76G): Očitava se svakih 100ms.
- Izveštavanje: UI/Log osvežavanje na 10Hz radi uštede CPU resursa.