title of the term paper - college of engineering ... · web view1.introduction1 1.1 purpose of...

38
EOG for REM Sleep Detection By Robert Slavicek Andrew Wassef ECE 445, SENIOR DESIGN PROJECT SPRING 2005 TA: Adam Zych 5/3/05 Project No. 23

Upload: doanthuan

Post on 05-May-2018

214 views

Category:

Documents


1 download

TRANSCRIPT

EOG for REM Sleep Detection

By

Robert SlavicekAndrew Wassef

ECE 445, SENIOR DESIGN PROJECT

SPRING 2005

TA: Adam Zych

5/3/05

Project No. 23

ABSTRACT

Our team designed, built, and tested a system to detect, record, and analyze lateral eye motion and body temperature changes. We did this with the intention of being able to portably detect REM sleep patterns for personal, diagnostic, and research purposes. Our system captured lateral eye position data by taking advantage of the natural corneal-retinal dipole in the eye. Round Ag/AgCl electrodes placed on the lateral canthi of the eyes are able to detect rotation of the corneal-retinal dipole and provide a signal proportional to lateral eye position. Our circuit then amplifies, filters, and reduces DC offset of this signal in order to produce a more measurable signal. A change in the resistance of the thermistor placed under the armpit was used to follow body temperature changes. These signals were then fed into a sound card on a PC. Once digitized, the eye signal was analyzed by a program designed to detect eye deflection events and display them in a user-friendly format. We were able to successfully determine when a subject went into REM sleep by seeing when left-right signals from the eyes were similar to the eye movement seen when a subject is in REM sleep.

2

TABLE OF CONTENTS

1. INTRODUCTION....................................................................................................................11.1 Purpose of Project...............................................................................................................11.2 Electro-Oculargram Signal.................................................................................................11.3 Design Characteristics........................................................................................................11.4 Block Diagram....................................................................................................................2

2. DESIGN PROCEDURE...........................................................................................................32.1 Analog Signal Circuitry......................................................................................................32.2 Tools Used..........................................................................................................................3

3. DESIGN DETAILS..................................................................................................................43.1 Analog Signal Circuitry for EOG.......................................................................................4 3.1.1 Buffer Circuit..............................................................................................................4 3.1.2 Differential Amplifier.................................................................................................4 3.1.3 Low Pass Filter...........................................................................................................5 3.1.4 Variable Amplifier......................................................................................................6 3.1.3 Summer.......................................................................................................................6 3.1.3 Inverting Amplifier.....................................................................................................73.2 Analog Signal Circuitry for Thermistor.............................................................................7 3.2.1 Wein Bridge Oscillator...............................................................................................7 3.2.2 Temperature Sensor....................................................................................................83.3 Data Acquisition.................................................................................................................83.4 C Program.........................................................................................................................10

4. DESIGN VERIFICATION.....................................................................................................144.1 Testing..............................................................................................................................144.2 Conclusions.......................................................................................................................18

5. COST......................................................................................................................................195.1 Parts..................................................................................................................................195.2 Labor.................................................................................................................................19

6. CONCLUSIONS....................................................................................................................206.1 Accomplishments.............................................................................................................206.2 Obstacles...........................................................................................................................206.3 Future Improvements........................................................................................................20

APPENDIX I – Electrode Placement.....................................................................................21APPENDIX II – PSPICE Scematic........................................................................................22APPENDIX III – eog.c...........................................................................................................23

REFERENCES.......................................................................................................................25

3

1. INTRODUCTION

1.1 Purpose of Project

Our main goal is to allow the home user to be able to identify how much random eye motion (REM) sleep they are getting, possibly revealing any sleeping disorders he or she may have. We planned on accomplishing this by creating a portable, comfortable device that can be brought home and used to record sleeping patterns (by looking for random eye motion signals and temperate changes found in REM sleep). With the ability to monitor REM sleep, it becomes possible to determine which daily activities cause adverse effects on sleep. People will become able to adjust both their active work habits and their sleeping habits in order to find an optimal balance between them. We wish to successfully record this data, and to create a program that analyzes and detects when a subject has entered REM sleep. This is accomplished using the fact that the eye stays in relatively constant position while in non-REM sleep and body temperature is regulated and kept at the patient’s normal temperature. When the subject goes into REM sleep, the eyes move in a sporadic, sometime oscillatory manor, which can cause the corneal-dipole of the eye to move back and forth, allowing us to capture this changing voltage using electrodes on the outsides of each eye. Also during REM sleep, the body temperature is not regulated, so it deviates towards the room temperature, causing decreased body heat. By digitally recording and analyzing the data from this device a subject can accurately track his or her REM sleep throughout the course of several weeks, and verify whether any lifestyle changes or medical equipment have had an effect or not.

1.2 Electro-Oculargram Signal

The electro-oculargram (EOG) is a measurement of a biopotential produced by changes in eye position. In the normal eye, there is a steady electric dipole of approximately 0.4 to 1.0 mV [1] between the cornea and the retina. This dipole is not caused by muscle movement, but rather by the higher metabolism rate of the retina, which creates more free ions in the back of the eye, leading to a difference in voltage [2]. The corneal-retinal potential can be measured by placing a single surface electrode directly lateral to each of the orbits of the eye on the canthi (near temple) and a reference electrode to the forehead (see Appendix I).

When a test subject is gazing straight ahead, the corneal-retinal dipole is symmetric between the two electrodes, and measured EOG output is zero. As the subject looks to the right, the cornea becomes closer to the right lateral electrode and the retina becomes closer to the left lateral electrode, causing the EOG output to be more positive since we measure right minus left. The inverse is true when the subject looks to the left. When measuring the EOG output, there is a fairly linear relationship between the horizontal angle of gaze and the EOG output. This relationship remains true up to 30 degrees of eye shifting [3].

1.3 Design Characteristics

The main factor that needed to be taken into account when designing this system was obtaining a useable biosignal. Since the signal directly from the eyes is between 0.4mV and 1.0 mV, we must have a gain on the order of 1000 to amplify the biosignal into a useable signal (in the volt range). The frequency of this signal is very small, approximately DC. Since the highest you can oscillate your eyes is less than 10 Hz, a filter was choosen with a cut off value of 34Hz. A sampling rate for the sound card which imported data into matlab was important in that the signal had to be digitized at rate so that no data would be lost (more than 1000 Hz). Since every person’s biology is different EOG signals that are

1

Signal Filtering

and Amplification

Signal Filtering

and Amplification

Test Subject(Electrodes)

Test Subject(Thermistor)

SummerCircuit

Data Acquisition

&Storage

C Program&

Display

detected will vary from person to person, we must have variable factors to account for such differences. Thus the resistances chosen in one of the gain portions of our circuit must be potentiometer, enabling us to quickly find the most appropriate resistance value. Also a natural DC offset is present due to the electrodes and must be accounted for. This too is variable from person to person and must be able to change by use of a potentiometer. If an incorrect resistance is chosen in either potentiometer, the circuit could have the op-amps saturate and fail.

1.4 Block Diagram

Figure 1.3 – High level block diagramBlock Description:

Test Subject: An electrode will be put around the outer part of each eye, with a reference ground electrode placed on the forehead above the bridge of the nose. By combining these signals we obtain a changing voltage depending on eye motion. A thermistor will be placed on the subject (held in armpit, secured by and ace bandage wrap) to record body surface temperature.

Signal Filtering and Amplification: This is the analog circuitry that must clean up the biosignals so that they are useable for data analyze.

Summer Circuit: We only have one sound card available so we must combine these two biosignals into one.

Data Acquisition and Storage: The signal will be convertered to a digital signal using the sound card and the program Audacity. This signal will then be fed into Matlab were the signal will be processed and split, allowing us to view a digital representation of the eye movement

C Program and Display: This C program will take in the digital output of Matlab as a .txt file and determine at what time the subject was looking left or right in a user friendly manor.

2

2. DESIGN PROCEDURE

2.1 Design Decisions

Due to the larger size (more surface area to attach to) and the stickiness of the adhesive, along with overall general comfort, the Dyna/Trace Stress Electrodes (made by ConMed Corporation) were chosen as our eye electrodes over other brands and types.

The temperature reading could have been done any number of ways, however the cheapest was to have a simple thermistor placed under the armpit. Thus went the body temperature went down the thermistor resistance went up. Using this change in resistance we were able to use this in a feedback loop to vary the peak to peak voltage of an electrical signal.

This device must be portable and cheap, thus we must use basic analog circuitry to clean and amplify our signal. By using LM741 op-amps, we will have a cheap, reliable, easy to use, and readily available analog system [4].

We choose to use the A/D conversion of the sound card since all PC have an audio microphone jack, which we can use to sample our signal. The program Audacity was used to record this data, because it could sample at a rate we needed. The commands in Matlab for this same procedure did not work and could not be used because the frequency of the eye movement was too low. Matlab was used to filter and split the signal (thus allowing us to place the two biosignals on one line). Other ideas for digitally recording the signal centered around using Agilent VEE and recording a multimeter reading of the signal at a certain rate. This was not feasible because the system would then become too bulky and expensive and also we would not be able to record both of the biosignals at the same time.

C was chosen as the programming language due to prior experience and ease of use. The user interface had to been easy and very readable in order to have the general public consider it viable.

2.2 Tools Used

In order to prove that our signal analog circuitry was a feasible idea, Cadence PSD was used to create circuit diagrams and simulate them using test signals. Once the design circuitry was finalized, the circuit was created on a protoboard and analyzed and tested using a Agilent 54642A Oscilloscope. By using a 1mV 1 Hz signal (to model the voltage from the eyes) from a waveform generator, we could debug and verify all parts of the project with out having to attach our to the circuit. Any standard PC sound card with microphone capabilities is useable when coupled with the program Audacity. Audacity is free, open source software for recording and editing sounds and for our uses it can record our signal output as a .wav file. This signal is then processed in Matlab, which was used to further filter the signal and split the two biosignals. Matlab was also used to convert the wave file into a .txt file with the voltage reading sampled at a certain frequency. CodeWarrior by Metrowerks was used to debug, compile, and run the C code.

3

3. DESIGN DETAILS

3.1 Analog Signal Circuitry for EOG

The overall block diagram of the analog signal circuitry for the EOG signal is shown in Figure 3.1. The overall circuit is shown in Appendix II.

Figure 3.1 – Analog signal circuitry

3.1.1 Buffer CircuitThe input buffer circuit (Figure 3.1.1) is a safety feature to prevent any electrical shock to the subject. Since there is no current flowing in the inverting and non-inverting inputs of the op-amp, connecting the electrodes to the non-inverting inputs insures that no current will be flowing to the user. Due to the high input resistance and the low output resistance, there is no loss of signal in the buffer circuit.

Figure 3.1.1 - Buffer

Equation 3.1.1 shows the gain for this buffer.

Av=1+

( R 1+R 3)R 2 (3.1.1)

In our circuit all the resistances (R1, R2, R3) are 10K, so the overall gain is 2.

3.1.2 Differential AmplifierThe differential amplifier is used to amplify the difference between the two electrodes. This helps by attenuating signals that are present at both electrodes. These common signals may be the heartbeat or body movement and since they are present on both electrodes, the differential amplifier effectively cancels the signals out. The difference of the two signals is outputted in a single output signal, shown in Figure 3.1.2.

4

Figure 3.1.2 – Differential Amplifier

Equation 3.1.2 shows the gain for this differential amplifier, assuming that R6=R4 and R7=R5.

Av=(V 4−V 3 )(R 5 /R 4 ) (3.1.2)

In our circuit the resistances of R6, R4 are 10K and R7, R6 are 68K, so the overall gain is 6.8.

3.1.3 Low Pass Filter

The next component of the circuit is the low pass filter seen in Figure 3.1.3. This part of the circuit is used to attenuate high frequencies seen from muscle twitches and other high frequency noise (60Hz).

Figure 3.1.3 – Low Pass Filter

The cutoff frequency and gain is dependent on the resistors and capacitor. In order to gain a greater attenuation after the cutoff frequency, four filters were put in series creating a fourth order low pass filter.

FH= 1

2 π⋅R9⋅C1 (3.1.3.1) Av=−R 9/ R 8 (3.1.3.2)

The expected cutoff is shown in Equation 3.1.3.1 and the gain is shown in Equation 3.1.3.2. The values choosen are R8, R9 equal to 10K and the capacitor is 470pF. This gives us a cutoff frequency of roughly 33.8 Hz, which completely attenuates signals that are not from the eye dipole movement. The gain of this circuit is unity since the resistances are matched.

5

3.1.4 Variable Amplifier

The variable amplifier is shown in Figure 3.1.4 and serves to amplify the signal that is outputted from the filter. This is needed in order to gain a larger difference when the eye voltage is switching between positive and negative. The feedback resistor is variable in this case to give the operator greater control over how much gain is produced. This is needed because each subject has differing dipole strengths and attenuation due to skin, fat, etc.

Figure 3.1.4 – Variable Amplifier

For this circuit, the gain is shown in Equation 3.1.4.

Av=−Pot / R 10 (3.1.4)

The potentiometer was at optimum at 10.56K and R10 is 2K, giving us a gain of 5.28. This value is variable however and is altered to best fit the subject.

3.1.5 Summer

In Figure 3.1.5 is a basic summer circuit, which is used to decrease DC voltage offset. In the case of our circuit, there is a certain amount of DC offset from the electrodes, which is amplified throughout the circuit. This part of circuit effectively blocks that offset by summing it with an equal and opposite voltage. By using voltage divider on a potentiometer with ±12V on its ends, a specific voltage can be chosen.

Figure 3.1.5 - Summer

Av=−R f⋅(V i

Ri+

V b

Rb)

(3.1.5)

6

The output of the circuit is shown in Equation 3.1.5. Our Vb (potentiometer voltage) was +4.75V, which got rid of the unwanted offset voltage. This Vb is variable and is set to whatever value best zeros the DC offset for each individual subject. The gain is approximately –20, since for our circuit the Rf value was 100K and the Ri, Rb was 10K and the input voltages were roughly 1V.

3.1.6 Inverting Amplifier

The last aspect of the circuit is the inverting amplifier shown in Figure 3.1.6. This serves to increase the signal so that the output can be easy read on an oscilloscope as well as by the sound card (Audacity) in conjunction with Matlab so that our EOG program can differentiate eye movement effectively.

Figure 3.1.6 – Inverting Amplifier

Av=−Rf /Ri (3.1.6)Equation 3.1.6 shows the gain acquired by this circuit. The Rf is 100K and the Ri is 10K in our circuit giving us an over gain of 10 from this amplifier.

3.2 Analog Signal Circuitry for Thermistor

This circuit must place the thermistor at a certain frequency and then allow the change in resistance to change the voltage level, then mix the signal with the EOG circuit output.

3.2.1 Wein Bridge Oscillator

Figure 3.2.1 shows the Wein Bridge oscillator. This is used to create a sine wave so that the temperature sensor is at a different frequency spectrum

Figure 3.2.1 – Wein Bridge Oscillator

The frequency of oscillation is shown in Equation 3.2.1.

7

f =1

(2 pi( R )(C )) (3.2.1)

This circuit oscillates at a frequency of 300Hz, which is well above our EOG circuit output (DC-33.8Hz).

3.2.2 Temperature Sensor

Figure 3.2.2 shows how the temperature dependent resistance of the thermistor is coupled to the 300Hz sine wave and then summed with the EOG circuit output.

Figure 3.2.2 – Temperature Sensor

As the temperature decreases the resistance of the thermistor increases, which leads to a decrease in the voltage output of the first op-amp (simple inverting amplifier) according to Equation 3.1.6. That signal is then summed with the EOG signal according to Equation 3.1.5. This single output is now ready for data acquisition.

3.3 Data Acquisition

After receiving the signal from the circuit board, the sound card takes in the varying voltage as a sound signal. The audio signal (Figure 3.3.1) is taking in through a program called Audacity. The record function enables us to record the voltage signal and a sample of 8000 Hz at 16 bits.

Figure 3.3.1 – Sample from eyes

8

There is a microphone gain feature in the software that allowed us to vary the gain of the sound card, which helped in dealing with a wide range of voltages.

From Audacity, the file was encoded as a .wav file and sent to Matlab for data analysis. In Matlab, the wavread function takes in the .wav file data and converts into a data array of M by 1 samples, where M is the number of samples taken by the sound card. This data contains the data of the thermistor at 300 Hz and the eye movement around the 3-5 Hz range. We therefore can perform the FFT or Fast Fourier Transform (Figure 3.3.2) of this signal so we can analyze the frequency range of each component of the signal.

0 50 100 150 200 250 300 350 400 450 5000

1

2

3

4

5

6

7x 10

4

Figure 3.3.2 – FFT of two sinusoidal signalsIn either in the Fourier domain or the time domain, we can apply Matlab filters to isolate each component for analysis. We use Matlab’s sptool command to access Matlab’s filters. We input our data signal and then apply either an FIR bandpass filter or LS lowpass filter. We mostly used a LS lowpass filter, seen in Figure 3.3.3, with order of 80 to get our desired view of eye movement over the night.

Figure 3.3.3 – Low pass filter order 80, cutoff 170Hz

After filtering we could view our filtered signal, seen in Figure 3.3.4.

9

Figure 3.3.4 – Filtered Signal

We output the refined data into a sleep.txt file that can be used for analysis by a handwritten C program.

3.4 C Program

Having the text file with a list of voltages corresponding to eye position is sufficient for analysis.

Our C program “eog” (see Appendix III) accepts the data file and the sampling frequency as inputs. It then reads in the data, matches each data point with its corresponding time, and determines when the subject looked left and right. This is accomplished by comparing each data point to a previously determined threshold value to decide if the eyes’ lateral deflection is sufficient to consider the subject to be looking left or right. Additionally, a previously determined reset threshold value is used to decide when the eye has returned far enough back to center so that a subsequent lateral deflection is considered to be a separate left or right eye movement. Figure 3.4.1 demonstrates these two threshold values on a sample data set.

Figure 3.4.1: Sample input data to eog program showing how the program

recognizes a left/right eye movement with four threshold values

10

The program outputs a data file called “out.txt” that contains a list of all recorded eye movements. This file displays if the subject looked left or right, the time at which the subject looked left or right, and the voltage value that triggered the output to be written. The program also asks the user if he would like to view the output file as soon as it is created. The program interface as well as the output created from the input data in Figure 3.4.1 is shown below in Figure 3.4.2:

remsun1> eog

Enter input file name: exinput.txtEnter sampling frequency (Hz): 20Would you like to average the data (y/n)?: n

The output file 'out.txt' was written successfully!Would you like to view it (y/n)?: y

Left at 0.4500 s due to -0.2017 VRight at 1.9500 s due to 0.2179 VLeft at 3.7500 s due to -0.2174 VRight at 5.5000 s due to 0.2285 VLeft at 7.2500 s due to -0.2547 VRight at 9.0000 s due to 0.2144 VLeft at 10.7000 s due to -0.2121 VRight at 12.5000 s due to 0.2120 VLeft at 14.3000 s due to -0.2259 VRight at 16.0000 s due to 0.2297 VLeft at 18.0500 s due to -0.2486 VRight at 18.4500 s due to 0.2181 VLeft at 18.8500 s due to -0.2195 VRight at 19.3500 s due to 0.2295 VLeft at 19.9000 s due to -0.2308 V

Figure 3.4.2 – Output of EOG C program

One additional feature of the program is an averaging function. It was found that noisy signals could be improved by averaging groups of data points together (groups of roughly 5-10 points for our purposes). The program asks if the user would like to average the data before it is processed. It then performs the averaging and outputs the new data to a temporary file called “temp.txt.” This is the file the program then uses to analyze the data as before. Figure 3.4.3 shows an example of noisy data before averaging and Figure 3.4.4 shows the same data after averaging with the program.

11

EOG Circuit Output (Recorded by MatLab)

-0.015

-0.005

0.005

0.015

0.025

0.035

0.045

0.01 1.51 3.01 4.51 6.01 7.51 9.01 10.51

Time (s)

Volta

ge (V

)

Figure 3.4.3: Sample noisy data from the circuit recorded by MatLab through the soundcard

EOG Circuit Output (Averaged by 5's)

-0.015

-0.005

0.005

0.015

0.025

0.035

0.045

0.01 1.51 3.01 4.51 6.01 7.51 9.01 10.51

Time (s)

Volta

ge (V

)

Figure 3.4.4: Data from Figure 3 averaged in groups of 5 by the eog program to reduce noise

Finally, we decided to hard code the values for the upper writing threshold, lower writing threshold, upper reset threshold, lower reset threshold, and the number of data points to be averaged together (should the user decide to average the data before processing). These five values are located at the top of the code and only need to be changed there. The program can then be recompiled and run. We decided to hard code these values because they don’t change often enough to warrant asking the user for them each time the program is run. Additionally, an unfamiliar user might not know good values to set.

12

Input data file

Input sampling frequency

Average data?

Average data and output to temp.txt

Yes No

Analyze data for left/right eye movements with preset threshold values

Output to out.txt

View output file?

Display output

Yes No

Quit

However, should these values need to be changed for a particular set of data, a somewhat familiar user can easily alter them in the code.

A summary of the flow of information in the program is shown in Figure 3.4.5.

Figure 3.4.5: Summary of the flow of information in the eog program

13

4. DESIGN VERIFICATION

For the system, tests were first performed with a function generator, oscilloscope and then later with the circuit hooked up to the eyes.

4.1 Testing

Our circuit was first tested using Cadence PSD. Once the circuit was finalized and created on a protoboard a 1 Hz sine wave from the function generator was used to model what oscillatory eye movement would be like. Using an oscilloscope, the gain of each stage was found and was compared to the theoretical gain to verify that the circuit was working correctly, shown in Table 4.1.

Table 4.1 – Comparison of Theoretical and Actual GainInput Buffer

Diff. Amp

4th OrderLow-PassFilter

VariableAmp

SummerCircuit

InvertingAmp

Total

Theoretical Gain

2 V/V -6.8 V/V 1 V/V -5.28 V/V -20 V/V -10 V/V 14361 V/V

Actual Gain 2 V/V -6.5 V/V .89 V/V -5.1 V/V -17.9 V/V -10 V/V 10562

Figure 4.1 displays the frequency response of the circuit, which shows that our circuit almost completely attenuates signals higher than 50 Hz. This allows the EOG signal to pass, but not the higher frequency signals (muscle biosignals, 60Hz noise).

0 0.5 1 1.5 2 2.5 30

0.5

1

1.5

2

2.5

3

Frequency (log) Vs. Gain (log)

Frequency (Hz) (log)

Gai

n (V

out/V

in) (

log)

Figure 4.1 – EOG circuit output gain frequency response

The software was easily tested by using the function generator to input a signal that most likely the sound card would see. We started at a 2 V peak to peak sinusoidal signal at 3 Hz to be recorded. We

14

changed the range of voltages to see which range of voltages could still be analyzed by Audacity. The gain from the software can be varied from -36 dB to 36dB meaning that voltages ranging from .48 V to 3.74 V could be monitored. We also used another function generator to add a 300 Hz signal to the previous 3 Hz signal.

After recording this set of data, we had enough materials to traverse through Matlab and test out all the filter and data acquisition tools they had to offer.

Below, we show three different recordings of eye motion using our system. The first trial is moving the eye in a “square wave” fashion, the second is simulating REM in a “sine wave” fashion, and the third is showing the effects of an up and down eye movement.

EOG Circuit Output

0.25

0.35

0.45

0.55

0.65

0.75

0.85

0.95

1.05

0.05 1.05 2.05 3.05 4.05 5.05 6.05 7.05 8.05 9.05

Time (s)

Vol

tage

(V)

Figure 4.1.1: Sample data from circuit when subject looks center, left, center, right, center, etc. in a stepwise manner

Figure 4.1.1 is the voltage data obtained from the file output by Matlab, which is recording the output of the circuit. Below is the output that results from our program after it analyzes the data:

Left at 0.0500 s due to 0.3102 VRight at 0.6500 s due to 0.9917 VLeft at 1.2000 s due to 0.3910 VRight at 1.8000 s due to 0.9451 VLeft at 2.3500 s due to 0.4125 VRight at 3.0500 s due to 0.9624 VLeft at 3.7000 s due to 0.3767 VRight at 4.4000 s due to 0.9649 VLeft at 5.0000 s due to 0.3725 VRight at 5.6000 s due to 0.9146 VLeft at 6.3000 s due to 0.2827 VRight at 6.9500 s due to 0.9137 VLeft at 7.5500 s due to 0.3443 VRight at 8.2000 s due to 0.9810 VLeft at 8.7000 s due to 0.3835 VRight at 9.3000 s due to 0.9009 V

15

The program is able to accurately identify every left and right eye movement event and output this information to a user-friendly text file.

EOG Circuit Output

-0.5

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.05 1.05 2.05 3.05 4.05 5.05 6.05 7.05 8.05 9.05

Time (s)

Vol

tage

(V)

Figure 4.1.2: Sample data from circuit when subject simulates REM

Figure 4.1.2 is the voltage data obtained from the file output by Matlab, which is recording the output of the circuit. Below is the output that results from our program after it analyzes the data:

Left at 0.0500 s due to -0.4279 VRight at 0.1500 s due to 0.1525 VLeft at 0.4000 s due to -0.3228 VRight at 0.6500 s due to 0.1831 VLeft at 0.8500 s due to -0.3472 VRight at 1.0500 s due to 0.1239 VLeft at 1.3500 s due to -0.3410 VRight at 1.5500 s due to 0.1944 VLeft at 1.8500 s due to -0.3426 VRight at 2.1000 s due to 0.2452 VLeft at 2.3000 s due to -0.3210 VRight at 2.5500 s due to 0.1284 VLeft at 2.8000 s due to -0.3957 VLeft at 3.2500 s due to -0.3876 VRight at 3.5500 s due to 0.2024 VLeft at 3.7500 s due to -0.3952 VRight at 4.0500 s due to 0.2044 VLeft at 4.2500 s due to -0.4400 VLeft at 4.7000 s due to -0.3433 VRight at 4.9500 s due to 0.1645 VLeft at 5.1500 s due to -0.3439 VRight at 5.4000 s due to 0.1676 VLeft at 5.6000 s due to -0.3352 VRight at 5.9500 s due to 0.2418 VRight at 6.3500 s due to 0.1550 VLeft at 6.6000 s due to -0.3099 VLeft at 7.1500 s due to -0.3518 VRight at 7.3500 s due to 0.2460 V

16

Left at 7.6000 s due to -0.3593 VRight at 7.8000 s due to 0.1448 VLeft at 8.1000 s due to -0.3291 VLeft at 8.5500 s due to -0.3490 VRight at 8.8500 s due to 0.2031 VLeft at 9.1000 s due to -0.3651 VLeft at 9.5500 s due to -0.3775 VRight at 9.8000 s due to 0.1818 V

The program had a little more difficulty with this data since the eye was moving very rapidly and the sampling frequency was not high enough. However, it was able to identify most left and right eye movement events.

EOG Circuit Output

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5

0.05 0.55 1.05 1.55 2.05 2.55 3.05 3.55 4.05 4.55

Time (s)

Vol

tage

(V)

Figure 4.1.3: Sample data from circuit when subject looks left and right for

2.5 seconds and then looks up and down for 2.5 seconds

Figure 3.1.3 is the voltage data obtained from the file output by Matlab, which is recording the output of the circuit. Below is the output that results from our program after it analyzes the data:

Left at 0.0500 s due to -0.2066 VRight at 0.5500 s due to 0.4051 VLeft at 1.2000 s due to -0.2246 VRight at 1.9500 s due to 0.4172 V

This data demonstrates that the circuit is able to ignore up and down movements of the eye. Only left and right movements, as with REM sleep, will be recorded and output by the program.

4.2 Conclusions

17

Everything worked in the theoretical stage and when we simulated the random eye motion of REM sleep. This translated over into successful capture of REM sleep data each time a subject slept in the lab.

5. COST

18

5.1 Parts

Labor: Bob (120 hours * $50/hr * 2.5) + Andrew (120 hours * $50/hr * 2.5)

= $30,000

Table 5.1 shows the final parts and prices used in the final version of our project.

Table 5.1 - Parts List and Total Cost

Part Number Manufacturer Description Price Quantity TotalCFR-50JB-2R Yageo 2K Resistor $0.046 1 $0.05CFR-50JB-10R Yageo 10K Resistor $0.046 15 $0.69CFR-50JB-68R Yageo 68K Resistor $0.046 2 $0.09CFR-50JB-100R Yageo 100K Resistor $0.046 15 $0.69CFR-50JB-100R Yageo 100K Resistor $0.046 1 $0.05B32620A6472J EpCos 470pF Capacitor $0.37 4 $1.48LM741CN Nat. Semi. Op-Amp $0.68 20 $13.6RL1003-2871-103-SA Thermometrics Thermistor $3.01 1 $3.01PVG5H203A01R00 Murata 20K Trim Pot $0.89 4 $3.56

Sound Blaster 24-bit sound card $31 1 $3131112496 ConMed Electrodes (30) $4.50 1 $4.50

Dell Laptop $900 1 $900Radioshack Microphone cable $6 1 $6

1N5338 Fairchild Voltage Regulator $.60 3 $1.80Kingston 256MB thumb drive $24 1 $24

Total $1031.76

5.2 Total Cost

Total Cost = Labor + Parts = $30000 + $1031.76 = $31031.76

6. CONCLUSIONS

19

6.1 Accomplishments

We have successfully designed and built a system to detect lateral eye motion. We have taken data over long periods of time and successfully analyzed and displayed the results. The data collected from our system was accurate and consistent. The circuit outputted a strong, clear signal that corresponded to the lateral eye position. We were then able to accurately digitize this signal and analyze the data for left and right eye deflections with Matlab and our handwritten C program. Our device can be used at home with a personal PC if the user has some kind of data acquisition capabilities. Our circuit and our program are freestanding entities and Matlab is just one known program that can bridge the gap.

Overall, we consider the project to be a great success and we are very proud of our accomplishments. We worked very well together as a team. We were able to work productively together as well as delegate work according to our individual strengths when necessary. We also all learned a great deal and overcame several obstacles to produce a fully functional, biomedical instrument.

6.2 Obstacles

There were unforeseen barriers that we had to overcome in the construction of our project. The offset of electrodes pushed the patient’s signal out of viewable range and signals were lost due to saturation. Electrodes would fall off the face during a night of sleeping in subjects own bed. The thermistor was not responsive enough to accurately gauge when REM sleep occurs due to the fact it was hard to control temperature in our environment in the lab. We were still able to overcome most of these problems to produce a working project.

6.3 Future Improvements

We feel there are areas of improvement on the existing work we just finished. There could be more functionality by adding EEG, EMG, HR, or BP monitors to help better determine the exact time of REM sleep. For each patient, the circuit had to be recalibrated to specific level so it could monitor the person accurately. This was a tedious and a time consuming task. A feedback loop in the circuit to normalize the retinal-corneal dipole signal from all users rather than having to manually adjust the potentiometer in the circuit and the threshold values in the program would be a great addition to the circuit. Lastly, if we could make this a truly portable system, we would add the circuit to PCB board for easy transferring.

20

APPENDIX I– Electrode Placement

Figure 1 – Electrode placement on head. One electrode on the forehead (ground)and one set of electrodes on the canthi of both eyes (near the temple).

APPENDIX II – PSPICE Schematic21

APPENDIX III – eog.c22

Below is the c program that is used to analyze the results and was used to determine when a subject was in REM sleep.

#include <stdio.h>#include <string.h>

#define UWTHRESH 1.0 /*Define upper write threshold value*/#define LWTHRESH –1.0 /*Define lower write threshold value*/#define UFTHRESH .3 /*Define upper flag reset threshold value*/#define LFTHRESH -.3 /*Define lower flag reset threshold value*/

#define avenum 5 /*Define number of data points to average together*/

int main(){

FILE *in; FILE *out; char infile[50]; char view[1]; char ave[1]; char buffer[50]; float eog=0; float f=0; float time=0; int count=0; float tot=0; int flag=0; int i=0;

printf("\nEnter input file name: "); /*Prompt for input file*/ scanf("%s",&infile);

in=fopen(infile,"r"); /*Open input file for reading*/

if(in != NULL) /*Check input file opened*/ { printf("Enter sampling frequency (Hz): "); /*Prompt for freq*/ scanf("%f",&f); printf("Would you like to average the data (y/n)?: "); /*Prompt for data averaging*/ scanf("%s",&ave);

if(strcmp(ave,"y") == 0) /*Average data if desired*/ {

out=fopen("temp.txt","w"); /*Open temp file for writing*/ while(flag==0) { tot=0; for(count=1;count<=avenum;count++) /*Average sets of numbers*/

{ if(fscanf(in,"%f",&eog) != EOF) { tot=tot+eog; } else flag=1;}

for(i=0;i<(count-1);i++) /*Print ave of groups of numbers that many times*/

{ fprintf(out,"%f\n",tot/(float)(count-1));}

}

fclose(in); fclose(out);

}

if(strcmp(ave,"y") == 0) /*Open the appropriate input file*/ {

in=fopen("temp.txt","r"); }

23

else

in=fopen(infile,"r");

out=fopen("out.txt","w"); /*Open output file for writing*/ count=0; flag=0;

while(fscanf(in,"%f",&eog) != EOF) { count++;

if((eog<UFTHRESH) && (eog>LFTHRESH)) /*Reset flag variable*/

{ flag=0; }

if((eog>=UWTHRESH) && (flag==0)) /*Write to output if above threshold*/ { time=count/(float)f; fprintf(out,"Right at %9.4f s due to %9.4f V\n",time,eog); flag=1; }

if((eog<=LWTHRESH) && (flag==0)) /*Write to output if below threshold*/ { time=count/(float)f; fprintf(out,"Left at %9.4f s due to %9.4f V\n",time,eog); flag=1; } }

fclose(in); /*Close input and output files*/ fclose(out);

printf("\nThe output file 'out.txt' was written successfully!\nWould you like to view it (y/n)?: "); scanf("%s",view);

if(strcmp(view,"y") == 0) /*Display output file if desired*/ { printf("\n"); in=fopen("out.txt","r"); while(fgets(buffer,50,in) != NULL) { printf("%s",buffer); } } }

else /*If input file does not open*/ printf("\nInvalid input file.\nOutput not written!\n");

printf("\n");

return 0;}

24

REFERENCES

[1] “A manual of standard terminology, techniques, and scoring system for sleep stages of human beings.” Ed. Allan Rechtschaffen, Anthony Kales. US National Institutes of Health. Pub No. 24.

[2] “The Electric Signals Originating in the Eye.” March 2005,

<http://butler.cc.tut.fi/~malmivuo/bem/bembook/28/28.htm>

[3] Morgan, Stuart W. et. al. Utilizing EOG for the Measurement of Saccadic Eye Movements. February 2005, <http://www.eng.monash.edu.au/ieee/ieeebio1999/p33.htm>.

[4] J.D. Enderle, S.M. Blanchard, J.D. Bronzino, Introduction to Biomedical Engineering. Boston: Academic Press, 2000, pp 180-210.

25