% Sazba Krystof Sara <xsarak00@stud.feec.vutbr.cz> 2019/2020

%%
\chapter{Biologické signály}
\label{chp:biosignaly}

Biologické signály (biosignály) jsou produkovány živými objekty (buňkami, tkáněmi, celými organismy) a~lze je považovat za~určitý ukazatel viability organismu. \cite{kozumplik,mornstein}

\section{Podstata a~rozdělení}

Živý organismus lze považovat za~otevřený systém, který je schopen přijímat informace, zpracovávat je a~předávat je zpět svému okolí. Snímáním a~analýzou těchto informací je možné systém identifikovat a~provádět diagnostiku případných abnormalit. Jako zásah do~systému lze naopak označit terapii či studium reakcí na~podněty (viabilitu, excitabilitu). \cite{mornstein} 

Biosignály nesou informace o~stavu organismu a~tyto jsou zakódované v~analogových projevech, které můžeme snímat. Jejich dekódováním a~analýzou je možné informaci poté interpretovat a~získat celkový obraz. \cite{mornstein}

\subsubsection{Dělení}

Obecně lze považovat biosignál za~projev určitého fyzikálního pole (elektromagnetického, akustického apod.), které je možné pomocí vhodné aparatury z~organismu snímat. Je-li snímána pouze tzv. spontánní činnost orgánů, mluvíme o~\textbf{nativních biosignálech} (vlastní biosignály). Naopak snímáme-li odpověď daného orgánu na~určitý fyzikální podnět, stimul (elektromagnetické záření, mechanické vlnění), jedná se o~\textbf{biosignály evokované}. Někdy takové biosignály označujeme jako modulované (zprostředkované), jelikož daný stimul pouze ovlivňují (např. částečně absorbují). \cite{kozumplik, mornstein}

Mezi nativní můžeme zařadit například biosignály:

\begin{itemize}
    \item elektrické (svalová a~nervová činnost; snímány pomocí povrchových či vpichových elektrod),
    \item akustické (šelesty, aktivita chlopní srdce; snímání mikrofonem),
    \item tepelné (teplota tělesného jádra, povrchu; termometrie, termografie),
    \item mechanické (změna objemu, tlaku, rychlosti, výkonu; snímání pletysmografy, tonometry, ergometry),
    \item chemické (časová změna koncentrace látek; pomocí elektrochemických biosenzorů) \cite{kozumplik,mornstein}.
\end{itemize}

Příkladem evokovaných, modulovaných biosignálů jsou především výstupy různých diagnostických modalit, především radiologických -- snímání prošlého rentgenového záření pacientem, signálu magnetické rezonance vodíkových jader vybuzených radiofrekvenčním pulzem či viditelného světla odraženého od~tkáně prstu. \cite{mornstein}

\section{Zpracování biosignálů}

V~současné době je standardem zpracovávat biosignály pomocí elektroniky a~číslicové techniky. Snímaný biosignál je proto nejdříve třeba pomocí vhodného měniče převést na~elektrický signál, který je často navíc pomocí zesilovačů amplifikován. Dalším krokem je digitalizace analogového signálu, která zahrnuje \textbf{vzorkování} (vytvoření konečného počtu vzorků signálu, diskrétní posloupnosti) a~\textbf{kvantování} (zaokrouhlení nekonečně přesné hodnoty na~definovaný rozsah). Tento proces zajišťuje analogově-digitální převodník (ADC). Digitální signál dále vstupuje do číslicového systému (počítače), kde podléhá zpracování, analýze a~případné klasifikaci. Schematicky je proces zobrazen na~obrázcích \ref{fig:schema_bio2digi} a~\ref{fig:predzpracovani_signalu_kozumplik}. \cite{kozumplik,mornstein,kolar}

\begin{figure}[H]
    \centering
    \resizebox{1\textwidth}{!}{%
        \tikzfig{tikz/figures/schema_bio2digital}
    }%
    \caption{Schéma převodu biologické informace organismu na~digitální signál. Upraveno podle \cite{mornstein}.}
    \label{fig:schema_bio2digi}
\end{figure}

\begin{figure}[H]
    \centering
    \resizebox{1\textwidth}{!}{%
    \tikzfig{tikz/figures/schema_zpracovani_biosignalu}
    }%
    \caption{Obecné schéma zpracování biosignálu. Upraveno podle~\cite{kozumplik}.}
    \label{fig:predzpracovani_signalu_kozumplik}
\end{figure}

\subsubsection{Předzpracování}

Předzpracování signálu slouží k~odstranění jeho nežádoucích či neužitečných složek (často se jedná o~šum). Nejčastějšími postupy předzpracování jsou filtrace a~kumulace signálu. Pomocí filtrace lze modifikovat určité frekvence či celá pásma filtry typu dolní propust (DP), horní propust (HP), pásmová propust (PP) a~pásmová zádrž (PZ). \cite{kozumplik}

\subsubsection{Analýza}

Analýza signálu slouží k~vytvoření množiny příznaků pro následnou klasifikaci. Mezi hlavní analytické postupy patří rozměřování (amplitudově-intervalový popis), segmentace (výběr optimálních úseků bez artefaktů), analýza spektra a~jeho vývoj v~čase (časově-frekvenční analýza) a~korelační metody (autokorelace, vzájemná korelace). \cite{kozumplik}

\subsubsection{Klasifikace}

Do klasifikačního algoritmu vstupují vektory příznaků a~výstupem je často zařazení do binární či ordinální skupiny. Klasifikačními úlohami se zabývají především postupy umělé inteligence (perceptrony, umělé neuronové sítě, strojové učení, expertní systémy). \cite{kozumplik}

%%
\chapter{Anatomie a~fyziologie srdce}
\label{chp:anatomie}

Srdce má pro lidský organismus zásadní význam. %Jeho čerpací funkce zajišťuje cirkulaci krve a~její dostatečnou distribuci do všech tkání. 
Následující strany se proto věnují popisu jeho základní stavby, funkce a~případných dysfunkcí.

\section{Srdce jako pumpa}

Z~hlediska topologie je srdce uloženo v hrudníku na dolním rozhraní pravé a~levé plíce, zdola (kaudálně) pak naléhá svým hrotem na~bránici a~zadní (posteriorní) částí komunikuje s~jícnem a~průdušnicí. Anatomicky je srdce rozděleno na~pravou a~levou část, které jsou dále složeny ze~síní a~komor. Schematicky je anatomie srdce ilustrována obrázkem \ref{fig:anatomie_srdce}. \cite{interna}

\begin{figure}[H]
    \includegraphics[width=1\textwidth]{obrazky/anatomie_srdce.png}
    \caption{Základní anatomie srdce. Červeně znázorněn síňový a~komorový systém a~převodní systém srdeční; modře chlopenní systém a~černě hlavní cévy srdce. Převzato z~\cite{kozumplik}.}
    \label{fig:anatomie_srdce}
\end{figure}

Z~velkého tělního oběhu je krev nasávána do~pravé síně pomocí horní a~dolní duté žíly. Skrze trikuspidální (trojcípou) chlopeň pokračuje krev do~pravé komory, odkud je následně přes poloměsičitou chlopeň vypuzena do~malého tělního oběhu plicní tepnou k~plícím, kde dochází k~okysličení (zvýšení podílu oxygenovaného hemoglobinu) a~eliminaci oxidu uhličitého. Plicními žílami se tato dostává do~levé části srdce, nejdříve do~síně a~přes mitrální (dvojcípou) chlopeň následně do~levé komory. Oběh je nakonec uzavřen vypuzením krve aortální poloměsičitou chlopní do velkého tělního oběhu. \cite{interna, mourek}

\subsubsection{Mechanika stahů}

Pro~zachování kontinuálního toku krve systémem je třeba určité rytmičnosti a~koordinace stahů jednotlivých částí srdce, především komor. Tok zajišťuje čerpací funkce srdce, která je složena z~fáze kontrakce (systola), kdy dochází k~vypuzení krve do~tepen, a~ochabnutí (diastola), kdy je naopak krev nasávána velkými žílami do síní. Jedním z~důležitých hemodynamických parametrů je minutový srdeční výdej, který udává množství vypuzené krve při systole komor (tepový objem) za jednu minutu; jde tedy o~součin tepového objemu a~tepové frekvence. \cite{interna, mourek}

\subsubsection{Převodní systém srdeční}

Periodicita střídání systol a~diastol je řízena srdeční automacií -- buňkami převodního systému srdečního. Jde o~specifickou srdeční tkáň, jež nemá schopnost kontrakce, ale která slouží jako zdroj vzruchů pro kontrakci pracovního myokardu. Přehled kaskády převodního systému ilustruje obrázek \ref{fig:anatomie_srdce}. \cite{interna, mourek}

Systém počíná sinoatriálním (SA) uzlem, kde se nachází primární centrum udávající srdeční rytmus (pacemaker). Vzruch postupuje do uzlu atrioventrukulárního (AV), kde dochází k~jeho zpomalení před převodem ze~síní na~komory. Následně je veden pomocí Hisova svazku ke~komorám. V~průběhu mezikomorového septa se dráha dělí na pravé a~levé Tawarovo raménko a~končí Purkyňovými vlákny na~spodní (kaudální) a~vnější straně komor. \cite{interna, mourek}

\subsubsection{Rytmus}

Normální rytmus vycházející ze~SA uzlu je označován jako sinusový. Při jeho poškození přebírají roli pacemakeru další centra (AV uzel, případně ještě centra ve~stěně komor). Ačkoliv je fungování srdce dalšími centry vzruchů pojištěno, nejedná se o plnou náhradu SA uzlu, jelikož je pak frekvence rytmu výrazně nižší a~srdce pak často není schopno správně fungovat při náhlé zátěži. K~analýze abnormalit (nejenom) rytmu nejlépe slouží elektrokardiogram (EKG). \cite{kankova_patfyz,novakova}

Jakákoliv odchylka od fyziologického stavu -- ektopický původ vzruchu, způsob šíření či jeho délka, resp.~frekvence -- je označována jako arytmie. K~velmi nestandardnímu jevu může dojít při ischemické chorobě srdeční, kdy se poškozenou tkání šíří vzruch pomaleji (vzniká elektrická nehomogenita) a~může vzniknout tzv. krouživý vzruch (re--entry). Jedná se o~závažný stav, kdy při takovém přenosu na komory vzniká jejich fibrilace a~dochází k~hemodynamickému selhání (krev není vypuzována ze srdce). Objevuje se zástava oběhu a~ztráta pulzu. Při zachovalé elektrické aktivitě lze tento stav napravit defibrilačním výbojem a~je třeba okamžitě zahájit nepřímou masáž srdce. \cite{kankova_patfyz}

Centra pro řízení srdeční činnosti jsou umístěna ve~Varolově mostu. Humorálně je srdeční činnost regulována katecholaminy adrenalinem a~noradrenalinem, které působí budivě prostřednictvím sympatiku. Protichůdně účinkuje acetylcholin skrze parasympatikus. Srdce samotné oplývá (auto)regulací celulární, kdy náplň srdce přímo úměrně ovlivňuje sílu kontrakce -- při větší náplni komor dojde k~silnější kontrakci (Starlingův zákon). \cite{kankova_patfyz,mourek}

\section{Projevy činnosti}

Srdce lze navenek fyzikálně vyšetřit čtyřmi způsoby: poslechem (auskultací), pohmatem (palpací), poklepem (perkusí) a~pohledem (inspekcí). Častěji je vyšetřován palpačně pulz na periferii a~poslechem srdeční ozvy pomocí fonendoskopu. Velmi důležitým projevem činnosti je také elektrická aktivita srdce (EKG), která bude podrobněji rozebrána v~kapitole \ref{chp:ekg}. \cite{interna, mourek}

\subsubsection{Pulz}

Jedná se o~arteriální pulzování, které se jako tlakově-objemová vlna šíří tepnami od~srdce k~periferii. Vlna se šíří rychleji než krev samotná. Rychlost této vlny je ovlivňována jak průřezem cévy, tak její pružností, a~směrem k~periferii roste. Povrchovým snímáním tepu je získán tzv. \emph{sfygmogram} (obrázek \ref{fig:sfygmogram}). Jedna jeho perioda sestává ze~strmé vzestupné části a~mírněji klesající sestupné části, na které je často patrný dikrotický zářez. Tento charakteristický znak je způsoben zpětným tokem krve v~aortě, který je zastaven semilunární chlopní. Současným snímáním sfygmogramu a~EKG lze určit i~tzv.~tranzitní čas $\Delta t$, který měříme jako čas uplynulý od~vrcholu kmitu R (M na~obrázku \ref{fig:sfygmogram}) a~začátkem prudkého vzestupu sfygmogramu. Znalostí tohoto parametru můžeme charakterizovat mj. tuhost aorty. \cite{mourek,novakova,ward_fyziola}

\begin{figure}[H]
    \centering
    \includegraphics[width=0.6\textwidth]{obrazky/sfygmogram_a_carotis.png}
    \caption{Simultánní průběh sfygmogramu a~EKG. Zarovnáním signálů vynikne tranzitní čas $\Delta t$. Převzato z~\cite{novakova}.}
    \label{fig:sfygmogram}
\end{figure}

\subsubsection{Srdeční ozvy}

Nárazem toku krve na~stěny síní, komor a~cév dochází ke~vzniku zvukových fenoménů. Důležitými ozvami jsou nárazy na~chlopenní systémy, kdy při uzavření cípatých chlopní registrujeme 1.~srdeční ozvu a~při uzavření poloměsičitých chlopní 2.~srdeční ozvu \cite{mourek}. Jsou-li slyšitelné v~rámci jedné periody srdeční činnosti i~další ozvy, jedná se často o~poruchy funkce komor či o~změny na~chlopních \cite{interna}. Zvukové projevy srdce lze snímat z~povrchu těla přiložením ucha, lékařského fonendoskopu či citlivého mikrofonu na~hrudník vyšetřovaného. V~posledním jmenovaném případě se jedná o snímání fonokardiogramu (FKG). \cite{kolar,mourek}

\section{Elektrokardiogram (EKG)}
\label{chp:ekg}

Jedná se o~záznam elektrické aktivity srdce snímané z~povrchu lidského těla. Standardizované uspořádání se skládá ze~tří končetinových svodů I--III (mimo pravou nohu) a~šesti hrudních svodů V1--V6. Často se ještě využívá tzv. augmentovaných (zesílených) končetinových svodů aVL, aVR a~aVF. Typický průběh periody EKG ilustruje obrázek \ref{fig:ekg-krivka}. Amplituda a~polarita křivky odpovídá okamžité velikosti a~směru celkového srdečního vektoru, jenž je složen z~elementárních projevů elektrické aktivity buněk myokardu a~převodního systému srdečního. \cite{mourek}

\begin{figure}[h]
    \centering
    \includegraphics[width=0.65\textwidth]{obrazky/EKG.png}
    \caption{%Křivka elektrokardiogramu s~popisem jednotlivých vln a~úseků při jednom cyklu signálu EKG. Popsány jsou také parametry standardního čtverečkového papíru. 
    Popis jednotlivých vln a~úseků jednoho cyklu EKG.
    Převzato z~\cite{kozumplik}.}
    \label{fig:ekg-krivka}
\end{figure}

\subsubsection{Morfologie}

Na~křivce EKG lze popsat několik charakteristických vln a~úseků. Vlna P odpovídá systole síní a~bývá interpretována jako vzruchová aktivita SA uzlu, komplex QRS má na svědomí silná systola komor (časově odpovídá také diastole síní, kterou zakrývá) a~vlna T reflektuje postupné ochabování (diastola) komorového myokardu. U~mladších jedinců je možné navíc detekovat také relativně slabou vlnu U, která pravděpodobně odpovídá pomalejší repolarizaci Purkyňových vláken. \cite{interna,mourek}

% U vlna https://www.techmed.sk/u-vlna/

Interval PR je způsoben zpomalením vzruchu v~AV uzlu, čímž je zajištěno také oddělení kontrakce síní a~komor. Dalším úsekem je interval ST, jehož izoelektrická část odpovídá tzv. fázi plató, kdy buňka pracovního myokardu zůstává depolarizovaná a~není tak možná její další kontrakce (je tedy vyloučen tetanický stah jako u~příčně pruhovaného svalu). %Tento fenomén je zajištěn pomalým tokem vápenatých iontů do buněk, ve kterých je tak dočasně udržován relativní kladný náboj.
Abormality segmentu ST (elevace, resp. deprese) jsou častým ukazatelem ischemické choroby srdeční.
\cite{kankova_patfyz,mourek}

\subsubsection{Analýza}

Užitečný signál EKG je nejenom komplexní směsí různých frekvenčních pásem (obrázek \ref{fig:ekg_spektrum}), často navíc bývá zarušen složkami parazitními (síťový brum 50/60~Hz, nízkofrekvenční drift způsobený mj. dýcháním, vysokofrekvenční rušení svalovou aktivitou pacienta) \cite{kozumplik}. Postup odstranění jednotlivých šumových složek je třeba promýšlet vzhledem k~zájmovému frekvenčnímu pásmu signálu (využíváme-li digitální filtraci k~úpravě signálu). Je třeba mít také na~paměti, že jakákoliv filtrace ovlivňuje tvar EKG křivky.  Řešením je využití digitálních filtrů s~konečnou impulzní charakteristikou (Finite Impulse Response, FIR), které mohou být navrženy s~ideální lineární fázovou charakteristikou, která signál EKG nezkreslí. \cite{kolar}

\begin{figure}[H]
    \centering
    \includegraphics[width=0.55\textwidth]{obrazky/spektrum_EKG.png}
    \caption{Spektrum EKG signálu s~vyznačením frekvenčních pásem hlavních složek EKG. Převzato z~\cite{kozumplik}.}
    \label{fig:ekg_spektrum}
\end{figure}

Z~hlediska analýzy EKG je základním krokem detekce komplexu QRS, resp. vln R, díky čemuž lze následně v~signálu detekovat i~vlnu P a~vlnu T pro další následné postupy (např. analýza alternací vlny T) \cite{kozumplik}. Jedno z~možných řešení detekce QRS komplexu je popsáno v~kapitole \ref{chp:alg-ekg}.

\section{Fotopletysmogram (PPG)}

Fotopletismografická křivka je optickým biosignálem pulzové vlny snímaným zpravidla z~periferie těla (prsty rukou). Základním principem zisku PPG křivky je aplikace malého zdroje světla na~zájmovou část těla za~současného snímání odraženého (reflexní režim) či prošlého (transmisní režim) světla citlivým fotodetektorem. Biofyzikální podstata tkví v~rozdílu pohlcování světla vlásečnicemi a~okolní tkání. Fluktuace objemu krve ve~vlásečnicích pozorované oblasti pak způsobí fluktuaci intenzity světla v~přijímaném obraze. Nutno ovšem podotknout, že z~popsané podstaty snímání PPG signálu vyplývá, že surový signál je invertovaný (největší prokrvení tkáně způsobí nejvyšší útlum odraženého světla a~nejslabší příjem). V~dalším textu se tak předpokládá, že surový signál byl upraven tak, aby odpovídal obrázku \ref{fig:typical_ppg}.
\cite{photopletysmography}

\begin{figure}[H]
    \centering
    \includegraphics[width=0.5\textwidth]{obrazky/typicka_ppg_krivka.png}
    \caption{Typická PPG křivka podobná sfygmogramu. Převzato z~\cite{siddiqui}.}
    \label{fig:typical_ppg}
\end{figure}

Signál PPG může být tak díky své povaze snadno využit k~určení tepové frekvence srdce, jelikož odráží relativní změny objemu tkáně tokem krve způsobené srdeční pumpou. Signál má dvě složky -- pulzující střídavou, která odpovídá tlakovým změnám tkáně -- pulzu, a~stejnosměrnou, která odráží míru absorpce světla ve~tkáni, resp. její prokrvení. \cite{siddiqui}

%%
\chapter{Stanovení TF člověka}

Tepová frekvence (TF) patří mezi základní parametry popisující vitální stav člověka. Je proto neodmyslitelnou součástí monitorovacích zařízení na~lůžkových oddělení nemocnic \cite{kolar}. Následující strany se věnují popisu konvenčních metod zisku TF založených na~různých fyzikálních principech a~zvlášť pak popisu zisku TF z~dat získaných pomocí chytrého telefonu.

\section{Konvenční techniky měření TF}

Metod vedoucích přímo či nepřímo k~získání hodnoty TF existuje v~lékařské technice celá řada. Následující výčet popisuje ty nejčastěji užívané.

\subsubsection{Palpační metoda}

Klinicky nejzákladnější metodou vyšetření projevů srdeční aktivity je nahmatání pulzu na~povrchově přístupných arteriích. Ustáleným standardem je palpace pulzace na \emph{arteria radialis} při zápěstí ruky. Vyšetření provádí druhá osoba alespoň třemi bříšky prstů ruky slabým tlakem přiloženými na~arterii. Ke~stanovení TF je třeba ještě hodinek se~sekundovou ručičkou či klasických stopek. Vyšetřující ve~zvoleném intervalu počítá zaznamenané tepy a~po skončení intervalu hodnotu přepočítá na~minutovou TF. Z~toho důvodu se často jako interval vybírá právě jedna minuta; zachováním relativní přesnosti však lze interval měření zkrátit i~na~30 sekund. \cite{novakova}

\subsubsection{R~vlny EKG}

TF patří společně s~určením vektoru srdeční osy a~jednotlivých časových intervalů EKG křivky ke~globálním parametrům EKG (určují se pro všechny svody). TF je konkrétně určena jako průměrný interval RR (vzdálenosti vln R) \cite{kozumplik}. Díky své robustnosti a~rozšíření je EKG záznam užíván jako reference (zlatý standard) pro stanovení přesnosti jiných přístupů stanovení TF. \cite{siddiqui}

\subsubsection{Fonokardiografie (FKG)}

Jak již bylo uvedeno, srdeční ozvy jsou jedním z~projevů srdeční činnosti, které můžeme snímat a~zaznamenávat. K~záznamu zvukových fenoménů je využíváno mikrofonů, jež mohou být založeny na~různých fyzikálních principech převodu změny akustického tlaku (mechanického vlnění) na~elektrický signál -- mikrofony elektrodynamické, piezoelektrické, elektrostatické či elektretové. Získaný signál je poté číslicově zpracován a~jeho analýza často probíhá ve~spektrální oblasti.  \cite{kolar}

TF ze~signálu lze získat také analýzou v~časové oblasti. Možným přístupem je využití rozdílné amplitudy 1. a~2. srdeční ozvy. Umocněním signálu dojde k~potlačení nižších amplitud a~zvýraznění amplitud silnějších (typicky pro 1. srdeční ozvu). Použitím filtru typu PP s~mezními frekvencemi $0,7$--$3,66$~Hz, resp. 42--220 tepů/min jsou vybrány pouze složky odpovídající TF člověka. Píky odpovídající 1. srdeční ozvě lze dále zvýraznit použitím Teager-Kaiserova energetického operátoru (TKEO), čímž je vytvořena obálka signálu. Vhodným nastavením prahu lze následně detekovat v~předzpracovaném signálu píky, určit jejich poziční diference a~stanovit hodnotu průměrné TF. \cite{fkg_processing}

\subsubsection{Pletysmografie}

Pletysmografie je metodou snímání tlakových změn orgánů či celého těla pomocí různých typů převodníků. Změny objemů jsou nejčastěji způsobeny dýcháním a~časově proměnnou náplní cév, kterou lze dobře registrovat v~končetinách. Časový průběh tlakových změn a~informaci o~stavu daného orgánu pak nese pletysmografická křivka, jejíž průběh v~případě manžetové pletysmografie koresponduje s~pulzovou vlnou. \cite{kolar,rozman}

Speciální metodou je fotoelektrická pletysmografie. Je založena na~využití světelného zdroje, jehož paprsky prochází tkáněmi prstu, kde v~různé míře dochází k~jejich odrazu, nebo pohlcení. Fotopletysmograf může z~podstaty fungovat ve dvou režimech: reflexním (odrazivém) a~transmisním (průsvitovém). Reflexní uspořádání (obrázek \ref{fig:fotopletysmografie_kolar}) je konstrukčně jednodušší, jelikož při něm není třeba pevné uchycení na prstu vyšetřovaného. Transmisní typ využívají především pulzní oxymetry, které současně s~TF měří saturaci krve kyslíkem (SaO$_2$). \cite{kolar}

\begin{figure}[H]
    \centering
    \includegraphics[width=0.7\textwidth]{obrazky/fotopletysmografie_kolar.png}
    \caption{Reflexní fotopletysmografie. Převzato z~\cite{kolar}.}
    \label{fig:fotopletysmografie_kolar}
\end{figure}

Problémem pletysmografických metod je zisk pouze relativních hodnot (tlaku, objemu) a~v případě fotopletysmografie především problém pohybových artefaktů. Pohlcování světla je také závislé na~nasycení krve, a~to v~širokém spektru vlnových délek. Optimem je proto použití infračervených (IR) fotodiod (vlnové délky nad 800~nm), kdy je vliv nasycení krve minimální. \cite{kolar} 

Ze~signálu PPG již poté detekcí píků a~prahováním lze získat střední či okamžitou TF --- podrobněji rozebráno v~kapitole \ref{chp:alg-top}, kde je popsán navržený algoritmus.

\subsubsection{Další metody}

Speciálním přístrojem ke~stanovení TF v~nemocničních provozech je kardiotachograf \cite{kolar}. Hodnotu TF lze získat i~z~pulzních oxymetrů, které primárně měří saturaci krve kyslíkem (SaO$_2$), avšak ze~signálu PPG sekundárně zobrazují i~okamžitou TF. Tyto často využívají také zelenou část spektra a~pro stanovení TF vycházejí z~frekvenční analýzy PPG. Oscilometrické měřiče tlaku taktéž z~podstaty svého principu dokážou stanovit okamžitou a~průměrnou hodnotu TF v~pásmu měřených oscilací. \cite{kolar,siddiqui,rozman}.

\section{Využití chytrého telefonu}

Odhadem tepové frekvence člověka pomocí mobilního telefonu se zabývá mnoho autorů. Prakticky jsou užity různé techniky zisku signálu pro výpočet TF: může jít o záznam zvuku pomocí mikrofonu na hrudníku pacienta (FKG), využití akcelerometru, který snímá pohyby hrudníku pacienta, či speciální varianta, kdy jsou snímány pohyby celého pacienta (balistokardiogram, BKG). \cite{siddiqui,bcg_processing}

Co se týká signálu PPG, je možné jej získat mimo prstů také z~videozáznamu obličeje pacienta. Tento postup však pro online (v~reálném čase) detekci vyžaduje mnoho výpočtů na pozadí a~značně tak čerpá prostředky chytrého telefonu. \cite{siddiqui}

\subsubsection{Frekvenční oblast PPG}

Analýzou ve~frekvenční oblasti se zabývají také autoři pracující s~mobilními telefony. Jedním přístupem budiž použití Gaussovských bazí s~následnou aplikací Hilbertovy spektrální analýzy, kdy dominantní okamžité spektrální frekvence odpovídají okamžité hodnotě TF \cite{siddiqui}. Možností je také offline užití vlnkové transformace, díky které je dosaženo velmi velké přesnosti vůči standardu EKG \cite{nemcova_vitek}. Dominantní frekvence ve~spektru lze analyzovat dále pomocí Welchova výkonového spektra v~pásmu 0,5 až 2~Hz \cite{zaman}.

\subsubsection{Jasová intenzita snímku}

Jedná se o~konvenční metodu stanovení TF z~PPG mobilním telefonem \cite{zaman}. Zisk PPG signálu je zpravidla zajištěn pomocí ukazováčku překrývajícího čočku kamery s~rozsvícenou svítilnou. Následně je proveden součet pixelů snímku, které mají vyšší intenzitu jasu než je prahová hodnota. Prahová hodnota $T$ (rovnice \ref{eq:prahova_hodnota_T}) je určena pomocí rozdílu extrémů intenzit $I_{max}$ a~$I_{min}$: \cite{siddiqui}

\begin{equation}
    T = 0,99 \times (I_{max} - I_{min})
    \label{eq:prahova_hodnota_T}
\end{equation}

Optimální volbou je použití červeného kanálu videozáznamu. V~modrém a~zeleném kanálu není srdeční cyklus zřetelný a~jejich použití tak může zanášet do signálu parazitní šum \cite{siddiqui}. Výpočet TF pak získáme jako:

\begin{equation}
    TF = \frac{\si{f_{vz}}}{\text{průměr počtu vzorků mezi píky PPG}} \times 60~\text{tepů/min},
    \label{eq:vypocet_tf_siddiqui}
\end{equation}

kde $f_{vz}$ je vzorkovací frekvence signálu (též Frames per second, FPS pro kameru telefonu).

Snížení výpočetní náročnosti lze dosáhnout také výběrem pouze určité zóny snímku, zpravidla takové, kde dochází k~nejvyšším oscilacím jasu a~které tak nesou nejvíce informace o~pulzující složce. \cite{zaman}

Alternativní metodou, která pracuje také s~intenzitami jasu, jest detekce hran. Tímto přístupem zpravidla dojde k~vytvoření binárního snímku. Absolutní míra zastoupení pixelů jednoho pólu snímku pak slouží k výpočtu vzorku PPG. \cite{zaman}

%%
\chapter{Mobilní aplikace ve~zdravotnictví}
\label{chp:mhealth}

\section{Telemedicína a~mHealth}

S~rozvojem mobilních platforem a~přenosných zařízení dochází také k~rozšiřování pole působení a~rozmachu mobilních aplikací. Tím také roste potenciál pro využití mobilních zařízení a~aplikací v~medicíně. Světová zdravotnická organizace (WHO) takový obor souhrně označuje jako \emph{Mobile Health} (mHealth). Přenosná zařízení užívaná v~medicíně umožňují mj.~měření tepové frekvence, hladiny glukózy, hodnoty krevního tlaku, teploty povrchu těla či mozkové aktivity pacienta. Časté jsou informativní a~motivační aplikace využívané jako tréningové doporučení pro fitness. \cite{green_paper_mhealth}

Pomocí bezdrátových technologií je možné získávaná data sdílet přímo s~lékařem, který díky konzistentní dlouhodobější akvizici některých zdravotních údajů může zlepšit případnou diagnózu a~léčbu. Mobilní zařízení tedy mohou hrát nezanedbatelnou roli v~telemedicíně, tedy lékařské péči poskytované na~dálku, což dodává pacientům větší autonomii a~svobodu. Potenciál je především v~přesvědčení společnosti k~lepšímu životnímu stylu pomocí dostupných prostředků, se~kterými jsou v~kontaktu každý den. Zdravější společnost totiž uleví již tak napjatému rozpočtu pro zdravotnictví. Z~podstaty věci se rovněž nabízí rozšíření profylaxe veřejného zdraví díky brzké diagnostice hrozícího chronického onemocnění. Je nicméně důležité zajistit, aby využívaná přenosná zařízení a~aplikace byly bezpečné pro použití a~nemohlo dojít špatným použitím k~újmě pacienta. \cite{green_paper_mhealth,fda_guidance}

Co se týká zdravotnického sektoru samotného, dle některých studií by větší implementace mobilních platforem dokázala snížit časovou zátěž zdravotníků až o~30~\%. Analýza tzv.~big data může zase pomoci k~lepším epidemiologickým modelům, a~tak i~lepším prognózám možných epidemií díky specifičtější a~aktuálnější představě o~stavu veřejného zdraví. Zdravotnická zařízení jsou díky tomu lépe připravená na~možné rozsáhlejší epidemie. \cite{green_paper_mhealth,fda_guidance}

\section{Problémy}

Jak již bylo uvedeno, tzv. big data mohou pomoct ke~zlepšení aktuálních postupů péče. Na~druhou stranu vyvstává otázka ochrany těchto dat, jelikož obsahují značně citlivé informace o~zdravotním stavu jedince. Obavy zesilují také zjištění, že až polovina aplikací trpí závažnými úniky osobních informací, díky kterým lze osobu poté snadno identifikovat. Jeden z~problémů tedy spočívá v~možnosti zneužití těchto dat třetí stranou. Nepodkročitelným minimem při budování systému sdílení zdravotních dat by proto měla být možnost autentizace pacienta a~\emph{end-to-end} šifrování dat. \cite{green_paper_mhealth}

Trh s~mobilními aplikacemi strmě roste a~je tak čím dál tím obtížnější najít kvalitní a~důvěryhodnou aplikaci. Často chybí hlubší testování, možnost dohledání vývojáře či autora ideje, o~klinických testech nemluvě. Z~toho plyne i~problém určení osoby odpovědné za~případnou způsobenou újmu. V~mnoha zemích není jasné, zda takovou osobou je vývojář, výrobce zařízení, vyšetřující lékař, jenž postavil diagnózu na zavádějících datech či poskytovatel internetového připojení (ISP). Určitým posunem ve standardizaci a~částečné certifikaci aplikací jsou databáze \emph{Health Apps Library} (NHS) ve Spojeném království, \emph{Happtique} v~USA a~\emph{European Directory of~Health Apps} na~území~EU. \cite{green_paper_mhealth}

%%
\section{Regulace a~certifikace}
\label{chp:tele-regulace}

Díky rychlému rozvoji mobilních technologií a~doprovodného software došlo také k~výraznému zpoždění vzniku úprav jejich použití. V~této věci je nápomocné doporučení amerického státního úřadu FDA, na které se odkazuje i~Evropská komise se svým \emph{Green Paper on mHealth}. \cite{green_paper_mhealth}

Pokud je aplikace určení zařízení pro diagnózu, léčbu anebo prevenci, jedná se o medicínské zařízení a spadá pod přímou regulaci FDA, a~to bez ohledu na platformu. Musí se však jednat o~takové aplikace, u~nichž by misinterpretace dat mohla způsobit \emph{značnou} újmu klienta, např. stanovením špatné diagnózy na základě dat z aplikace. Jako medicínské zařízení je označen i~obecný chytrý telefon, jehož svítilna by např.~sloužila k~vyšetření hrdla v~ordinaci praktického lékaře. Nemusí totiž splňovat podmínky řádného osvětlení místa zájmu apod. Regulované zařízení je pak takové, které podléhá definici FDA, splňuje určené požadavky a bylo FDA schváleno. \cite{fda_guidance}

Mobilní medicínská aplikace je taková, která slouží jako příslušenství k~již regulovanému medicínskému zařízení, či provádí proměnu mobilní platformy v~medicínské zařízení. Jako výrobce aplikace lze považovat toho, kdo se podílí na designu, vývoji a~úpravách mobilní aplikace; počítá se i~autor myšlenky aplikace. Hlavní obchodní platformy App Store (Apple Inc.) a~Google Play (Alphabet Inc.) za nabízené aplikace odpovědnost nenesou. Tu nenese ani ISP či provozovatelé cloudových služeb a~serverů. Pokud je aplikace zamýšlena k distribuci globálně, je vývojář či autor ideje považován za výrobce. \cite{fda_guidance}

Zamýšlená mobilní aplikace pro stanovení TF však do takové kategorie nespadá a~nemusí tak podléhat regulacím FDA, viz bod 6 dodatku A %\emph{Zásad pro funkce softwarových zařízení a~mobilních medicínských zařízení, Doporučení pro průmysl a~FDA} 
\cite{fda_guidance}:

\begin{quote}
    \uv{Specific examples of software functions that FDA does not consider to~be devices and with no regulatory requirements under the current laws administered by FDA include:

    [ \dots ]
    
    6. Software functions that are intended for individuals to log, record, track, evaluate, or make decidions or behavioral suggestions related to developing or maintaining general fitness, health or wellness [ \dots ]}
    
\end{quote}

\subsubsection{Certifikace}

Jednou z~aktuálně certifikovaných a~standardizovaných aplikací dostupných pro dominantní mobilní platformy (Google Play a~App Store) je aplikace Preventicus Heartbeats německé společnosti Preventicus GmbH. Aplikace dokáže snímat PPG signál z~prstu přiloženého na svítilně a~čočce kamery chytrého telefonu. Získaný signál dokáže dále analyzovat a~určit, zda se jedná o~sinusový či jiný rytmus (např. junkční vycházející z~AV uzlu). Senzitivita a~specificita klasifikace je okolo 95~\%. Nasnímaný signál je pak dále možné ve~standardizované podobě poskytnout ošetřujícímu lékaři jako spolehlivý doplněk vyšetření. \cite{preventicus}

%% 
\chapter{Programová prostředí}
\label{chp:programming}

\section{MATLAB}

Jedná se o~nástroj obsahující univerzální matematické knihovny. Název pochází z~anglického \emph{MATrix LABoratory} a~jak název napovídá, slouží především pro práci s~maticovým a~vektorovým počtem. V~podstatě se jedná o~interpret pro technické výpočty. Využívá se k~numerickým výpočtům, tvorbě prototypů programů, vývoji grafických uživatelských prostředí (\emph{Graphical User Interface, GUI}) či k~výuce matematiky a~technických předmětů na vysokých školách. %\cite{matlab-ucebnice}
Základem práce s~nástrojem MATLAB je příkazový řádek (konzole). Praktické je však příkazy seskupovat do skriptů a~funkcí, čímž je umožněno i~ukládání mezivýpočtů v~paměti (Workspace) pomocí proměnných. \cite{matlab-ucebnice} 

Symbolický zápis proměnných a~volání funkcí ze~speciální knihovny pro zpracování signálů je zapsána ve~výpisu \ref{lst:matlab}.

\begin{lstlisting}[
    frame=single,
    numbers=left,
    caption={Implementace digitální filtrace v~prostředí MATLAB pomocí knihovny Signal Processing Toolbox. Jedná se o~upravený výsek kódu algoritmu offline detekce TF ze~záznamu EKG (upraveno).},
    label=lst:matlab,
    basicstyle=\ttfamily\small,
    keywordstyle=\color{black}\bfseries\underbar,]
% Nacteni EKG zaznamu (knihovna EDFRead)
[~, data] = edfread(file);
ecg_data = data(1, :);
fs_ecg = 1000; % vzorkovaci frekvence zaznamniku EKG

%% QRS detektor; fitrace a predzpracovani
% FIR filtr PP 11-21 Hz, 301 vzorku impulzni ch.
b = fir1(301, [11/(fs_ecg/2) 21/(fs_ecg/2)], 'bandpass');
fil_sig = filtfilt(b, 1, ecg_data); 

% Umocneni signalu
pow_sig = fil_sig.^2;

% Vyhlazeni filtrem FIR typu DP, mezni 3 Hz, 101 vzorku
b2 = fir1(101, 3/(fs_ecg/2), 'low');
smooth_sig = filtfilt(b2, 1, pow_sig);
\end{lstlisting}


K~účelům práce bylo užito prostředí MATLAB R2019a pro prototypování algoritmu před implementací v~jazyce Swift. Dále zde bylo vytvořeno GUI pro načítání videozáznamů a~záznamů EKG subjektů, kde dochází na~pozadí k~digitálnímu zpracování daných biosignálů (PPG a~EKG). Použité algoritmy jsou popsány v kapitole \ref{chp:alg-top}.

\section{XCode}

XCode je integrované vývojové prostředí (\emph{Integrated Developement Environment}, IDE) sloužící k~návrhu a~tvorbě různorodých aplikací pro operační systémy společnosti Apple Inc. (iOS, macOS, tvOS a~watchOS). Nástroj XCode lze spustit pouze na~pracovní stanici se~systémem macOS; pro vývoj aplikací je proto třeba pracovat na~zařízeních jablečné společnosti či využít specifických cloudových služeb (př.~MacInCloud.com). Nástroj mj.~umožňuje testovat aplikace na~simulátoru chytrého telefonu, jakož i~na~reálném zařízení (iPhone, iPad, iPod Touch). Jelikož zamýšlená aplikace využívá ke~své funkci fotoaparát, nemá smysl ji~z~principu testovat na~simulátoru.
Pro testování aplikací na~reálném zařízení je dále třeba být registrovaným vývojářem (Apple Developer Program). 
\cite{vyvoj-ios}

%%
\section{Swift}

Swift je moderní objektově--orientovaný programovací jazyk od~společnosti Apple Inc. \cite{vyvoj-ios}. V~této práci byl využit právě pro vývoj samotné aplikace.

\begin{lstlisting}[
    frame=single,
    numbers=left,
    caption={Implementace výpočtu TF online detektoru v~jazyce Swift (upraveno).},
    label=lst:swift,
    basicstyle=\ttfamily\small,
    keywordstyle=\color{black}\bfseries\underbar,]
guard frameExtractor.arrayPPG.count > 50 else { return }
let diffPPG = frameExtractor.arrayPPGDiff.suffix(50)
let diffMin: Double = diffPPG.min() ?? 0
let diffMax: Double = diffPPG.max() ?? 1
let threshold = Double(koeficientPrahu) * (diffMax - diffMin)
let actualFrame: Int = frameExtractor.arrayPPGDiff.count - 1
    
// Prekroceni prahu -> urceni okamzite TF
if frameExtractor.arrayPPGDiff[actualFrame] >= threshold {
    let rozdil = Double(actualFrame - lastHitHR)
        
    // dolni propust pro 180 BPM
    if rozdil < 10 { return }
        
    mereniLabelTF.isHidden = !(lastHitHR > 0)
    let HR = Int(round(60 * ( 30 / rozdil )))
    mereniLabelTF.text = String(HR)
    arrayHR.append(HR)
    self.lastHitHR = actualFrame
    animujSrdce()
}
\end{lstlisting}

\subsubsection{Dispatch Queues}

Dispatch Queues (volně přeloženo \uv{odbavovací fronty}) slouží k~zefektivnění potřebných výpočtů, akvizice dat a~jejich následnému zpracování. Úkony jsou do front zařazovány již na úrovni jednotlivých metod (funkcí), kdy se jejich zavoláním přiřadí daný požadavek do dané fronty, kde je respektováno pořadí pro zpracování. Různé funkce je tak možné spouštět asynchronně. Hlavní předností front je snadná implementace a~absence ruční správy vláken procesoru (vlákna jsou frontám přidělována dynamicky systémem). \cite{apple-dispatch-queues}

Fronty se dle stylu zpracování dělí především na sériové a~souběžné. V první zmíněné jsou úkony vyhodnocovány postupně, kdežto ve druhé může být vyhodnocováno více úkonů současně, dovolují-li to prostředky zařízení. V~hlavním vlákně aplikace může být spuštěna tzv. Main dispatch queue, která je dostupná globálně pro jakékoliv další metody. Této fronty je v~navržené aplikaci užito jako prostředku k~akvizici snímků z~kamery. Z~principu se jedná o~speciální modifikaci sériové fronty a~často se využívá pro synchronizaci úkonů na~pozadí. \cite{apple-dispatch-queues}
%\footnote{https://developer.apple.com/library/archive/documentation/General/Conceptual/ConcurrencyProgrammingGuide/OperationQueues/OperationQueues.html}

\subsubsection{Delegát a~protokol}

Delegát je speciální typ objektu, který figuruje jako zastoupení jiného objektu. Ostatní objekty komunikují s~delegáty pomocí zpráv (při změně obsahu, po klepnutí na~pole apod.) a~delegát po~zpracování zprávy může např. provést změnu v~UI (skrytí virtuální klávesnice, vykreslení grafu). Pomocí delegátů komunikuje mnoho dynamicky se chovajících prvků uživatelského rozhraní (\emph{User Interface}, UI). Aby mohl nějaký objekt, prvek využít služeb delegáta, musí splňovat předepsaný protokol -- v praxi se jedná o~nutnost programově implementovat povinné funkce, metody, aby byla zachována konzistence dat a~struktur UI.
\cite{vyvoj-ios}

\subsubsection{View a~ViewController}

\texttt{View} je základní jednotkou zobrazení -- účelem je zobrazování obsahu (text, obrázek, ovládací prvky) a~předávání ovládacích gest (klepnutí, posun, rotace) kontrolerům obsahu (\texttt{ViewController}). Kontroler přijímá instrukce od~uživatele, zpracovává je a~obsah k~zobrazení posílá zpět prvkům \texttt{View}. Kontroler může využít i~tzv.~Modelu, tedy speciální oddělené třídy určené pro konkrétní zpracování dat (výpočty, algoritmy). Celá taková kaskáda se poté označuje jako MVC (Model-View-Controller). \cite{vyvoj-ios}

\section{Operační systém iOS}

Jedná se o~operační systém (OS) pro mobilní zařízení společnosti Apple Inc. Hierarchicky se dělí na čtyři vrstvy, které vyplňují prostor mezi hardwarem zařízení a~koncovou mobilní aplikací. Schematicky je struktura systému zobrazena na~obrázku \ref{fig:schema_systemu_ios}. \cite{vyvoj-ios}

\begin{figure}[H]
    \centering
    \resizebox{0.8\textwidth}{!}{%
        \tikzfig{tikz/figures/schema_ios}
    }%
    \caption{Hierarchie systému iOS. Upraveno podle \cite{vyvoj-ios}.}
    \label{fig:schema_systemu_ios}
\end{figure}

\subsubsection{Cocoa Touch}

Jedná se o~odnož frameworku Cocoa, který vynalezla společnost NeXT, Inc., a který je dnes již běžnou součástí systému macOS. Cocoa Touch je narozdíl od~své mateřské instance určen výhradně jako podpora tvorby aplikací pro mobilní zařízení společnosti Apple Inc. Obsahuje tak fundamentální prostředky pro práci s~hardwarem přístroje, díky čemuž není třeba se zabývat programováním na nižší úrovni (\textit{low-level programming}). I~takový postup je však možný, jelikož je původní verze frameworku napsána v~jazyce Objective-C (ObjC), která je objektovou nástavbou nízkoúrovňového jazyka C. \cite{zdrojak-ios-swift}

Vrstva Cocoa Touch je nejblíže aplikaci, obsahuje proto frameworky pro tvorbu uživatelského rozhraní.
Lze zde nalézt důležité součásti jako podporu běhu více procesů současně (multitasking), podporu dotyku a~rozpoznávání gest či podporu notifikací. Prioritou je využívání funkcí z~této vrstvy, jelikož tvoří jakési odladěné zastřešení vrstev nižších. \cite{vyvoj-ios}

\subsubsection{Media}

Vrstva poskytující práci s~grafikou, zvukem a~videem. Jsou zde obsaženy klíčové audiovizuální knihovny (př. AVFoundation) i~knihovny zodpovědné za streamování multimediálního obsahu (AirPlay). \cite{vyvoj-ios}

\subsubsection{Core Services}

Hlubší systémová vrstva zodpovědná za~funkčnost různých služeb uvnitř aplikací. Lze zde nalézt základní systémový framework Foundation, knihovny pro práci se síťovým rozhraním, SIM kartou, cloudovou službou iCloud, geolokačními službami či interní databází SQLite. \cite{vyvoj-ios}

\subsubsection{Core OS}

Nejnižší systémová vrstva přímo nad hardwarem zařízení. Knihovny zde obsažené jsou využívány pro zabezpečovací účely či pro komunikaci s~externím hardwarem (senzory, připojitelná zařízení). \cite{vyvoj-ios}

\subsubsection{Sandbox a~ukládání dat}

Každá aplikace běží v~rámci systému iOS jako izolovaný kontejner v~prostředí Sandbox. Veškerá data, která aplikace lokálně ukládá, jsou tak uložena ve~striktně oddělených strukturách, aby se zamezilo jakémukoli potenciálnímu úniku dat do~jiných aplikací. Kontejner zpravidla obsahuje tři základní adresáře pro ukládání dat -- \textit{Documents, Library} a~\textit{tmp}. První zmíněný adresář umožňuje sdílení dat s~uživatelem pomocí aplikace iTunes, další dva adresáře slouží k~ukládání systémových aplikačních dat a~jsou již běžnému uživateli skryté.
\cite{vyvoj-ios}

\subsubsection{Přístup k~systémovým součástem}

Pro zajištění přístupu k~některým součástem systému, jako je fotoaparát, galerie fotografií a~videí či umožnění sdílení dat mezi zařízením a~aplikací iTunes, je třeba zavést tyto záměry do~speciálního souboru \texttt{Info.plist}. Systém iOS poté při prvním spuštění aplikace vyzve uživatele, aby k~definovaným součástem povolil přístup (klíč \texttt{Privacy}). Příklad struktury takového souboru je na~obrázku~\ref{fig:info_plist}.
\cite{vyvoj-ios}

\begin{figure}[H]
    \centering
    \includegraphics[width=1\textwidth]{obrazky/info_plist.png}
    \caption{Struktura souboru \texttt{Info.plist} projektu Tepovka.}
    \label{fig:info_plist}
\end{figure}

%%
\chapter{Akvizice záznamů}

Pro účely získání směrodatných a~konzistentních záznamů je třeba, aby byly zachovány pokud možno stejné podmínky měření. Pro tyto účely byl sestaven měřicí protokol, který obsahuje seznam pomůcek a~doporučený postup zisku biosignálů.

\section{Protokol měření}

\subsubsection{Pomůcky}

\begin{itemize}
    \item EKG záznamník Bittium Faros~180$^{\circ}$/360$^{\circ}$ (vzorkovací frekvence 1~000~Hz) s~2/5elektrodovým systémem vodičů
    \item $2\times$/$5\times$ argentchloridové (Ag/AgCl) elektrody Sorimex
    \item mobilní telefony Apple iPhone~6 a~Apple iPhone~5s
    \item desinfekční gel/sprej na~ruce
    \item stopky, resp. časomíra aplikace
\end{itemize}

\subsubsection{Informovaný souhlas}

Jelikož měření biosignálů zahrnuje lidské účastníky, je třeba výzkumný záměr, používané pomůcky a~rizika spojená s~měřením zahrnout do informovaného souhlasu (IS) dle vyhlášky 226/2008~Sb., přílohy č.~2 \cite{sbirka_226/2008}. Měření pro účely této práce spadá pod výzkumný projekt \emph{Snímání a zpracování signálů za účelem monitorování zdravotního stavu a aktivity člověka} při Ústavu biomedicínského inženýrství (ÚBMI) Fakulty elektrotechniky a~komunikačních technologií (FEKT) Vysokého učení technického v~Brně (VUT). Výzkumný projekt byl schválen Etickou komisí ÚBMI FEKT VUT jako Projekt čj:~EK~05/2018.

Subjekt byl před měřením seznámen s~účelem měření, s~předmětem výzkumného projektu, měřicím aparátem a~možnými riziky. Subjekt vyjádřil souhlas s~participací ve výzkumu podpisem IS a~byl poučen, že svůj souhlas dle výše uvedené vyhlášky může vzít kdykoliv zpět. Získané biosignály budou anonymizovány a~poskytnuty pouze výzkumníkům při ÚBMI FEKT VUT.

\subsubsection{Postup}

Před samotným měřením bude u~subjektu vyžadováno speciální dietní a~fyzické opatření: 2~hodiny předem nekonzumovat alkohol a~ostré pokrmy, nekouřit a~necvičit. 

Pro zajištění pohodlí subjektu bude před naložením elektrod vyzkoušena funkčnost aplikace, aby mohla být zvolena optimální poloha držení chytrého telefonu (Apple iPhone~6) při měření. Pravý ukazováček bude umístěn na~zadní části telefonu tak, aby proximální část prstu byla umístěna na~čočce kamery a~distální na~zapnuté LED svítilně \cite{memeorix}.

Druhý (levý) ukazováček bude umístěn obdobně na zadní část druhého chytrého telefonu (Apple iPhone~5s), kde bude pořizován videozáznam. Pro účely druhého kontrolního měření již videozáznam snímán nebyl.

Subjekt bude nakonec orientován na~záda na~vhodné podložce a~bude požádán, aby setrval v~klidu. Pro zmírnění případných stresových faktorů bude v~místnosti pokud možno přítomen jen subjekt a~osoba provádějící akvizici. 
Na čistou kůži subjektu budou umístěny elektrody a~vodiče podle doporučení společnosti Bittium na~obrázku \ref{fig:faros-elektrody}.

\begin{figure}[H]
    \centering
    \begin{subfigure}{.5\textwidth}
        \centering
        \includegraphics[width=0.8\linewidth]{obrazky/pokladka_elektrod_2.eps}
        \caption{2elektrodová konfigurace}
        \label{fig:faros-elektrody-2}
    \end{subfigure}%
    \begin{subfigure}{.5\textwidth}
        \centering
        \includegraphics[width=0.8\linewidth]{obrazky/pokladka_elektrod_5.eps}
        \caption{5elektrodová konfigurace}
        \label{fig:faros-elektrody-5}
    \end{subfigure}
    \caption{Doporučené umístění systému elektrod záznamníku Bittium Faros. Převzato z~\cite{bittium-faros}.}
    \label{fig:faros-elektrody}
\end{figure}

Měření bude zahájeno současným spuštěním záznamníku EKG,  spuštěním kamery na~mobilním telefonu (Apple iPhone 5s) a~spuštěním aplikace. Subjekt bude znovu požádán o~setrvání v klidu, především aby nebylo pohnuto prstem na čočce telefonu během snímání. Bude-li subjekt vykazovat zjevný neklid, který by mohl ohrozit přesnost měření, bude tato skutečnost zaznamenána.
\cite{zaman}

\section{Příklady naměřených biosignálů}
\label{chp:biosignaly_priklady}

Všechny následující ukázky jsou úryvky všech tří měřených biosignálů -- signál PPG z videozáznamu, EKG záznam a~signál PPG s~jeho diferencí dPPG přímo získaný pomocí prototypu a~pomocí funkční aplikace.

\subsubsection{Prototyp aplikace}

Obrázek \ref{fig:priklady_app_biosignaly_sub1} ilustruje ideální průběh signálu PPG, kde nejsou zřetelné pohybové artefakty a~signál je celkově natolik silný, že z~něj spočtená 1. diference vede na~validní hodnotu TF. Na obrázku \ref{fig:priklady_app_biosignaly_sub2} je naopak ukázka signálu PPG získaného z~prstu subjektu při nedodržení laboratorního postupu, konkrétně šlo o~kouření před měřením. Je zde patrný vliv nikotinu na~periferní krevní řečiště, kdy zřejmě došlo ke~značné vazokonstrikci směřující k~akutnímu vzrůstu systémového tlaku krve, vzrůstu tepové frekvence a~extrémně až zblednutím a~ochladnutím prstů pro špatné prokrvení \cite{kankova_patfyz,interna,mourek}. Získaný signál je tak relativně velmi slabý a~roste tak riziko vzniku falešně pozitivních detekcí online algoritmem.

\begin{figure}[H]
    \centering
    \begin{subfigure}{.5\textwidth}
      \centering
      \frame{\includegraphics[width=.9\linewidth]{obrazky/APP_05.png}}
      \caption{Subjekt č.~5.}
      \label{fig:priklady_app_biosignaly_sub1}
    \end{subfigure}%
    \begin{subfigure}{.5\textwidth}
      \centering
      \frame{\includegraphics[width=.9\linewidth]{obrazky/APP_03.png}}
      \caption{Subjekt č.~3.}
      \label{fig:priklady_app_biosignaly_sub2}
    \end{subfigure}
    \caption{Příklady dvou průběhů signálu PPG a~diferenčního signálu dPPG z~prototypu aplikace.}
    \label{fig:prikady_app_biosignaly}
\end{figure}

\subsubsection{Aplikace Tepovka}

Druhé testovací měření již bylo provedeno s~optimalizovanou aplikací Tepovka (nikoliv prototypem). Snímání probíhalo simultánně pouze se záznamníkem EKG. Příklady naměřených surových signálů PPG jsou na~obrázku~\ref{fig:tepovka-biosignaly}.

\begin{figure}[H]
    \centering
    \begin{subfigure}{.5\textwidth}
        \centering
        \frame{\includegraphics[width=.9\linewidth]{obrazky/tepovka_priklad_mereni_1.png}}
        \caption{Subjekt č.~21}
    \end{subfigure}%
    \begin{subfigure}{.5\textwidth}
        \centering
        \frame{\includegraphics[width=.9\linewidth]{obrazky/tepovka_priklad_mereni_2.png}}
        \caption{Subjekt č.~18}
    \end{subfigure}
    \caption{Příklady dvou naměřených surových signálů PPG (okno délky 300~vzorků) z~aplikace Tepovka.}
    \label{fig:tepovka-biosignaly}
\end{figure}

\subsubsection{Videozáznam z~kamery telefonu}

Videozáznam natočený druhým chytrým telefonem byl převeden do~počítače a~zpracován algoritmem popsaným v~kapitole \ref{chp:alg_ppg}. Průměrná TF byla tedy stanovena díky fluktuaci signálu PPG \cite{siddiqui}. Průběh signálu PPG a~jeho filtrovaná verze s~detekovanými píky je na~obrázku \ref{fig:priklady_ppg}.

\begin{figure}[H]
    \centering
    \includegraphics[width=.9\textwidth]{obrazky/ppg_signal_trim.eps}
    \caption{Výsek surového PPG signálu z~videozáznamu (zeleně) a~jeho filtrovaného analogu (modře) s~detekovanými píky (červené značky). Záznam č.~1.}
    \label{fig:priklady_ppg}
\end{figure}

\subsubsection{EKG záznam}

Záznam EKG navzorkovaný vzorkovací frekvencí 1~000~Hz byl převeden ze~záznamníku do~počítače. Algoritmus použitý pro zpracování záznamu je rovněž popsán v~kapitole \ref{chp:alg-ekg}. Z~detekovaných vln R, resp. komplexů QRS byla následně stanovena průměrná TF. Ukázka průběhu naměřeného signálu EKG i~s~detekovanými píky (vlnami R) je na~obrázku \ref{fig:priklady_ecg}.

\begin{figure}[H]
    \centering
    \includegraphics[width=1\textwidth]{obrazky/EKG_17_trim.eps}
    \caption{Výsek záznamu EKG (modře) s~vyznačenými detekovanými R vlnami (červené kroužky); ABSE GUI. Záznam č.~10.}
    \label{fig:priklady_ecg}
\end{figure}

%%
\chapter{Algoritmy}
\label{chp:alg-top}

Následující část se zabývá popisem algoritmů použitých pro stanovení tepové frekvence \emph{online} (v~reálném čase) pomocí chytrého telefonu a~\emph{offline} z~uloženého videosouboru a~záznamu EKG. \emph{Offline} detektory slouží k~vyhodnocení přesnosti algoritmu použitého pro~aplikaci.

\section{Online detekce pomocí aplikace} 
\label{chp:alg-app}

Algoritmus stanovení okamžité tepové frekvence je implementován v~jazyce Swift a~jeho blokové schéma ilustruje obrázek \ref{fig:blokove_schema1}. Počátkem je akvizice scény. Scéna je zaznamenávána pomocí zabudované kamery mobilního telefonu. Frekvence získávaných snímků (vzorkovací frekvence) je určena hodnotou FPS, která je standardně nastavena na hodnotu $30~\si{Hz}$.

\begin{figure}[H]
    \centering
    \resizebox{1\textwidth}{!}{%
        \tikzfig{tikz/figures/schema_1}
    }%
    \caption{Kombinované blokové schéma algoritmu získání okamžité TF online detektorem aplikace.}
    \label{fig:blokove_schema1}
\end{figure}

Zisk aktuálního snímku scény je indikován pomocí delegáta třídy \texttt{FrameEx\-tractor}, který snímek ze~zásobníku předává přímo funkci pro manipulaci se~snímkem. Snímek je postupně převeden na obrazovou třídu \texttt{UIImage}, která může být již převedena i~na 3D maticový formát. Dimenzi snímku určují jak velikost daného snímku, tak jeho barevný kanál (RGB). Dle \cite{siddiqui} byl zvolen pouze červený kanál, protože nese nejvíc informace. Snímek je následně přeškálován na~jeden pixelový bod -- je získán jeho průměr a~tato hodnota je uložena do~vektoru surového signálu $PPG$. Současně s~výše uvedeným výpočtem dochází k výpočtu první derivace (resp. diference) signálu (resp. diskrétní posloupnosti) $PPG$ podle vztahu \ref{eq:dppg} (upraveno podle \cite{kozumplik}): 

\begin{equation}
    dPPG = \frac{\dif PPG(t)}{\dif t} \approx \Delta PPG(n) = PPG(n) - PPG(n-1)
    \label{eq:dppg}
\end{equation}

Diferenční signál $dPPG$ slouží jako podklad pro výpočet okamžité tepové frekvence. Algoritmus nyní ověří délku vektoru $dPPG$ a~pokračuje právě tehdy, když je dostupných alespoň 50 vzorků. Důvodem je počáteční artefakt kamery, která značnou část úvodních snímků zaruší jasovým artefaktem kalibrace. Jedna větev algoritmu v~tomto momentu zobrazí posledních 300 vzorků vektoru $PPG$ (prototyp zobrazoval i~vektor $dPPG$) na~obrazovku telefonu ve~formě kvazikontinuální projekce (zobrazení lze v~nastavení aplikace vypnout).

Druhá větev algoritmu pokračuje ve výpočtu TF. Oknem délky 50 (posledních 50 vzorků) je procházen vektor $dPPG$, je určeno minimum $dMin$ a~maximum $dMax$ tohoto úseku a~je určen práh $T$ optimalizovaným vztahem \ref{eq:app_prah_novy} (upraveno podle \cite{siddiqui}). Rovnice \ref{eq:app_prah} byla využita pouze v~prototypu.

\begin{equation}
    T = 0,90 \times \left( dMax - |dMin| \right)
    \label{eq:app_prah}
\end{equation}

\begin{equation}
    T = 0,45 \times \left( dMax - dMin \right)
    \label{eq:app_prah_novy}
\end{equation}

Pokud je aktuální snímek (resp. jeho první diference) nadprahový, je zaznamenán \uv{hit}, který se jako pořadové číslo aktuálního snímku uloží do proměnné $actFrame$ a~spočte se rozdíl s~předchozím \uv{hitem}. Získáme tak hodnotu $dFrame$, tedy vzdálenost nadprahových vzorků vektoru $dPPG$. Odsud je již možné přímo spočítat a~zobrazit hodnotu okamžité TF vzorcem \ref{eq:vypocet_hr_alg} (upraveno podle \cite{siddiqui}):

\begin{equation}
    TF = \frac{ f_{vz} }{ dFrame } \times 60~\text{tepů}\si{/min}
    \label{eq:vypocet_hr_alg}
\end{equation}

Algoritmus končí nasbíráním 600 vzorků (výchozí hodnota, lze upravit v~nastavení aplikace) či po stisknutí tlačítka \emph{Stop}. Následně je na~obrazovce zobrazena mediánová hodnota TF vektoru okamžitých TF. Prototyp zobrazoval průměrnou hodnotu TF.

\section{Offline detekce z~videozáznamu}
\label{chp:alg_ppg}

Hodnota průměrné TF z~videozánamu je určena v~rámci vytvořeného GUI v~prostředí Matlab. Blokové schéma algoritmu je na obrázku \ref{fig:blokove_schema2}. Nejprve je načten videosoubor ve~formátu \texttt{MOV} (lze načíst i~\texttt{3GP} či \texttt{MP4}). Z~metadat souboru je získána hodnota FPS a~počet snímků videa. Následně je v~cyklu postupně brán každý jednotlivý snímek, z~toho je extrahován červený kanál a~zprůměrováním je získán jeden vzorek vektoru $PPG$.

\begin{figure}[H]
    \centering
    \resizebox{0.8\textwidth}{!}{%
        \tikzfig{tikz/figures/schema_2}
    }%
    \caption{Kombinované blokové schéma algoritmu získání TF z~videozáznamu.}
    \label{fig:blokove_schema2}
\end{figure}

Surový signál PPG je následně podroben dvojí digitální filtraci filtry s~konečnou impulzní charakteristikou (\emph{Finite Impulse Response}, FIR). Nejdříve je pomocí filtru typu PP vybráno zájmové pásmo 0,8--3~Hz (48--180 tepů/min) a~následně je filtrovaný signál umocněn pro zvýraznění kmitů. Nakonec je signál ještě přefiltrován filtrem typu DP s~mezní frekvencí 2~Hz, který způsobí vyhlazení signálu. \cite{kozumplik}

Ve~filtrovaném signálu jsou nalezeny píky, které odpovídají hodnotám maximálního prokrvení tkáně. S~jistým časovým zpožděním odpovídají QRS komplexům (tranzitní čas, viz obrázek \ref{fig:sfygmogram}). Pro účely práce je však možné časovou následnost zanedbat a~spočtené hodnoty okamžité TF lze přímo porovnat s~obdobně spočtenými hodnotami ze~záznamu EKG (viz dále).

Pozice píků v signálu jsou podrobeny výpočtu diference, čímž získáváme analog RR intervalu, vektor $dPPG_{vid}$. Dosazením tohoto vektoru za hodnotu $dFrame$ ve~vzorci \ref{eq:vypocet_hr_alg} lze získat hodnoty okamžité TF, aritmetickým průměrem přes celý vektor pak hodnotu průměrné TF z~videozáznamu.

\section{Offline detekce ze~záznamu EKG}
\label{chp:alg-ekg}

Získání hodnoty průměrné, resp. mediánové TF ze~surového záznamu EKG probíhá několikanásobnou filtrací, prahováním, nalezením píků a~výpočtem intervalové funkce v~prostředí Matlab. Schéma tohoto algoritmu je na obrázku \ref{fig:blokove_schema3}.

\begin{figure}[H]
    \centering
    \resizebox{0.7\textwidth}{!}{%
        \tikzfig{tikz/figures/schema_3}
    }%
    \caption{Kombinované blokové schéma algoritmu získání TF z~EKG záznamu.}
    \label{fig:blokove_schema3}
\end{figure}

Nejprve je načten soubor ve formátu \texttt{EDF}, který byl extrahován z~EKG záznamníku Bittium Faros. Z~importovaných dat se vybere pouze první řádek, který jediný obsahuje potřebnou surovou sekvenci. Dalším krokem je digitální filtrace. Všechny využívané filtry mají konečnou impulzní charakteristiku (\emph{Finite Impulse Response}, FIR), protože jakákoliv filtrace mění tvar signálu a~FIR filtry mohou mít lineární fázovou charakteristiku. \cite{kolar}

Dále se pomocí filtru typu PP vybere frekvenční pásmo 11--21~Hz, čímž se především potlačí nízkofrekvenční kolísání nulové izolinie (drift) a~případné vysokofrekvenční myopotenciály vzniklé při neklidu subjektu či~naindukovaný šum z~rozvodné sítě (brum). Filtrovaná posloupnout je následně umocněna, aby vysoké píky byly zesíleny a~nízké pokud možno potlačeny. Posledním krokem předzpracování je přefiltrování signálu ještě filtrem typu DP s~mezní frekvencí 3~Hz, který způsobí jisté vyhlazení pro snadnější detekci píků. Pozice píků (komplexů QRS) poté slouží k~výpočtu intervalové funkce. \cite{kozumplik}

%Intervalová funkce je ve~své podstatě sekvence neekvidistantních Diracových impulzů v~místech, kde byl detekován komplex QRS.

Výpočtem diference pozic píků vznikne vektor obsahující délky RR intervalů ve vzorcích $dRR$. Využitím vzorce \ref{eq:vypocet_hr_alg} lze pak rovněž dosáhnout hodnot okamžité TF; hodnotu $dFrame$ nahradíme vektorem $dRR$ a~hodnotu $f_{vz}$ upravíme na hodnotu vzorkovací frekvence záznamníku, tj. 1~000~Hz. Spočtením průměru, resp. mediánu přes výsledný vektor okamžitých hodnot TF je získána průměrná, resp. mediánová TF z~EKG záznamu.

%%
\chapter{Popis GUI}

\section{Hodnocení PPG a EKG (ABSE GUI)}

K~vyhodnocení videozáznamu společně se~záznamem EKG bylo vytvořeno grafické uživatelské prostředí (GUI) v~prostředí Matlab. Po~spuštění hlavního skriptu \texttt{matlab/gui.m} vypadá prostředí jako na~obrázku \ref{fig:matlab_gui_clear}

\begin{figure}[H]
    \centering
    \frame{\includegraphics[width=0.9\textwidth]{obrazky/abse_gui_empty.eps}}
    \caption{Prázdné okno GUI pro hodnocení PPG a~EKG záznamů.}
    \label{fig:matlab_gui_clear}
\end{figure}

Okno se skládá z~prostoru pro tři různé grafy na~levé straně a~dynamickým panelem na~pravé straně. Panel obsahuje tlačítka pro ovládání okna. Tlačítky \textit{Nahrat Video} a~\textit{Nahrat EKG} dojde k~zavolání systémové nabídky pro výběr daných souborů ke~zpracování. Výběrem souboru se zavolají funkce pro jejich okamžité zpracování. Jelikož zpracování videozáznamu je časově poněkud náročné, je pro operátora GUI vyvedena zpětná vazba ve~formě Progress Baru (obrázek \ref{fig:matlab_gui_process}).

\begin{figure}[H]
    \centering
    \includegraphics[width=0.5\textwidth]{obrazky/matlab_GUI_process.png}
    \caption{Zpětná vazba při zpracovávání videozáznamu (progress bar).}
    \label{fig:matlab_gui_process}
\end{figure}

Po~dokončení zpracování videosouboru a~záznamu EKG jsou jednotlivé průběhy zobrazeny v~korespondujících grafech a~v~panelu je zobrazena také odpovídající průměrná TF (\textit{PPG TF}, \textit{EKG TF}) jak je vidět na obrázku \ref{fig:matlab_gui_ppg+ecg+toolz}. 

\begin{figure}[H]
    \centering
    \frame{\includegraphics[width=0.9\textwidth]{obrazky/abse_gui_all_signals.eps}}
    \caption{Okno GUI se zobrazením všech dostupných průběhů -- signálu PPG (výsek) s~jeho filtrovaným analogem; intervalovou funkcí ze~signálu PPG a~surový průběh EKG s~vyznačenými místy detekce R vln (rovněž výsek).}
    \label{fig:matlab_gui_ppg+ecg+toolz} 
\end{figure}

Současně je možné vyvolat v~okně GUI pomocí tlačítka \textit{Nastroje} nástrojovou lištu (přiblížení, oddálení, posun grafu). Tlačítky \textit{Ulozit} a~\textit{Historie} lze aktuální hodnotu TF získanou z~PPG uložit a~zobrazovat historické hodnoty z~jiných měření.

\section{Prototyp aplikace} 

Grafické prostředí prototypu aplikace je velmi prosté. Při spuštění aplikace dojde k~jednorázovému bliknutí svítilny telefonu, což indikuje její funkčnost a~připravenost aplikace k~měření. Pokud je totiž indikována slabá baterie, systém iOS automaticky zablokuje použití svítilny. Obrazovka aplikace před měřením obsahuje pouze tlačítko \textit{Start}, kterým se akvizice signálu PPG a~výpočet diferenčního signálu spouští. Stiskem tlačítka se jeho název změní na~\textit{Stop}. Spuštěný náběr signálu je zachycen na~obrázku \ref{fig:app_gui_running}. Při běhu aplikace je z vektorů \texttt{PPG} a~\texttt{diffPPG} vybíráno jen posledních 300 vzorků, průběhy v~grafech tak dynamicky \uv{plují} po~obrazovce. V~levé dolní části je zobrazena hodnota okamžité TF, která se po~skončení akvizice změní na~průměrnou, což je indikováno návěstím \textit{avg: [TF]}, jak je patrno na~obrázku \ref{fig:app_gui_stopped}. K~ukončení akvizice dojde také po~nasbírání 3~600 vzorků PPG (circa 2~minuty).

\begin{figure}[H]
    \centering
    \begin{subfigure}{.49\textwidth}
      \centering
      \frame{\includegraphics[width=.9\linewidth]{obrazky/App_GUI_running.png}}
      \caption{Zachycení běžící akvizice PPG s~po-\\hybovým artefaktem a~okamžitou TF.}
      \label{fig:app_gui_running}
    \end{subfigure}%
    \begin{subfigure}{.49\textwidth}
      \centering
      \frame{\includegraphics[width=.9\linewidth]{obrazky/App_GUI_stopped.png}}
      \caption{Zachycení aplikace po~skončení akvizice. Zobrazena hodnota průměrné TF.}
      \label{fig:app_gui_stopped}
    \end{subfigure}
    \caption{Dva různé módy aplikace: spuštěná (a) a~zastavená akvizice (b).}
    \label{fig:app_gui}
\end{figure}

\section{Aplikace Tepovka}

Finální verze aplikace Tepovka je aplikace typu \textit{Single View App} (nejjednodušší typ návrhového rozložení) \cite{start-ui-dev-apple}. Pomocí prvku \texttt{TabView} (spodní ovládací lišta na obrázku~\ref{fig:tepovka_mereni}) je dále rozdělěna na~tři karty (podobrazovky). Zleva to jsou \emph{Měření, Historie} a~\emph{Nastavení}. Ikony pro jednotlivé karty byly jako svobodné grafiky uživatele Raj Dev staženy ze serveru \texttt{Freeicons.io} \footnote{\url{https://freeicons.io/icon-list/business-and-online-icons}}.

\begin{figure}[H]
    \centering
    \begin{subfigure}{.49\textwidth}
        \centering
        \frame{\includegraphics[width=.9\linewidth]{obrazky/tepovka_launchscreen.png}}
        \subcaption{Obrazovka při startu aplikace.}
        \label{fig:tepovka_launch}
    \end{subfigure}%
    \begin{subfigure}{.49\textwidth}
        \centering
        \frame{\includegraphics[width=.9\linewidth]{obrazky/tepovka_mereni.png}}
        \subcaption{Obrazovka po načtení aplikace.}
        \label{fig:tepovka_mereni}
    \end{subfigure}
    \caption{Úvodní obrazovky aplikace: (a) načítání při~startu, (b) karta \emph{Měření} po~startu.}
    \label{fig:tepovka_launch_n_mereni}
\end{figure}

Karta \emph{Měření} po~spuštění obsahuje pouze emotikon srdce a~tlačítko \emph{Start}. Stisknutím tlačítka dojde ke~spuštění akviziční kaskády, která mj.~zahrnuje načtení uživatelského nastavení, zprovoznění svítilny a~kamery, a~aktivaci online algoritmu detekce TF. Pro zajištění konzistence měření, je schována spodní lišta a~popis tlačítka se změní na~\emph{Stop}. Při detekci píku diferenčního signálu (typicky vrchol signálu PPG), je jednak zobrazena hodnota okamžité TF, jednak animace bušení emotikonu srdce. Dle nastavení se na~obrazovce může objevit také prvek \texttt{UIProgressView}, jenž vizuálně zobrazuje ušlý čas měření, a~prvek \texttt{LineChart}, ve~kterém je červeně vyveden surový signál PPG v~klouzavém okně délky 300~vzorků. Po~skončení akvizice je zobrazen medián TF, tato hodnota je uložena v~interním úložišti (komprimovaný soubor \emph{HistorickaData}) a~obrazovka je připravena na~spuštění dalšího měření.

\begin{figure}[H]
    \centering
    \begin{subfigure}{.49\textwidth}
        \centering
        \frame{\includegraphics[width=.9\linewidth]{obrazky/tepovka_akvizice_progress_ppg.png}}
        \subcaption{Průběh akvizice se všemi prvky.}
        \label{fig:tepovka_akvizice}
    \end{subfigure}%
    \begin{subfigure}{.49\textwidth}
        \centering
        \frame{\includegraphics[width=.9\linewidth]{obrazky/tepovka_priklad_mereni_1.png}}
        \subcaption{Obrazovka po skončení akvizice.}
        \label{fig:tepovka_mereni}
    \end{subfigure}
    \caption{Obrazovka \emph{Měření} a~snímání signálu: (a) během snímání, (b) po~snímání.}
    \label{fig:tepovka_launch_n_mereni}
\end{figure}

Druhou kartu \emph{Historie} tvoří prvek \texttt{TableView}. Jedná se tak o~výčet buněk \texttt{TableViewCell} obsahujících chronologicky sestupně načtené historické hodnoty měření. Nalevo je vždy zobrazen medián TF, napravo pak datum a~čas uložení dat, případně je zobrazen také štítek (typ měření), byl-li hodnotě přiřazen. Klepnutím na~buňku lze zobrazit její detail, ve~kterém je možné danému měření přiřadit explicitní štítek prvkem \texttt{UIPickerView} -- měření v~klidu, po~probuzení, při únavě, po~požití kávy apod (obrázek~\ref{fig:tepovka_historie_uprava}).

\begin{figure}[H]
    \centering
    \begin{subfigure}{.49\textwidth}
        \centering
        \frame{\includegraphics[width=.9\linewidth]{obrazky/tepovka_historie.png}}
        \caption{Obrazovka \emph{Historie} s~příklady vypsa-\\ných buněk.}
        \label{fig:tepovka_historie}
    \end{subfigure}%
    \begin{subfigure}{.49\textwidth}
        \centering
        \frame{\includegraphics[width=.9\linewidth]{obrazky/tepovka_historie_uprava.png}}
        \caption{Detail po~klepnutí na~buňku s~možno-\\stí nastavit štítek.}
        \label{fig:tepovka_historie_uprava}
    \end{subfigure}
    \caption{Obrazovky \emph{Historie}: (a) prvek \texttt{TableView} s~buňkami, (b) úprava buňky štítkem.}
    \label{fig:tepovka_historie_both}
\end{figure}

Poslední kartu tvoří několik ovládacích prvků určených k~úpravě uživatelského nastavení. Jmenovitě jde o~tři prvky typu \texttt{UISwitch} pro ovládání boolovských konstant (zobrazení křivky PPG, progress baru či notifikace konce měření vibrací) a~jeden prvek typu \texttt{UISlider} pro nastavení délky akvizice mezi 20 a~120 sekundami. (Ve~vývojové verzi byl umístěn ještě jeden jezdec navíc určený k~úpravě koeficientu prahu -- obrázek~\ref{fig:tepovka_nastaveni_vyvoj}.)

\begin{figure}[H]
    \centering
    \begin{subfigure}{.49\textwidth}
        \centering
        \frame{\includegraphics[width=.9\linewidth]{obrazky/tepovka_nastaveni.png}}
        \caption{Standardní verze \emph{Nastavení}}
        \label{fig:tepovka_nastaveni}
    \end{subfigure}%
    \begin{subfigure}{.49\textwidth} 
        \centering
        \frame{\includegraphics[width=.9\linewidth]{obrazky/tepovka_nastaveni_vyvoj.png}}
        \caption{Vývojová verze \emph{Nastavení}}
        \label{fig:tepovka_nastaveni_vyvoj}
    \end{subfigure}
    \caption{Obrazovky \emph{Nastavení}: (a) standardní ovládácí prvky, (b) navíc úprava prahu pro detekci píků $dPPG$.}
    \label{fig:tepovka_nastaveni_both}
\end{figure}

%%
\chapter{Vyhodnocení a~diskuse výsledků}

Následující kapitola se zabývá statistickým vyhodnocením naměřených dat. Výsledky jsou diskutovány společně s~možným zdrojem chyb. %Diskuse se zabývá také reálnou použitelností aplikace.

\section{Srovnání naměřených dat}

Tabulka \ref{tab:vyhodnoceni1} shrnuje naměřené hodnoty průměrných TF u~jednotlivých subjektů prvního měření. Důležité jsou především hodnoty získané z~prototypu aplikace a~ze záznamu EKG. Hodnoty sloupce \emph{PPG} slouží jako sekundární reference. Pro případné posouzení vlivu pozorovaného neklidu při měření (potenciální pohybové artefakty) byly subjektům přiřazeny také binární hodnoty \textit{ANO/NE} ve~sloupci \textit{Neklid}.

\begin{table}[H]
    \centering
    \caption{Stanovení průměrné TF simultánně pomocí prototypu aplikace (App), videozáznamu (PPG) a~záznamníku EKG (EKG), první kontrolní měření.}
    \begin{tabular}{c c c c c}
        \hline
        Č.~záznamu [--] & App [$\text{tepů/min}$] & PPG [$\text{tepů/min}$] & EKG [$\text{tepů/min}$] & Neklid\\
        \hline
        \hline
        01 	& 70	& 	73	& 	74 & NE \\
        02 	& 84	& 	79	& 	80 & ANO \\
        03 	& 101	& 	105	& 	107 & ANO \\
        04 	& 70	& 	70	& 	71 & NE \\
        05 	& 70	& 	69	& 	69 & NE \\
        06	& 80	& 	69	& 	68 & ANO \\
        07	& 80	& 	76	& 	76 & ANO \\
        08	& 94	& 	59	& 	59 & ANO \\
        09	& 87	& 	72	& 	71 & ANO \\
        10	& 52	& 	55	& 	52 & NE \\
    \hline
    \end{tabular}
    \label{tab:vyhodnoceni1}
\end{table}

Jako základní metrika k~vyhodnocení naměřených dat byl zvolen výpočet průměrné odchylky od zlatého standardu:

\begin{equation}
    \delta_{m_i} = |EKG_i - App_i|
    \label{eq:metadelta}
\end{equation}

\begin{equation}
    \delta =  \frac{1}{n} \sum_{i=1}^{n} \delta_{m_i} = \frac{1}{n} \sum_{i=1}^{n} | EKG_i - App_i |,
    \label{eq:odchylka}
\end{equation}

kde $n$ je počet záznamů a~$i$ je číslo záznamu. Dosazením dat z~tabulky \ref{tab:vyhodnoceni1} do~vzorce \ref{eq:odchylka} získáme průměrnou odchylku určení TF pomocí prototypu:

\begin{equation}
    \delta_1 = \frac{1}{10} \left( | 74 - 70 | + | 80 - 84 | + \dots + | 52 - 52 | \right) \approx \pm 8,3~\text{tepů/min}
    \label{eq:delta-all}
\end{equation}

Tabulka \ref{tab:vyhodnoceni2} obsahuje získané hodnoty mediánové TF pomocí optimalizované aplikace a~referenčního EKG záznamu druhého testovacího měření. Videozáznam pro offline analýzu PPG již nebyl měřen. Díky charakteru mediánového výpočtu hodnot TF již také nebylo třeba uvádět sloupec \emph{Neklid} jako u~tabulky \ref{tab:vyhodnoceni1} (nestandardní hodnoty okamžité TF způsobené pohybovými artefakty se chovají jako odlehlé hodnoty a~nedochází tak ke zkreslení výsledku jako u~aritmetického průměru). Tabulka obsahuje také sloupec s~meziodchylkou vztahující se ke~každému záznamu zvlášť podle vzorce \ref{eq:metadelta}.

\begin{table}[h]
    \centering
    \caption{Výsledky druhého měření pomocí optimalizované aplikace ($App$) a~záznamníku EKG ($EKG$) v~tepech za~minutu -- mediány TF. Doplněno také o~absolutní odchylku $\delta_m$ obou hodnot.}
    \begin{tabular}{c c c c c}
        \hline
        Č.~záznamu [--] & App [tepů/min] & EKG [tepů/min] & $\delta_m$ [tepů/min]\\
        \hline
        \hline
        11 & 82 & 83 & 1 \\
        12 & 56 & 56 & 0 \\
        13 & 64 & 64 & 0 \\
        14 & 78 & 80 & 2 \\
        15 & 75 & 75 & 0 \\
        16 & 72 & 73 & 1 \\
        17 & 69 & 71 & 2 \\
        18 & 64 & 64 & 0 \\
        19 & 72 & 72 & 0 \\
        20 & 64 & 65 & 1 \\
        21 & 67 & 66 & 1 \\
        22 & 67 & 66 & 1 \\
        23 & 69 & 68 & 1 \\
        24 & 67 & 68 & 1 \\
        25 & 67 & 67 & 0 \\
        26 & 58 & 58 & 0 \\
        27 & 75 & 76 & 1 \\
        28 & 60 & 61 & 1 \\
        29 & 72 & 71 & 1 \\
        \hline
    \end{tabular}
    \label{tab:vyhodnoceni2}
\end{table}

Dosazením hodnot do~vzorce~\ref{eq:odchylka} je získána průměrná absolutní odchylka druhého kontrolního měření pomocí optimalizované aplikace $\delta_2$:

\begin{equation}
    \delta_2 = \frac{1}{19} \left( |83-82| + |56-56| + \dots + |71-72| \right) \approx \pm0,74~\text{tepů/min}
    \label{eq:odchylka_2}
\end{equation}

\section{Diskuse}

Ze~spočtené odchylky prvního měření (rovnice \ref{eq:delta-all}) lze snadno odvodit, že prvně navržený algoritmus pro stanovení okamžité, resp. průměrné TF člověka pomocí chytrého telefonu nelze v~žádném případě považovat za~přesný.

Jiná situace však nastane, rozdělíme-li deset záznamů prvního měření na~dvě skupiny dle míry stresovosti (\textit{Neklid}). Odchylky pro skupiny \textit{ANO/NE} poté vychází následovně:

\begin{equation}
    \delta_{1,NE} = \frac{1}{4} \left( |74 - 70| + \dots + |52 - 52| \right) \approx \pm 1,5~\text{tepů/min}
    \label{eq:delta-ne}
\end{equation}

\begin{equation}
    \delta_{1,ANO} = \frac{1}{6} \left( |80 - 84| + \dots + |71 - 87| \right) \approx \pm 12,83~\text{tepů/min}
    \label{eq:delta-ano}
\end{equation}

Srovnáním obou skupin (rovnice \ref{eq:delta-ne} a~\ref{eq:delta-ano}) nyní lze dojít k závěru, že zjevný neklid či svalová únava v~prstu se projevuje zhoršenou schopností nepohybovat přinejmenším rukou přiloženou na~telefonu s~navrženým prototypem aplikace. Díky tomu je silně ovlivněna výsledná hodnota TF. Ačkoliv byl v~protokolu měření anticipován vliv neklidu a~bylo kvůli tomu učiněno opatření ve formě maximálního povoleného počtu osob v~místnosti, tento projev se spíše potlačit nepodařilo.

Jako možné řešení se nabízí úprava rovnice \ref{eq:app_prah}, kde díky absolutní hodnotě může dojít při prudkém poklesu signálu PPG k~výpočtu příliš nízkého prahu, což v~konečném důsledku vede k~salvě falešně pozitivních detekcí průchodů prahem. Z~numerického hlediska je možné uvažovat také o~vlivu zaokrouhlovací chyby, která je přítomna na~výstupu všech algoritmů.

Hlavním prvkem optimalizace proto byla úprava původního vztahu pro výpočet prahu \ref{eq:app_prah} na~vztah \ref{eq:app_prah_novy} (snížení koeficientu prahu a~odstranění absolutní hodnoty). Dále byl na~konci algoritmů pro určení TF pomocí konečné aplikace a~offline detekce z~EKG záznamu změněn operátor z~aritmetického průměru na~medián hodnot. Porovnáním výsledných průměrných odchylek $\delta_1$ (\ref{eq:odchylka}) a~$\delta_2$ (\ref{eq:odchylka_2}) lze ukázat na~úspěch optimalizace, který snížil hodnotu odchylky více jak desetkrát. K~orientačnímu zjištění aktuální TF člověka tak aplikaci lze považovat za~vhodnou. Aplikace byla testována především na~telefonu Apple iPhone~6s (verze iOS 12.4.7), nicméně funkčnost jak UI, tak detektoru byla prokázána i~na~novějším modelu Xs (verze iOS 13.4).

Nevýhodou konečné aplikace je problém zobrazení průběhu PPG, který může občas zdánlivě ukazovat na~slabý příjem signálu. Vykreslování křivky se totiž nechová dynamicky (nepřizpůsobuje své meze vykreslovaným vzorkům PPG) a~subjekt může mít pocit, že \uv{nemá tep}. Nutno také podotknout, že testovací měření probíhalo dvě minuty; v~reálných podmínkách by však doba mohla být kratší (délka akvizice lze upravit v~nastavení aplikace), na což aplikace testována nebyla.

Tabulka \ref{tab:srovnani_s_autory} ukazuje srovnání průměrných odchylek s~ostatními autory, kteří se zabývají stanovením hodnoty TF pomocí chytrého telefonu a~kteří tuto porovnávají rovněž proti standardu EKG. 
U~prototypu je uvedena celková odchylka i~odchylka spočtená pouze přes klidné subjekty (rovnice \ref{eq:delta-ne}). Lze však hovořit o~nedostatečné statistické velikosti vzorku klidných subjektů. Pole \emph{Tepovka} označuje optimalizovanou finální aplikaci.

\begin{table}[H]
    \centering
    \caption{Srovnání průměrné odchylky stanovení TF od~zlatého standardu EKG s~dalšími autory. Všechny hodnoty jsou v~tepech/min.}
    \begin{tabular}{c c c c c c}
        \hline
        Tepovka & prototyp & \cite{siddiqui} & \cite{bcg_processing} & \cite{nemcova_vitek} & \cite{zaman}\\
        (rov.~\ref{eq:odchylka_2})& (rov.~\ref{eq:delta-all}/\ref{eq:delta-ne}) & & ($\delta_{max}$/$\delta_{min}$) & & (čas./frekv. doména) \\
        \hline
        \hline
        $\pm0,74$ & $\pm8,3/\pm1,5$ & $\pm3$ & $+0,6/-0,9$ & $\pm0,4093$ & $\pm7,5/\pm1,8$\\
    \hline
    \end{tabular}
    \label{tab:srovnani_s_autory}
\end{table}