#5023
mau22
Partecipante

Ciao ragazzi.

Sto facendo alcune prove con il file RR ottenuto da Theremino ECG, e qualcosa non mi convince, ma non riesco a capire cosa.
Purtroppo, non ho ancora modo di collegare degli elettrodi, e solo uno dei file di esempio di Theremino ECG ha una durata maggiore di 5 minuti.

Nel frattempo, ho ragionato sull’ultimo intervento di Livio di Theremino.
Alla prima lettura, non mi era chiaro il motivo per il quale l’analisi successiva del tracciato produca tempi RR diversi da quelli dell’analisi in tempo reale.
Ma poi mi sono chiesto come farei io per estrarre questi dati, ed ho ipotizzato una risposta.
L’istante esatto del ciclo cardiaco al quale attribuire il punto del tempo al quale riferirsi nel calcolo del periodo RR è localizzato, secondo la letteratura, nel picco più alto della forma d’onda, che viene appunto denominato R.
Immagino che la determinazione di questo punto venga fatta dal software analizzando tutte le letture precedenti, e facendo un auto-set di un trigger al valore più prossimo alla media di quelli letti in precedenza.
Questo implica, tra l’altro, la necessità di analizzare inizialmente un certo numero di battiti prima di poter iniziare ad estrarre i tempi RR.
Ovviamente, un set del trigger molto vicino al massimo delle letture è più preciso nella determinazione del tempo, ma potrebbe non attivarsi con letture di ampiezza un pochino inferiore, saltando così dei battiti e inficiando gravemente la bontà della lettura totale.
Se invece impostiamo il trigger troppo basso, il riconoscimento del punto massimo del picco R si sposta indietro nel tempo, in quanto viene localizzato prima del punto più alto del picco.
Se questo è il metodo attualmente utilizzato, è chiaro che i parametri per l’impostazione automatica del punto di trigger possono essere solo quelli precedenti nel tempo reale, mentre ci si può riferire alla totalità delle letture (quindi comprendendo anche quelle successive) nell’analisi pre-processo del file con i dati RAW (penso che possiamo definire in questo modo il file di Theremino ECG che permette di riprodurre l’intero grafico delle forme d’onda).
In prima battuta, concordo con Livio quando dice che l’impiego dell’analisi di tutte le ampiezze prima dell’estrazione dei dati RR possa consentire un miglioramento globale della precisione delle durate RR.
Ma se ci ragiono con più attenzione, mi rendo conto che il tracciato potrebbe essere affetto da variazioni di ampiezza durante il periodo di acquisizione dei dati.
Il motivo più banale, e forse più probabile, è la variazione di conduttività del contatto tra elettrodi e pelle, a seguito di movimenti del soggetto, ma non possiamo escludere variazioni di ampiezza della forma d’onda indotte dal sistema stesso che stiamo osservando.
Anzi, potrebbe anche essere interessante fare una valutazione statistica delle variazioni di ampiezza in riferimento alle misure HRV.
Ovviamente, questo tipo di valutazione sarà difficilissimo, dato il legame strettissimo tra i due valori, almeno finché utilizziamo un trigger di ampiezza per valutare il picco R.
Sto pensando (e forse è lo stesso pensiero di Theremino) a un metodo diverso.
Anziché riferire il trigger a un valore di ampiezza, perché non riferirlo a un valore di derivata del segnale?
Si potrebbe estrarre la media dei valori massimi precedenti, e in questo modo creare un range di auto trigger relativamente ampio (comunque più ampio dei valori minimi e massimi dei picchi precedenti), entro il quale fare un’ulteriore analisi della derivata del segnale, e in questo modo localizzare esattamente il punto nel quale la forma d’onda ha derivata 0, ovvero localizzare la cresta dell’onda.
Il primo filtro riferito ai valori di ampiezza permette di escludere dal calcolo della derivata quelle parti della forma d’onda diverse dal picco R.
Questo sistema ha un difetto: la sua precisione dipende direttamente dal numero di campioni al secondo con il quale vengono acquisiti i dati RAW, per cui potrebbero non esistere due campioni appartenenti al un punto della curva con derivata 0.
Una alternativa potrebbe essere quella di localizzare due punti di derivata leggermente diversa da 0, uno prima e uno dopo il picco massimo, e calcolare l’istante R in mezzo tra le due letture.
Mi rendo conto che un sistema di questo tipo richiede parecchio calcolo e molta programmazione, e penso che valga la pena di approfondire per capire se abbiamo davvero bisogno di questa precisione.
Il prossimo passo è la compilazione a mano di alcuni file di dati RR, simulando diverse situazioni standard e inserendo errori di misura di 5 ms o meno, per vedere di quanto cambiano i risultati in Kubios.

Vi lascio un nuovo link molto interessante.
https://www.biot.it/images/pdf/Dossier-HRV-e-ambiti-applicativi.pdf

Ciao
Maurizio