Beruflich Dokumente
Kultur Dokumente
OF GLUCOSE SOLUTION AT
VARYING FREQUENCIES
by
ACKNOWLEDGEMENT
This paper would not have been possible without the guidance and the
help of several individuals who in one way or another contributed and extended
their valuable assistance in the preparation and completion of this study.
My design adviser, Dr. Liang Yu-Shyu, a Biomedical Engineering
professor in Chung Yuan Christian University Taiwan, for sharing his time and
exemplary knowledge in this particular field.
Our Professor, Engr. Noel B. Linsangan, Subject Chairperson of the
Computer Engineering program, for guiding and teaching us everything we need
to know about this course subject.
To Ms. Hui-Lin Yu, a Biomedical Engineering student of CYCU - for her
unconditional patience and dedication in helping me in my laboratory
experiments.
To Ms. Jenny Wu and Mr. William Chen, for helping me get
acquainted with my laboratory mates and for being my companions in Taiwan.
To Mr. Yuanta Shih and Mr. Yi-Wei Chen for teaching me with my
software application program.
iii
TABLE OF CONTENTS
TITLE PAGEi
APPROVAL SHEET.ii
ACKNOWLEDGEMENT...iii
TABLE OF CONTENTS.iv
LIST OF TABLESvi
LIST OF FIGURES.vi
ABSTRACT..vii
Chapter 1: DESIGN BACKGROUND AND INTRODUCTION.1
Background.1
Statement of the Problem..3
Objectives of the Design.3
Significance and Impact of the Design...4
Scope and Delimitation5
Definition of Terms.6
Chapter 2: REVIEW OF RELATED DESIGN LITERATURES AND STUDIES...........8
Chapter 3: DESIGN PROCEDURES.................................................................15
Experiments General Block Diagram..........................................15
Experiments Procedural Flowchart.............................................18
Software Application......................................................... ........19
Windows Application Flowchart..................................................20
Chapter 4: TESTING, PRESENTATION, AND INTERPRETATION OF DATA..........21
Bioimpedance Analysis Experiment.............................................21
Procedures................................................. ..............................21
Windows Application Form........................................................24
Chapter 5: CONCLUSION AND RECOMMENDATION.........................................27
iv
Conclusion................................................. ..............................27
Recommendation.....................................................................28
BIBLIOGRAPHY29
APPENDIX..30
Appendix A: Pictures of the Experiment..31
Appendix B: Program Listing.32
LIST OF TABLES
Table 4.1: Data Gathered..23
LIST OF FIGURES
Figure 3.1 Block Diagram of the Experiment16
Figure 3.2 Conceptual Block Diagram of the
Bioimpedance Analysis Experiment..17
Figure 3.3 Block Diagram describing the major components of the
Bioimpedance Measurement System .18
Figure 3.4 Bioimpedance Analysis Experiment Procedural Flowchart...19
Figure 3.5 Windows Application Flowchart..21
Figure 4.1 Curve from 20 g/ml. Glucose Solution25
Figure 4.2 Initial Form.26
Figure 4.3 Open File with Grid Table Button..26
Figure 4.4 Grid Table..27
Figure 4.5 Final Form..27
vi
ABSTRACT
vii
Chapter 1
DESIGN BACKGROUND AND INTRODUCTION
purpose, objective, significance and scope of the design. Some technical terms
used for the documentation were discussed at the end of this chapter.
Background
Diseases like Type 2 diabetes and, especially, Type 1 diabetes require
frequent self-monitoring of glucose. The level of glucose in the blood should be
continuously monitored to provide effective treatment of the said disease. In the
last two decades, several studies were carried out to establish a non-invasive
technique for evaluation of glucose, i.e. a technique not requiring blood
collection. However, it can be claimed that non-invasive glucose monitoring is
still in its early phase of development.
In the recent years there has been a continuous effort in the development
of new glucose sensors for improved performance in terms of stability or
efficiency. In parallel, a different effort has been carried on aimed at the
development of techniques for non-invasive glucose measurement. A promising
approach for non-invasive measurement of glucose is Bio-impedance Analysis or
Impedance Spectroscopy.
with
limb
pain,
poor
circulation,
amputation.
More frequent monitoring of blood glucose and insulin levels could prevent
many of the long term complications of diabetes. However, the conventional
blood (finger stick) glucose testing and monitoring are painful and can cause
unease to patients.
Delimitations:
1. Impedance values were gathered only at 0.20 g/20ml and 0.60 g/20 ml
glucose concentration.
2. The frequency used, ranged from 10MHz to 60 MHz.
Definition of Terms:
1. Bioimpedance Analysis - BIA is a science that was originally developed for
the use in monitoring hospital patients after surgery. It has also been
used in a number of the space missions to monitor astronaut's health. It
is totally non-invasive, and involves placing some sticky electrical
conductors on your hand and foot, and connecting a battery powered
meter to measure two electrical readings. These are put into a computer
to generate a detailed report about your body's "biomarkers."
2. Diabetes - Diabetes mellitus is a chronic disease caused by the inability of
the pancreas to produce insulin or to use the insulin produced in the
proper way.
3. Glucose Our body's primary source of energy takes the form of glucose.
This
type
of
sugar
comes
from
digesting
carbohydrates
into
concentration
of glucose in
the
blood
(glycemia).
Particularly
Chapter 2
REVIEW OF RELATED DESIGN LITERATURES AND STUDIES
This chapter includes the compiled research works and studies that are
related to the design. The contents of this chapter are used as reference for the
development of the design. The researcher used the following related articles,
research works and inventions as a reference which will aid in having an in-depth
understanding about the design that the group is working on.
proven to be operational with both electrodes, but textile electrodes are found to
be more sensitive for movement artifacts. This paper also gives a small review of
other existing portable and wearable physiological measurement devices and
discusses some general requirements of these devices.
10
the
study
of
the
The paper above shows the foundation on how the pursuit of making a
non-invasive glucose monitoring device started. Basically because Bio-impedance
analysis measures the resistance of a cell in order to get the composition of a
particular substance, for example, body fat.
11
The journal above emphasizes the importance and timeliness of the Bioimpedance Analysis experiment since it is a step in developing a non-invasive
12
calibration
algorithm
and
experimental
sweep-frequency
13
of the device and to preliminary assess with regards to the performance of the
device. The researchers were able to acquire results from the device that are of
good agreement with the results measured by a commercial impedance analyzer
HP4194, with an overall mean error of 0.014% in magnitude and 0.136 in phase
over a frequency range of 20 kHz to 1 MHz.
14
Chapter 3
DESIGN PROCEDURES
Preparation
of materials / Set-up of
the experiment
Experiment
process
Recording of data
and results
16
solution.
Figure 3.3 Block diagram describing major components of the bioimpedance measurement system. A Circuit Board contains the current source
and connections for the electrode probes. Attached to it are a high frequency
signal generator, an oscilloscope, and impedance analyzer. Each has its function
in the experiment process. The high frequency signal generator, which is
connected to the circuit board, supplies the necessary frequency and the input
voltage signal. An oscilloscope measured and recorded the voltage from the
signal across the two electrodes. A Rohde and Schwarz impedance analyzer can
also be connected across the two electrodes which can show the curve being
produced with respect to the impedance of the glucose solution and the
frequency being applied.
17
Software Application
A simple windows application form was developed by using visual studio.
The aim of this is to simply see the curve corresponding to the data obtained
from the experiment. Attending Microsoft Visual C++ classes was a big help in
order for the research topic to be integrated, by creating the windows application
form that can show the curve on a graph which corresponds to the data
gathered from the experiment. Doing the experiments regarding the glucose
impedance was also crucial for the development of the study, for the data
gathered from these experiments can show if it is close to the goal, which is to
obtain the correct curve reflecting the impedance values at varying frequencies.
If the curve is wrong, the experiment has to be done again.
19
Chapter 4
PRESENTATION AND INTERPRETATION OF DATA
This chapter details the data and results from the experiment. The
interpretation and explanation of different data and result were being
emphasized on this chapter.
4.1.1 Procedures:
1. Prepare materials, equipments needed.
-
5. Press Run.
6. Write down the values of the Vin and Vout as seen o the oscilloscope.
7. Check for the curve as seen on the impedance analyzer.
8. Check if the curve is correct, otherwise, repeat the experiment.
0.2g/20ml
Frequency
Vin
Vout
impedance
Vo/Vi
10M
136
124
1033.333333
0.91176
15M
178
156
709.0909091
0.8764
20M
204
172
537.5
0.84314
25M
30M
31M
32M
33M
34M
35M
36M
37M
38M
39M
40M
45M
50M
55M
60M
212
212
212
208
204
200
200
204
212
232
236
252
308
332
312
304
164
128
112
96
84
60
32
8
40
72
104
132
224
256
252
244
341.6666667
152.3809524
112
85.71428571
70
42.85714286
19.04761905
4.081632653
23.25581395
45
78.78787879
110
266.6666667
336.8421053
420
406.6666667
0.77358
0.60377
0.5283
0.46154
0.41176
0.3
0.16
0.03922
0.18868
0.31034
0.44068
0.52381
0.72727
0.77108
0.80769
0.80263
22
In Figure 4.1 which shows the impedance curve from the 0.20g/ml glucose
solution, it shows that as the higher frequency is applied, the lesser the
resistance. This is because higher frequencies can easily penetrate the glucose
solution with lesser resistance. The data obtained from the frequency range 37- 60 MHz
23
is where the mistake occurred for the expected curve output should exhibit an inversely
proportional relationship between the applied frequency and the impedance. The
reason behind this inaccurate output is that the material used to connect the
platinum electrodes is only made of copper, which is a conductor, but no t as
good as other materials such as silver and gold wires.
24
25
Chapter 5
CONCLUSION AND RECOMMENDATION
for
future
researches
in
enhancing
the
experiments
capabilities.
Conclusion
In conclusion, the study simply covered the implementation of the bioimpedance analysis experiment by obtaining the impedance values of a glucose
solution at varying frequencies. In order to see the curve a windows application
form was developed.
However, the data obtained was not accurate for the curve. This
inaccurate result is due to the material used is copper wire, which is a good
conductor but not as conductive as other materials such as silver and gold. The
expected curve output should show an inverse relationship between frequency
and impedance values which is, as the higher frequency is applied, the lower
the resistance of the glucose solution.
Recommendation
Although many minimally invasive methods and devices for blood
collection are presently available, non invasive diagnosis of diabetes mellitus is
27
It must be noted that the use of platinum skin electrodes, which was used
in the experiment, may be extremely expensive for a device aimed at personal
domestic monitoring, but the use of other electrode materials, such as stainless
steel, may cause affecting the measurement accuracy.
The materials used in the experiment will also reflect the accuracy of the
data obtained. The wire used in the experiment to connect the platinum
electrodes is only made of ordinary copper wire, so to obtain a more stable
output use more conductive materials like silver or even gold wires. But these
materials are more expensive.
28
REFERENCES
Caduff, E. Hirt, Yu. Feldman, Z. A li, and L. Heinemann (2003). First human
29
APPENDICES
30
31
#pragma once
#include "string.h"
#include "stdio.h"
#include "stdlib.h"
#include <vcclr.h>
#include "iostream"
#include "io.h"
FILE *fp;
float *bp, * ecg;
int start;
namespace simpleopenfile {
/// <summary>
/// Summary for Form1
///
32
/// WARNING: If you change the name of this class, you will need to
change the
///
compiler tool
///
associated with all .resx files this class depends on. Otherwise,
///
///
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
}
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~Form1()
{
if (components)
33
{
delete components;
}
}
private: System::Windows::Forms::OpenFileDialog^ openFileDialog1;
private: System::Windows::Forms::ListBox^ listBox1;
private: System::Windows::Forms::Button^ button1;
private: System::Windows::Forms::TextBox^ textBox1;
private: System::Windows::Forms::PictureBox^ pictureBox1;
private: System::Windows::Forms::Button^ button2;
protected:
private:
/// <summary>
/// Required designer variable.
/// </summary>
System::ComponentModel::Container ^components;
34
this->openFileDialog1 = (gcnew
System::Windows::Forms::OpenFileDialog());
this->listBox1 = (gcnew
System::Windows::Forms::ListBox());
this->button1 = (gcnew
System::Windows::Forms::Button());
this->textBox1 = (gcnew
System::Windows::Forms::TextBox());
this->pictureBox1 = (gcnew
System::Windows::Forms::PictureBox());
this->button2 = (gcnew
System::Windows::Forms::Button());
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this>pictureBox1))->BeginInit();
this->SuspendLayout();
//
// openFileDialog1
//
this->openFileDialog1->FileName = L"openFileDialog1";
//
// listBox1
//
this->listBox1->FormattingEnabled = true;
this->listBox1->ItemHeight = 12;
this->listBox1->Location = System::Drawing::Point(0, 12);
this->listBox1->Name = L"listBox1";
this->listBox1->Size = System::Drawing::Size(509, 88);
this->listBox1->TabIndex = 0
35
//
// button1
//
425);
this->button1->Location = System::Drawing::Point(248,
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(75, 23);
this->button1->TabIndex = 1;
this->button1->Text = L"opne";
this->button1->UseVisualStyleBackColor = true;
this->textBox1->Location = System::Drawing::Point(665,
this->textBox1->Name = L"textBox1";
this->textBox1->Size = System::Drawing::Size(100, 22);
this->textBox1->TabIndex = 2;
//
// pictureBox1
//
121);
this->pictureBox1->Location = System::Drawing::Point(209,
this->pictureBox1->Name = L"pictureBox1";
36
298);
this->pictureBox1->Size = System::Drawing::Size(675,
this->pictureBox1->TabIndex = 3;
this->pictureBox1->TabStop = false;
//
// button2
//
this->button2->Location = System::Drawing::Point(551,
425);
this->button2->Name = L"button2";
this->button2->Size = System::Drawing::Size(75, 23);
this->button2->TabIndex = 4;
this->button2->Text = L"drawbox";
this->button2->UseVisualStyleBackColor = true;
this->button2->Click += gcnew System::EventHandler(this,
&Form1::button2_Click);
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6,
12);
this->AutoScaleMode =
System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(896, 470);
this->Controls->Add(this->button2);
this->Controls->Add(this->pictureBox1);
this->Controls->Add(this->textBox1);
37
this->Controls->Add(this->button1);
this->Controls->Add(this->listBox1);
this->Name = L"Form1";
this->Text = L"openfile";
(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this>pictureBox1))->EndInit();
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
String ^temp;
String ^Ctemp;
errno_t err;
int len;
char *printout;
int i;
38
OpenFileDialog;
this->openFileDialog1->InitialDirectory="c:\\";
openFileDialog1->Filter = "txt files
(*.txt)|*.txt|All files (*.*)|*.*";
openFileDialog1->FilterIndex = 2;
>RestoreDirectory=true;
this->openFileDialog1-
if ( openFileDialog1->ShowDialog() ==
System::Windows::Forms::DialogResult::OK )
{
if ( ( openFileDialog1->OpenFile()) != nullptr )
{
temp = openFileDialog1->FileName;
len = openFileDialog1->FileName->Length;
char* filename = (char*)
Marshal::StringToHGlobalAnsi(temp ).ToPointer();//NString
charA String variables will be transformed into indicators of
type char
i = 0;
if (( err = fopen_s(&fp,filename,"r")) == 0) //err is a
~NX return 0 S~ return 1
39
while (!feof(fp)) {
i++;
//if (i > 2500) break;
}
// label3->Text = (i).ToString("######");
fclose(fp);
} // End of File Open and Read
40
float tx,ty;
float xr, xl, yt, yb;
// i:
Graphics ^g = pictureBox1->CreateGraphics(); // g
pictureBox1->Refresh();
// M
xbegin = float(0.13*pictureBox1->Width);
ybegin = float(0.05*pictureBox1->Height);
41
xend = float(0.93*pictureBox1->Width);
yend = float(0.8*pictureBox1->Height);
xdis = float(xr-xl);
ydis = float(yt-yb);
xa = (xend - xbegin) / xdis;
// x axis
// y axis
// myPen
Pen ^myPen1 = gcnew Pen(Color::LightGray, 1);
42
}
// u
g->DrawLine(myPen1, xbegin, yy, xend, yy);
//
g->DrawLine(myPen1, xbegin-5, yy, xbegin, yy);
}
43
// myPen
Pen ^myPen = gcnew Pen(Color::Black, 1);
// ebox
g->DrawLine(myPen, xbegin, ybegin, xend, ybegin);
g->DrawLine(myPen, xend, ybegin, xend, yend);
g->DrawLine(myPen, xend, yend, xbegin, yend);
g->DrawLine(myPen, xbegin, yend, xbegin, ybegin);
//
g->DrawString("Time", pictureBox1->Font, Brushes::Red,
float(0.54*pictureBox1->Width), float(yend+pictureBox1->Height/8));
g->DrawString("ECG", pictureBox1->Font, Brushes::Red,
float(0.01*pictureBox1->Width), float(0.4*pictureBox1->Height));
tx =0; ty = 0; xp = xl; yp = (yb-yt)/2;
xp = int(xbegin - (xl-start/250) * xa);
yp = int(yend + yb * ya);
for (i = 0; i < length; i++) {
tx = (float)i; tx = tx/250;
if (tx < 10) {
ty = *(ecg+i+start);
xq = int(xbegin + (tx - (xl-start/250)) * xa);
yq = int(yend - (ty - yb) * ya);
g->DrawLine(fcPen, xp, yp, xq, yq);
44
xp = xq; yp = yq;
}
}
fcPen->Color::set(Color::Blue);
xl = start/250;
xr = 10+xl;
yb = 60;
yt = 170;
/*
xbegin = float(0.13*pictureBox1->Width);
ybegin = float(0.05*pictureBox1->Height);
xend = float(0.93*pictureBox1->Width);
yend = float(0.8*pictureBox1->Height);
*/
xdis = float(xr-xl);
ydis = float(yt-yb);
xa = (xend - xbegin) / xdis;
// x axis
45
}
};
}
46