Digital signalbehandling i realtid för pulsoximetri Maj 2003 Luleå University of Technology Department of Computer Science Division of Signal Processing Leif Norén Johan Casselgren Nila Jannok leinor-0@student.luth.se johcas-0@student.luth.se niljan-9@student.luth.se
Digital signalbehandling i realtid för pulsoximetri Sammanfattning Pulsoximetri är en metod att bestämma pulsen och blodets syrehalt hos en människa, detta används inom många områden, framförallt sjukvård. Genom att lysa genom t.ex. ett finger med lysdioder och mäta det genomträngande ljuset kan man med enkel signabehandling få fram blodets puls och syrehalt. Temat för detta projekt är realtidssytem som ska implementeras i en DSP, Digital Signal Processor, och målet är att ta fram en fungerande pulsoximeter. I denna rapport beskrivs teorin bakom pulsoximetri, hur man konstruerar de fysiska delarna och tillvägagångssätt för signalbehandlingen.
Digital signalbehandling i realtid för pulsoximetri Innehåll 1 Inledning 1 2 Bakgrund 2 2.1 Syret i människan......................... 2 2.2 Absorbtion av ljus........................ 2 3 Analoga kretsar 5 3.1 Sändarkrets............................ 6 3.2 Mottagarkrets........................... 7 4 Signalbehandling 9 4.1 Samplingsfrekvens, decimering och frekvens innehåll...... 9 4.2 Val av filter............................ 9 5 Implementation av algoritmer i DSP-kortet 14 5.1 Huvudrutin............................ 15 5.2 Interruptrutinen.......................... 16 6 Diskussion 17
Digital signalbehandling i realtid för pulsoximetri 1 1 Inledning Pulsoximetri är en ganska mångsidig och lättanvänd teknik för mätning av blodets puls och syrehalt. En stor fördel med denna typ av mätning är att den är ickeinvasiv dvs. inga fysiska ingrepp behöver göras på kroppen. Mätningarna utförs på någon av kroppens extremiter t.ex. ett finger, en tå eller en örsnibb. Används mätmetoden korrekt fungerar den i realtid vilket är det övergripande temat med detta projekt. Mätmetoden fungera utan några större fel, därför används den flitigt världen över. Pulsoximetrin används framförallt inom sjukvården för övervakning av patienters syrenivå i blodet, men även för att se om tillsatt syrgas tas upp av kroppen. Det är standard inom svensk intensivvård att patienter ska kopplas upp mot någon typ av pulsoximeter. Andra användningsområden är all typ av idrottsutövnig där kroppens syrehalt och puls kan vara av intresse, exempelvis vid löpning i så kallade höghöjds hus kan det vara intressant att se hur hög syreupptagningen är. Målet med detta projekt är att bygga en fungerande pulsoximeter. Kortfattat beskrivs detta så att ljus med två olika våglängder belyser exempelvis ett finger. Det reflekterande eller genomträngande ljusets intensitet mäts med hjälp av en fotodiod. Intensiteten i det mottagna ljuset varierar med mängden blod i fingret, detta utnyttjas för att bestämma blodets puls och syrehalt [4]. Ljuset sänds och tas emot med hjälp av ett DSP-kort som också utför beräkningarna för pulsen och syrehalten. För att kunna anpassa det sända och mottagna ljuset till DSP-kortet konstrueras elektroniska kretsar för både sändar- och mottagardelen [3]. Presentationen av beräkningarnas resultat sker med en LCD-display som är kopplad till DSP-kortet.
Digital signalbehandling i realtid för pulsoximetri 2 2 Bakgrund För att kunna konstruera en pulsoximeter måste man förstå hur kroppen tar upp syret samt hur absorbtionen av ljus fungerar. Man utnyttjar att syresatt hemoglobin är ljusrött och icke syresatt hemoglobin är mörkrött, när man ska bestämma syrehalten hos bloden. 2.1 Syret i människan När man tar ett andetag förs luftens syre till lungblåsorna och diffunderar genom dess väggar till lungkapillärerna för att binda sig till de röda blodkropparnas hemoglobin (lat. haemoglobinum). Hemoglobinet är ett äggviteämne som finns i de röda blodkropparna och ger blodet dess rödaktiga färg. En röd blodcell innehåller ca 265 miljoner hemoglobin-molekyler. Förutom att ta upp och binda till sig syret kan hemoglobinet även avge syre. Man brukar tala om oxihemoglobin [HbO 2 ], dvs. syresatt hemoglobin, deoxihemoglobin [Hb], reducerat hemoglobin eller hemoglobin utan syre, carbooxihemoglobin [COHb] och methemoglobin [M ethb], men av de två sistnämda finns det endast små andelar. Det finns ytterligare 500 varianter av hemoglobin men dessa förekommer endast hos enstaka människor och inom geografiskt avgränsande områden. I vila transporterar blodet varje minut en liter syre ut i kroppen, utav detta förbrukas en fjärdedel (0,25 liter). Blodet som återvänder, dvs. venblodet, har då en syremättnad på cirka 75 procent. Hos en vältränad människa kan syreförbrukningen ökas med 15 gånger, det går då åt 3,75 liter syre per minut. Detta kan åstadkommas genom att hjärtat ökar mängden blod den transporterar varje minut med 5 ggr och utnyttjandegraden med 3ggr, dvs. venblodet har en syremättnad omkring 25 procent [1]. 2.2 Absorbtion av ljus Beer s lag (även kallad Beer-Lambert s eller Bouguer s lag) beskriver hur intensiteten hos ljuset förändras när ljuset färdas genom ett medium [2]: I(x) = I 0 e ε(λ)c(x a), (1) där ε(λ) är absorbtionskonstanten av en specifik våglängd, c står för koncentrationen av det absorberande ämnet vilket är konstant och (x a) representerar den optiska längd ljuset måste förflytta sig. Ljus med intensiteten I 0 färdas sträckan a från källan till ett absorberande medium utan att absorberas av luften. Intensiteten avtar exponentiellt i det absorberande mediumet och intensiteten i det transmitterade ljuset bestäms
Digital signalbehandling i realtid för pulsoximetri 3 av Beer s lag (1). Efter mediumet är intensiteten fortsatt konstant och den kan mätas med en fotodiod, se Figur 1. Figur 1: Illustation av Beer s lag. Det transmitterande ljuset T genom ett medium med en substans som absorberar ljus, definieras som ett förhållande mellan transmitterat ljus I och sänt ljus I 0 enligt följande: T = I I 0 = e ε(λ)cd. (2) Ibland används uttrycket ett mediums "optiska densitetför att beskriva absorbtionen. Beer s lag gäller även om det finns mer än en substans som absorberar ljus i mediumet, varje substans bidrar då med en viss del till den totala absorbtionen. Superpositionsprincipen går att tillämpa för att beräkna den totala absorbtionen A t [3] enligt: A t = ε 1 (λ)c 1 d 1 + ε 2 (λ)c 2 d 2 +... + ε n (λ)c n d n = Σ n i=1ε i (λ)c i d i, (3) där ε i (λ) och c i representerar absorbtionskoefficienten respektive koncentrationen av substansen i. Vidare representerar d i den optiska väg (längd) som ljuset har genom den absorberande substansen, vilken varierar från substans till substans. Inom pulsoximetrin antar man att blodets endast består av hemoglobinsorterna [Hb] och [HbO 2 ]. Använder man då två ljus med olika våglängder och båda substanserna har olika absorbtionskoefficienter eller ekvivalenta förtunningskoefficienter kan man beräkna hur många procent av
Digital signalbehandling i realtid för pulsoximetri 4 Figur 2: Absorbtionskurvor för oxihemoglobin, deoxihemoglobin, carbooxihemoglobin och methemoglobin [3] varje substans det finns. Om ljuset färdas en konstnat längd kan man dessutom beräkna syremättnaden enligt S a O 2 = c ox c ox + c Dox, (4) där c ox står för koncentrationen av oxihemoglobin och c Dox för koncentrationen av deoxihemoglobin. Som tidigare nämts är syresatt hemoglobin ljusrött och icke syresatt hemoglobin mörkrött och man kan se i Figur 2 att deoxihemoglobin har högre absorbtion i den röda regionen av spektrumet medans oxihemoglobin endast har något högre absorbtion i den infraröda regionen. Man kan också se att största skillnaden mellan absorbtionskoefficienterna för oxihemoglobin och deoxihemoglobin ligger vid våglängden 660nm, samt att avståndet inte förändras så mycket kring 900 nm detta utnyttjas vid valet av lysdioder. Vidare kan man se att methemoglobin och carbooxihemoglobin absorberar delar av det ljus som passerar genom blodet. Även om andelarna av dessa substanser inte är så stora i blodet, kan man inte utesluta att de påverkar absorbtionen. Görs detta kommer beräkningarna av blodets syrehalt bli fe-
Digital signalbehandling i realtid för pulsoximetri 5 laktig. För att beräkna syrehalten i blodet SpO 2 används två ekvationer. Först beräknas ett värde R enligt R = AC Red DC Red AC IR DC IR. (5) Därefter används en empiriskt framtagen linjär approximation [4] enligt SpO 2 = 110 25R. (6) Detta ger ett förhållande mellan SpO 2 och det beräknade R-värdet, se Figur 3. Figur 3: SaO 2 vs. R-värdet [4] 3 Analoga kretsar För att kunna anpassa det ljus som ska sändas och mottagas via DSP-kortet, konstrueras elektroniska kretsar för både sändar- och mottagardelen [3]. En pulsoximeter behöver två lysdioder för att sända ljus och en fotodiod för att ta emot ljuset från dessa. Enligt tidigare kapitel har vi konstaterat att dioderna ska ha våglängderna 660 nm (rött ljus) och 940 nm (infra-rött) ljus. Dioderna varierar dessutom med bl a strålningsvinklar och ljusintensitet. För pulsoximetrin vill man att strålningsvinkeln är tillräckligt liten för att
Digital signalbehandling i realtid för pulsoximetri 6 koncentrera största delen av ljuset mot fotodioden. Ljusintensiteten är av underordnad betydelse eftersom man kan kompensera för detta i beräkningarna. Fotodioder varierar också, framförallt med vilka våglängder de kan ta emot. I detta fall ska fotodioden vara sådan att den klarar av att ta emot ljuset från de båda lysdioderna. Fotodioden tar emot ljuset från båda dioderna och för att kunna identifiera vilket ljus som mottas är det viktigt att de båda lysdioderna inte lyser samtidigt. För att kunna genomföra detta behövs två kretsar, en för vardera ljus. Sändningen av de två ljusen styrs via DSP-kortets audioutgång och mottagningen via kortets audioingång. 3.1 Sändarkrets Det viktigaste vid konstruktionen av sändarkretsen är att strömmen anpassas till dioden efter dess specifikationer. För stor ström kan bränna dioden och för liten ström ger inte tillräckligt ljus. Anpassningen görs genom att en resistor placeras i serie med dioden, spänningsfallet sker då över båda komponenterna och på så vis minskas strömmen genom dioden, detta får göras med hänsyn till matningsspänning i kretsen. Enklaste sättet att styra när en diod ska lysa eller vara släckt är att använda sig av en transistor, denna måste också tas med i beräkningarna av motståndet på ovanstående resistorn. Styrningen av transistorn görs med DSP-kortet, vars spänning varierar mellan 0 och 1 volt. För att få transistorn att bottna anpassas strömmen till transistorns bas med hjälp av ytterligare en resistor, se Figur 4. Eftersom två lysdioder används krävs det två likadana sändkretsar. I detta projekt har de två dioderna olika våglängd, men i övrigt samma specifikationer. Transistorn är av NPN-BJTtyp, nr 2N3904, och när den bottnar är collector-emmiter spänningen V CE över den 1,5 volt. Spänningen över bas-emittor V BE är ca: 0,7 volt, matningsspänningen 5 volt och strömmen genom dioden bör vara 20 ma för bästa arbetspunkten. Vill man nu bestämma restistorernas motstånd kan man göra det med hjälp av ekvationerna (7) - (10) R C = V CC V F V sat i D, (7) där V CC, V F, V sat och i D står för matningsspänningen, spänningen över dioden, spänningen över den bottnade transistorn, respektive strömmen genom resistorn R C. Sätter man nu in de kända värden så kommer värdet på resistorn mellan dioden och matningsspänningen R C bli 165 Ω, se ekvation (8). R c = 5 1.5 0.2 20 10 3 (8)
Digital signalbehandling i realtid för pulsoximetri 7 Figur 4: Sändarkrets Strömmen till transistorns bas anpassas med resistor R B :s motstånd för att bestämma detta motstånd måste man först beräkna strömmen i B enligt ekvation (9), i D = β F i B (9) där β F har värdet 90 enligt datablad för transistorn. Sätts nu detta värde tillsammans med värdena på V BB och V BE in i ekvation (10) i B = V BB V BE R B (10) så kommer resistorn R B få det ungefärliga värdet 1,4 kω enligt ekvation (11). För att vara på säker mark så väljs värdet på R B till 1 kω 3.2 Mottagarkrets 2.22 10 3 = 1 0.7 R B (11) Fotodioden genererar en ström av det inkommande ljuset, därför måste en förstärkare användas för att göra om strömmen till spänning. Till detta finns ett flertal förstärkare att välja mellan, den vanligaste förstärkaren för en
Digital signalbehandling i realtid för pulsoximetri 8 Figur 5: Receiving circuite pulsoximeter är väldigt enkel, en op-förstärkare, en resistor och eventuellt en kondensator. Denna är väldigt känslig för störningar från elektrostatiska och magnetiska källor, för att minimera denna typ av störningar väljs en differentiell transimpedance förstärkare [3], se Figur 5. Bruset som kommer in till denna krets är samma i de två op-förstärkarna som är till vänster i Figur 5 och kommer att reducera sig själv i det sista steget. Förstärkaren är ändå inte helt fri från yttre störningar men störningarna minimeras tillräckligt innan signalen går vidare till DSP-kortet. Ip (se Figur 5) är den ström som fotodioden genererar av det mottagna ljusets intensitet. Denna ström omvandlas till en spänning som förstärks, förstärkningen bestäms av resistorerna R f enligt ekvation (12). Värdet på dessa har valts till 470 kω, vilket ger en ganska stor förstärkning. Denna förstärkning
Digital signalbehandling i realtid för pulsoximetri 9 är nödvändig eftersom det transmitterade ljuset har låg intensitet. V out = 2R f I p (12) Op-förstärkarna av typen JFET LF356N. Det är en vanlig och ganska billig variant, därför väljer vi att använda den. De övriga resistorerna har valts så att kretsen minimerar bruset maximalt, värdet på dessa blev då 2.2 kω. 4 Signalbehandling Spänningen V out från den analoga mottagarkretsen är den signal som innehåller informationen. För att kunna få ut något av den mottagna signalen, måste den behandlas på något sätt. De finns många sätt och de varierar ganska kraftigt. Vilket behandlingssätt man väljer beror på vilken information man söker i den mottagna signalen. Eftersom vi ska bestämma blodets puls och syrehalt måste vi veta signalens frekvensinnehåll. Frekvensinnehållet i signalen ger bl.a. information om periodtider och AC- respektive DC-nivåer. För att kunna eliminera kvarvarande brus måste man dessutom filtrera signalen på något sätt. 4.1 Samplingsfrekvens, decimering och frekvens innehåll Vi antar att hjärtat slår mellan 40 och 200 slag i minuten, detta motsvarar då en hjärtfrekvens mellan 0,7 och 3,5 Hz. Den signal som mottas från fingerproben har en samplingsfrekvens på 16 khz. Undersökning av signalens frekvensinnehåll visar att det inte finns något innehåll av några betydande frekvenser över 120 Hz. Detta innebär att den samplade signalen kan decimeras med en faktor 48 utan att man får någon allvarlig vikning. Då blir den relativa samplingsfrekvensen 333 Hz. Den eventuella vikning man får består av det brus som signalen kan ha kvar efter en lågpassfiltrering. När man decimerar en signal tar man helt enkelt bort de överflödiga samplen, ett exempel på detta kan ses i Figur 6 där en diskret signal decimeras med en faktor 3. Ett exempel på en inverterad signal från fingerproben som är samplad med frekvensen 16kHz och decimerad med en faktor 48 kan ses i Figur 7. 4.2 Val av filter Det finns flera sätt att bestämma periodtiden (hjärtats puls), man kan bland annat undersöka frekvensinnehållet av signalen genom att Fourier-transformera
Digital signalbehandling i realtid för pulsoximetri 10 (a) (b) Figur 6: (a) orginal signal (b) decimerad signal med en faktor 3 0.13 Röd signal ofiltrerad 0.345 IR signal ofiltrerad 0.35 0.355 0.135 0.36 0.365 0.37 0.14 0.375 0.38 (a) 0 500 1000 1500 2000 2500 0.385 0 500 1000 1500 2000 2500 (b) Figur 7: (a) visar ett exempel på en inverterad signal från den röda dioden (b) visar ett exempel på en inverterad signal från IR-dioden denna eller så kan man identifiera utseendet av pulsen och räkna antalet sampel som pulsen innehåller och beräkna frekvensen av pulsen genom detta. Studerar man Figur 7 kan man se att pulsen har ett tydligt maxvärde. Definieras detta som en start på pulsen är det ganska lätt att räkna antalet sampel innan nästa max inträffar. Eftersom beräkningen av blodets syrehalt kräver att pulsens AC respektive DC nivå är beräknade, väljer vi att söka efter en periodisk signal. Signalens periodisitet ger oss hjärtslagen. Vi väljer även att definiera DC nivån som varje hjärtslags maxvärde och AC nivån som skillnaden mellan max- och minvärde, se Figur 8. Observera att signalen är inverterad. När minvärdet ska bestämmas måste signalen
Digital signalbehandling i realtid för pulsoximetri 11 Figur 8: Visar hur AC respektive DC nivåerna är definierade lågpass-filtreras eftersom det exakta minvärdet kan vara svårt att identifiera. Olika lågpass-filter testas i MATLAB för att optimera ett filter med så låg beräkningskomplexitet som möjligt utan att kompromissa bort undertryckningen av höga frekvenser. Valet hamnar slutligen på ett 11 tappars FIR-filter, frekvenssvaret till detta filter kan ses i Figur 9.
Digital signalbehandling i realtid för pulsoximetri 12 20 11 tappars FIR filter 0 Magnitude (db) 20 40 60 80 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Normalized Frequency ( π rad/sample) 0 50 Phase (degrees) 100 150 200 250 300 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Normalized Frequency ( π rad/sample) Figur 9: Frekvenssvar av ett 11 tappars FIR-filter För att studera hur bra filtreringen går att implementera i DSP:n görs en jämförelse mellan en filtrering i MATLAB och en i DSP:n. Notera att vid jämförelser i Figur 10 är att det inte är identiska signaler som jämförs utan två olika signaler från samma person och tillfälle. När syrehalten beräknas i DSP:n enligt ekvation (6) visar det sig att vissa värden avviker ganska kraftfullt från ett genomsnitt på övriga värden. För att eliminera dessa avvikelser implementeras ett median-filter som består av en buffer med de tre senaste syrehaltsvärdena. Själva filtreringen går ut på att sortera dessa tre värden och alltid ta ut det mittersta. Eftersom det endast är ett fåtal värden som är avvikande så kommer detta filter att fungera bra.
Digital signalbehandling i realtid för pulsoximetri 13 0.144 Röd signal filtrerad i MATLAB 0.127 Röd signal filtrerad i ADSP2181 0.128 0.146 0.129 0.148 0.13 0.131 0.15 0.132 0.152 0.133 0.134 0.154 0.135 0.156 0 200 400 600 800 1000 1200 1400 1600 1800 2000 (a) 0.136 0 500 1000 1500 2000 2500 (b) 0.38 IR signal filtrerad i MATLAB 0.43 IR signal filtrerad i ADSP2181 0.385 0.435 0.39 0.44 0.395 0.445 0.4 0.45 0.405 0.455 0.41 0.415 0.46 0.42 0.465 0.425 0 200 400 600 800 1000 1200 1400 1600 1800 2000 (c) 0.47 0 500 1000 1500 2000 2500 (d) Figur 10: (a) MATLAB-filtrering av röd-signal (b) DSP-filtrering av rödsignal (c) MATLAB-filtrering av IR-signal (d) DSP-filtrering av IR-signal
Digital signalbehandling i realtid för pulsoximetri 14 5 Implementation av algoritmer i DSP-kortet Programmet är uppbyggt av en huvudrutin och en interruptrutin. Huvudrutinen avbryts när det kommer ett interupt, då tar interruptrutinen över, behandlar interuptet och återgår sedan till huvudrutinen. I våran pulsoximeter styrs all signalöverföring mellan DSP-kortet och LCD-displayen respektive fingerproben, dvs. de två sändarkretsarna och mottagarkretsen med hjälp av interruptrutinen. Interruptrutinen behandlar och lagrar dessutom alla signaler. Huvudrutinens uppgift är att utföra beräkningar på den mottagna signalen. Dessa beräkningar görs för att kunna fastställa blodets syrehalt samt hjärtats puls. Vidare ska huvudrutinen sända dessa resultat till en LCDdisplay som är kopplad till DSP-kortets seriella port. Figur 11: blockdiagram
Digital signalbehandling i realtid för pulsoximetri 15 5.1 Huvudrutin Huvudrutinen arbetar med en intern klockfrekvens på 33 MHz, vilket innebär att huvudrutinen hinner genomföra 33 miljoner instruktioner varje sekund. Jämför man det med samplingsfrekvens som är på 16 khz innebär det att huvudrutinen hinner med ungefär 2060 instruktioner per mottaget sampel. Detta antal är med god marginal tillräckligt för att våra beräkningsrutiner ska kunna genomföras. Man kan dela in huvudrutinen i fyra delar: Kontroll, detektering, beräkning och presentation av resultat. 1. Initialt sätts en räknare limit till 500, denna har till uppgift att hålla reda på hur långt fram i den lagrade ir-buffern huvudrutinen är. När räknaren kommer ned till noll återtälls alla initialvärden och huvudrutinen kollar hur långt i ir-buffern interruptrutinen har hunnit lagra nya värden. Om interruptrutinen hunnit lagra exempelvis 200 värden sen counter nollställdes, sätter huvudrutinen counter till 300 (500-200) och 300 sampel senare sätter interruptrutinen flag-1 och huvudloopen kan påbörjas igen. Denna buffergräns är till för att sätta en gräns hur långt i buffern huvudrutinen kan arbeta utan att hitta något min och max ställe. 2. När flag > 1 kommer huvudloopen anropa funktionen detection som söker efter ett minvärde i IR-buffern, när den hittat detta söker den efter ett synkront minvärde i den röda buffern. Dessa min lagras och rutinen söker efter maxvärden i respektive buffrar. Slutligen kommer detection att beräkna differensen mellan max och min för respektive buffer och sätta flag < 1. 3. När flag < 1 kommer huvudrutinen anropa funktionen calculation som jämför differensen mellan senaste min-max och föregående min-max. Är avvikelsen mer än 50 procent genomförs en ny min-max sökning på två olika sätt. Om senaste är mer än 50 procent större än föregående söks ett nytt min-max och det som var det senaste lagras som det föregående. Är avvikelsen istället mer än 50 procent mindre söks ett nytt min-max förutsatt att inte limit nås. Calculation räknar sedan ut pulsen och syrhalten i blodet. 4. De beräknade värdena på blodets syrehalt och hjärtats puls sänds via en serieport på DSP-kortet till en LCD-display.
Digital signalbehandling i realtid för pulsoximetri 16 5.2 Interruptrutinen Interruptrutinen kan delas upp i fyra delar: sändning, mottagning, filtrering och lagring. 1. DSP-kortets samplingsfrekvens är satt till 16 khz, detta innebär att kortet sänder/mottager 16 000 sampel varje sekund. Genom att skapa en puls bestående av 12 nollor, 12 ettor och 24 nollor, på den ena audioutgången och på den andra audioutgången skapar man en puls bestånde av 36 nollor och 12 ettor, kommer man att generera en puls ut ur DSP-kortet som består av 12 nollor, 12 ettor, 12 nollor och avslutas av 12 ettor, se Figur 12 Figur 12: Genererade signalpulser 2. Den signal som mottas i fotodioden samplas in i DSP-kortet via en av kortets audioingångar, denna signal inverteras för att på ett bättre sätt representera blodets puls. 3. Den mottagna signalen decimeras med en faktor 48, detta innebär att den relativa samplingsfrekvensen blir 333 Hz. Vidare filtreras signalen med ett 11 tappars FIR-filter se figur (9) i kapitlet Signalbehandling. 4. Den decimerade och filtrerade signalen lagras nu i två cirkulära buffrar,(en för ir-signalen och en för den röda signalen) som är 2016 sampel
Digital signalbehandling i realtid för pulsoximetri 17 långa, detta motsvarar ca: 6 sekunder. En räknare counter sätts till 420, när denna räknat ned till noll (420 sampel finns lagrade i ir-buffern) sätts en flagga (flag) = 1 så att en beräkningsrutin i huvudloopen kan börja bearbeta den samplen. 6 Diskussion Efter att vi studerat en del forskningsartiklar och testkört vår egen pulsoximeter prototyp har vi insett att den har en del brister. Dessa går att rätta till ifall det ges mer tid och resurser till projektet. De flesta brister som vi hittat påverkar mestadels bestämningen av syrehalten. Den största felorsaken är att fingerproben som vi skapat inte ser till att fingret ligger an mot fotodioden med ett konstant tryck. Vi har tidigare beskrivit att den väg ljuset vandrar genom ett medium påverkar absorbtionen exponentiellt, dvs. ju hårdare tryck mot dioden desto mindre väg för ljuset att färdas genom fingret, detta ger då mindre absorbtion av ljuset vilket i sin tur ger ett avvikande syrevärde. Detta går att åtgärda genom att man konstruerar fingerproben så att den klämmer till om fingret, på så sätt slipper man själv justera det kostanta tryckret. En annan felorsak är att vi inte har tagit någon hänsyn till att det finns fler än två hemoglobinsubstanser i blodet, detta fel åtgärdas genom att man tar reda på ett ungefärligt procentuellt innehåll av andra hemoglobinsubstanser och tar med deras påverkan på ljusabsorbtionen och anpassar formelberäkningen efter detta. En eventuell tredje orsak är att fingrar från olika individer har olika utseende och form. Men eftersom syrehalten beräknas genom att använda sig av en kvot R som i sin tur bestäms utifrån de olika AC- och DC-nivåerna som tas fram från samma finger vet vi inte om det blir en så stor felkälla. Felet kan bli stort om fingret avviker från de testmodeller som använts när den linjära approximationen för syrehaltsberäkningarna framtagits. En fjärde felorsak skulle kunna vara diodernas placering. De måste vara placerade så att ljuset från de båda dioderna färdas ungefär samma väg dvs. samma längd och genom samma substanser. Vi har inte heller tagit någon hänsyn i våra beräkningsalgoritmer för eventuella fysikaliska fel som användare av vår puls-oximeter kan lida av. Skulle en användare exempelvis ha ett dubbelslag skulle vår puls-oximeter räkna detta som två pulser och resultatet skulle bli att hjärtats puls blev för snabb. Detta skulle kunna åtgärdas med ett långsammare filter. Vill man sen gå ytterligare steg i förbättringen av presentationen av de
Digital signalbehandling i realtid för pulsoximetri 18 beräknade resultaten, skulle man kunna koda om algoritmen som styr kommunikationen med LCD-displayen, så att när exempelvis ett finger tas ut ur fingerproben eller när beräkningsalgoritmerna inte hittar ett nytt max-min inom utsatt fönstergräns borde LCD-displayen återställas till startläge. Idag så fungerar den så att den senaste presenterade datan finns kvar på displayen tills den hittat ny data att uppdatera med.
Digital signalbehandling i realtid för pulsoximetri 19 Referenser [1] Bra Böckers Stora Läkarlexikon. Bokförlaget Bra Böcker AB, 1993. ISBN: 91-7133-172-7. [2] S.J. Leno S. Pedrotti Frank L. Pedrotti. Introduction To Optics. John Wiley & Sons, 2nd edition, 1996. ISBN: 0-13-016973-0. [3] J G Webster. Design Of Pulse Oximeters. Institute of Physics Publishing, 1997. ISBN: 0-7503-0467-7. [4] J.A.Pologe. Pulse Oximetry, Technical aspects of machine design. ASA Newsletter 54.