SlideShare a Scribd company logo
Development of MATLAB Software to Control Data Acquisition from a
Multichannel Systems Multi-Electrode Array
Erik Messier, Behnaz Ghoraani∗, Ph.D.
Abstract— A Multichannel Systems (MCS) microelectrode ar-
ray data acquisition (DAQ) unit is used to collect multichannel
electrograms (EGM) from a Langendorff perfused rabbit heart
system to study sudden cardiac death (SCD). MCS provides
software through which data being processed by the DAQ unit
can be displayed and saved, but this software’s combined utility
with MATLAB is not very effective. MCSs software stores
recorded EGM data in a MathCad (MCD) format, which is then
converted to a text file format. These text files are very large,
and it is therefore very time consuming to import the EGM data
into MATLAB for real-time analysis. Therefore, customized
MATLAB software was developed to control the acquisition of
data from the MCS DAQ unit, and provide specific laboratory
accommodations for this study of SCD. The developed DAQ
unit control software will be able to accurately: provide real
time display of EGM signals; record and save EGM signals in
MATLAB in a desired format; and produce real time analysis
of the EGM signals; all through an intuitive GUI.
Index Terms— Data Acquisition, Perfused Rabbit Heart,
Multichannel EGM, MATLAB, Sudden Cardiac Death, MAT-
LAB
I. INTRODUCTION
To study sudden cardiac death (SCD) using a Lagendorff
perfused rabbit heart system, hardware and software needed
to be developed. This paper discusses the development of
the software required for this study. To acquire electro-
gram (EGM) data from the perfused heart a Multichannel
Systems (MCS) 32-channel microelectrode array data ac-
quisition (DAQ) unit is utilized in conjunction with other
developed hardware. MCS provides software through which
data acquired by the MCS DAQ unit can be displayed
and saved, but this software stores data in a MathCad
(MCD) format, which is very time consuming to import into
MATLAB for further analysis. In order to provide a more
convenient way of storing and accessing the acquired data,
and preforming real-time analysis on the data, MATLAB
software was developed to control the acquisition of data
from the MCS DAQ unit. The development of the MATLAB
DAQ software was accomplished through a collaboration
between functions offered by MCS, in a dynamic link library
(DLL), and orignally produced functions and algorithms.
The originally produced functions and algorithms provide: 1)
formatting of the recorded data, 2) storage of the formattted
data, 3) real-time display and analysis of the data, 4) an
intuitive graphical user interface (GUI) through which the
entire developed software can be packaged.
Rochester Institute of Technology, Biomedical Engineering Department.
∗Corresponding Author: Rochester, 160 Lomb Memorial Drive Rochester,
NY 14623-5604. Email: bghoraani@ieee.org
II. METHODS
In this section, user interface, recording and handling of
data, and real-time data display and analysis are discussed.
A. Structure of developed GUI
Fig. 1. The developed GUI has the ability to adapt the handling of data
depending on the selected CHANNELS and MODE as needed by the user.
Fig. 1 shows the GUI for the developed software. First,
the user selects the GUI parameters, MODE and CHANNELS
whose data will have a real time display. Then, Record
is selected, and all GUI objects and handles are finalized.
The software then initiates operation of the MODE that
has been selected, Manual, Automated, or Viewer mode.
MCS functions: create necessary DAQ unit objects; check
the status of the MCS DAQ unit, whether there is a MCS
DAQ unit attached to the computer or not; and initialize
FIFO queues. The MCS functions then begin acquisition
from the DAQ unit into each channels respective queue. In a
continuous loop: a defined amount of data is read from each
queue, stored in a Buffer, and is formatted and processed;
data from channels that were selected to have a display is
then plotted; and heart rate and time elapsed are calculated
and displayed on the GUI window. This loop continues until
the user has stopped recording, un-toggled the Record button.
Once the loop has been terminated, the signal data and other
peripheral data, which will be identified later, is stored as an
object and saved to a user input filename and directory.
B. Data Recording and Handling
Fig. 2 is a high level representation of EGM data flow
acquired from a perfused rabbit heart through the MCS
DAQ unit. The sections, marked with numbers on Fig. 2,
Fig. 2. High level representation of data acquisition control software operation.
indicate the main operations, which will be described in
the following. Steps 2-4 only show one iteration of data
acquisition for one channel, the nth channel. In order to
proceed to step 5, steps 1-4 must be completed for all
recording channels in the MCS DAQ unit. Multiple iterations
of steps 2-6 must be preformed to provide real-time data
for display and analysis, because this software creates a
continuous signal by appending shorter, subsequent, signals
together which are referred to as Buffers. Each subsequent
Buffer is a set of data that corresponds to the signal data
recorded from the MCS DAQ unit for the resulting amount
of time since the last Buffer was produced.
B.1) Initialization and Formatting of FIFO Queues: MCS
functions are used to create and format a FIFO queue for
each channel, and to start acquiring data from the DAQ unit
and placing each channels acquired data into its respective
queue. FIFO queues are useful for real time display and
analysis, because data is stored chronologically; the first
data to enter the FIFO queue is the first data to exit. For
this software’s purpose, the queues were preallocated with
zeroes to a size of 500,000 elements to prevent data from
overflowing from the DAQ unit causing a loss of excess
data. The sampling rate from the MCS DAQ unit into the
queues was set to 2,000 Hz; this rate was chosen, because
it is not too high such that the software’s data handling
would be slowed down by the large sets of data being
processed, but is also not too low such that features of the
recorded data are being missed, refer to Nyquist Frequency.
For more information about the functions used to preform
this operation, refer to MCS DLL [1].
B.2) Reading From FIFO Queues: A specific amount of
signal data, 2,000 elements, is read from each channels
FIFO queue, in the form of unsigned 16 bit integers (i.e.,
uint16), and is stored in a Buffer for that channel. This
is operation is performed in a serial manner. In a loop,
all channels are read sequentially using the MCS function
ChannelBlock ReadFramesUI16 [1]. A simple algorithm is
used to make the loop wait until enough data is present in
the FIFO queue that is being read from before the Buffer is
parsed from it. For detailed information refer to ”Reading
Data from FIFO Queues” Algorithm below.
Algorithm 1: Reading Data from FIFO Queues
Given: ChannelBlock ReadFrames: MCS function that returns
how much data is in the FIFO queue.
Input: Channel: the channel that is being read from.
Frequency: rate at which data was sampled from the MCS DAQ unit.
Ready = 0;
while Ready = 0 do
DataAmount = ChannelBlock ReadFrames(Channel);
if DataAmount is greater than or equal to Frequency then
Ready = 1;
end
end
Output: Proceed to read data from channel’s FIFO queue
B.3) Reformatting Buffer: The Buffer produced from pre-
vious step is reformatted from uint16 to double (i.e., signed
64 bit integers) format, and the data is gain compensated, so
that it is scaled at the level of micro volts using Eq. (1).
Buffer =
double (Buffer) − 32768
1.5720
(1)
The value of 32,768 is subtracted from the Buffer data to
correct the data’s zero. Since the data is delivered from the
queue in uint16 form, the data ranges between the values 0
and 65,535. To correct the zero of the data, 32,768 must be
subtracted so that the new range of the data is from negative
32,768 to positive 32,768. From Eq. (1), 1.5720 is divided
from the data to compensate for the gain of the system, this
will be further elaborated upon in the experiment discussion
portion of the paper.
B.4) Data Storage: Proceeding B.3, depending on the
selected MODE the data Buffer is either stored or is not
stored. There are three MODEs Manual, Viewer, and Auto-
mated (Auto). Manual MODE is used to continuously record
data. Viewer MODE is used only to visualize the data,
and not record it. Auto MODE utilizes both Manual and
Viewer MODEs, Auto-Record and Auto-View respectively, to
continuously record multiple trials of data.
Manual MODE stores data in a one row array, because
only one trial is preformed. Auto-Record stores data in a
multiple row array, each row corresponds to the trial number
(i.e. the first row is the trials recorded data and the ith row
is the ith trial). In Fig. 2, For Manual MODE, 6 iterations
of data acquisition have occurred before the latest signal
Buffer was appended. In Auto-Record, i trials have been
recorded and 6 iterations on the most recent trial had been
recorded until the most recent signal Buffer was appended
to the ith row of the stored signal. This stored data array, at
the termination of the function, for both Auto and Manual
MODEs, will be saved in an object format which will also
contain: timestamps (ts) for the beginning of each trial, the
sampling rate (F) of the recordings, the calculated heart rates
(HR) for the recordings, and the time interval (Tint) for each
trial.
B.5) Data Display and Analysis: Once steps B.1-B.4 have
been completed for all the channels, then real time display
and analysis of the EGM signals is performed as will be
explained in the following.
C. Real-Time Display and Analysis of Data
C.1) Real-Time Display: The most recent signal buffer pro-
duced, the signal buffer for that iteration of data acquisition,
is used to plot the signal received for each channel that is
selected to be plotted from Channels. Each selected channel
is sub plotted on the same MATLAB figure; to optimize
the area of plots on the figure for a variable number of
plots, conditions were made such that subplots are added
to a column until four subplots are in that column. Once
there are four subplots in a column any additional subplots
are added to the next column.
C.2) Real-Time Analysis: The heart rate of the elec-
trocardiogram (ECG) signals, derived from EGM, is then
calculated with a commonly practiced method; refer to Heart
Rate Calculation algorithm.
Kurtosis is the measure of the ”peakedness” of a probabil-
ity distribution [2]. Kurtosis is greater when there are more
infrequent, extreme amplitude, deviations from the mean of
a set of data; and vice versa [2]. Therefore kurtosis is used
to differentiate between channels experiencing a lot of noise,
and channels that arent experiencing a lot of noise. Noise has
more frequent deviations from the mean of a set of signal
data, therefore its distribution is more Gaussian [2]. An ECG
signal has more infrequent deviations from the mean of a set
of signal data, therefore its distribution is Super-Gaussian [2].
Only data from one channel is used to calculate heart rate,
therefore the channel whose data has the greatest kurtosis is
used.
Algorithm 2: Heart Rate Calculation
Input: ChannelRate: Buffer of channel that was calculated to
have the maximum kurtosis of all channels.
Frequency: rate at which data was sampled from the MCS DAQ unit.
1) Calculate Daubechie’s wavelet transform of ChannelRate using
MATLAB function cwt;
2) Square calculated wavelet transform;
3) Find maximum peak of squared transform;
4) Find all peaks, and if a peak is within a 50 percent thrshold of
max then add 1 to number of peaks;
5) Divide length of ChannelRate by frequency to find the time
duration of the buffer;
6) Divide number of peaks by time duration;
Output: Calculated heart rate
Wavelet transforms, of the signal being used to calculate
heart rate, are applied to reduce noise of the signal and to
furthermore exaggerate the R-peaks of the ECG from the
rest of the signal [3], [4]. The following continuous wavelet
transform (CWT) equation, Eq. (2 )was used if the form of
the MATLAB native function [1], [3].
CWT (a, τ) =
1
√
a
s (t) Ψ
t − τ
a
dt (2)
In Eq. (2): a is the scaling factor used to strech and compress
the mother wavelet (ψ), τ is the translation factor, which
translates the mother wavelet along the axis of the signal,
and s(t) is the signal [3]. The mother wavelet used to
accomplish this wavelet transform was a Daubechies (db10)
wavelet [3], [4]. This wavelet was chosen because of its
relatable morphology to the ECG waveform. The scaling
factor imposed in this wavelet transform was 3, which
allowed for QRS extraction from the ECG.
Once the signals have been plotted, HR and the time
elapsed for the recording has been calculated and displayed
on the GUI, the function returns to step 2 on Fig. 2, if Record
on the GUI has not been turned off. Throughout the entire
process previously described data was continuously being
read from the MCS DAQ and added to the FIFO queues. In
returning to step 2, the new data that has been added to the
FIFO queues must simply be read, and the entire process
described is performed again. If Record is turned off the
functions stops at the termination of its current iteration of
the process described, and saves the data to the user input
filename and directory.
III. EXPERIMENTS AND RESULTS
Three experiments were performed to test the reliability
of the data being acquired, and the real-time analysis being
preformed through the developed DAQ software: a Delay
Test, an MCS software comparison test; and a test of the
calculated HR.
Delay Test: To investigate delay in signals recorded between
different channels a cross correlation (xcorr) analysis was
preformed. The results of this xcorr analysis are shown in
Fig. 3. The lag positions were calculated using the native
MATLAB xcorr function. Lag refers to the amount of
displacement of one signal along the time domain required to
be most correlated, synchronized, to another signal. In Fig.
3 an MCS Me/W-SG signal generator was used to produce a
12.5 Hz sinusoid. All of the calculated lag positions were 0,
which indicates that all of the signals are lined up on the time
domain. 15 trials were preformed on the 12.5 Hz sinusoid,
and other generated signals (i.e., ECG, Hippocampal Slice,
and other sinusoids), and all trials had the same results.
Fig. 3. Delay Test: Test preformed on 12.5 Hz sinusoid. channel numbers
are in orange, and calculated lag positions of max correlation between
signals are in blue. A signal was only generated on 8 of 32 channels, all of
the odd channel numbers from 15-29 including channels 15 and 29.
MCS Comparison: The MCS DAQ software, MC Rack,
was considered to be the precedent for the developed soft-
ware’s acquired data. In this experiment morphology, fre-
quency, and amplitude of generated signals acquired through
both MATLAB and MC Rack were compared. This experi-
ment consisted of 10 trials in which a 1 Hz, 2.0 mV ECG was
generated using an MCS Me/W-SG signal generator. The re-
sults of one trial are shown in Fig. 4. The signals recorded in
Fig. 4 relate to 3 seconds of data, over which both MC Rack
and MATLAB had recorded 3 waves resulting in an effective
calculated frequency for each signal of 1 Hz. The signals in
Fig. 4 have the same frequency and relatable morphology,
but the amplitudes of the signal recorded through MATLAB
are greater than MC Rack’s. This amplitude difference is
a result of a gain discrepancy between the two recording
medium. The amplitudes of the signal recorded through the
developed MATLAB software were calculated to be a factor
of 1.5720 ± 0.0457 greater than the amplitudes produced
by MC Rack. To account for gain discrepancy the signal
recorded through MATLAB is divided by 1.5720. After gain
compensation, both media produce the same signal, therefore
the signals recorded through MATLAB are reliable, since the
signals recorded through MC Rack are considered reliable.
Fig. 4. MCS Comparison: In BLUE is a generated ECG acquired through
MATLAB. In RED is the same generated ECG acquired through MC Rack.
Signals are out of phase, because they were recorded separately.
HR Test: As mentioned earlier, a commonly practiced
method is used to calculate HR. However, to test the accuracy
of this calculation, the following experiment was preformed.
ECG data was acquired from a Langendorff perfused rat
heart in which all electrodes were placed relatively in the
same location, and data was acquired using MC Rack. Chan-
nel 9 was calculated to have the signal with the max kurtosis
and channel 25 had the least kurtosis. Fig. 5 shows the
recorded signals from the max and min kurtosis channels
above and below respectively. Fig. 5 illustrates the impor-
tance of using kurtosis; channel 10’s signal is noticeably
less noisy, which makes it easier to extract ECG features for
a HR calculation. Via manual calculation for channel 10’s
signal, there are 25 waves over 5 seconds therefore the HR
is 300 beats per minute. Using the developed HR calculation
algorithm the output was calculated to be 300 beats per
minute, as shown in Fig. 6. Therefore the HR calculation
algorithm is accurate.
Fig. 5. Above, in RED, is the rat heart ECG signal recorded on channel
9. Below, in GREEN, is the rat heart ECG signal recorded on channel 25.
Fig. 6. HR output of the HR calculation algorithm created in MATLAB
IV. CONCLUSIONS
The developed software is able to accurately: provide real
time display of ECG signals; record and save ECG signals in
MATLAB in a desired format; and produce real time analysis
of the ECG signals; and all through an intuitive GUI. The
methodology and process used to achieve these capabilities
has been discussed and explained. Important functions and
algorithms used within the software have been summarized
and provided. The reliability of the signals recorded and
real-time analysis preformed through the software has been
discussed: there is no delay in recorded signals between dif-
ferent channels, the signals recorded through the developed
software are equivalent to signals recorded through MCS’s
DAQ software, and the HR calculation is accurate. This
software provides a more convenient means through which
to analyze signals from the MCS DAQ unit in MATLAB,
and is an intuitive and useful tool in the laboratory for the
real-time analysis, display, and recording of ECG signals.
REFERENCES
[1] M. Systems, “Mcsusbnet.dll for mcs usb devices,”
http://www.multichannelsystems.com/applications.
[2] L. Sharma, S. Dandapat, and A. Mahanta, “Kurtosis based multichannel
ecg signal denoising and diagnostic distortion measures,” in TENCON
2009-2009 IEEE Region 10 Conference. IEEE, 2009, pp. 1–5.
[3] G. Cornelia and R. Romulus, “Ecg signals processing using wavelets,”
in IEEE, proceedings of the fifth laserd International conference May,
2005.
[4] C. Saritha, V. Sukanya, and Y. N. Murthy, “Ecg signal analysis using
wavelet transforms,” Bulg. J. Phys, vol. 35, no. 1, pp. 68–77, 2008.

More Related Content

What's hot

Computer Organozation
Computer OrganozationComputer Organozation
Computer Organozation
Aabha Tiwari
 
Unit 3-pipelining & vector processing
Unit 3-pipelining & vector processingUnit 3-pipelining & vector processing
Unit 3-pipelining & vector processing
vishal choudhary
 
High Speed Low Power Veterbi Decoder Design for TCM Decoders
High Speed Low Power Veterbi Decoder Design for TCM DecodersHigh Speed Low Power Veterbi Decoder Design for TCM Decoders
High Speed Low Power Veterbi Decoder Design for TCM Decoders
ijsrd.com
 
DMA
DMADMA
Hennchthree 161102111515
Hennchthree 161102111515Hennchthree 161102111515
Hennchthree 161102111515
marangburu42
 
Hennchthree
HennchthreeHennchthree
Hennchthree
marangburu42
 
Pipelining in Computer System Achitecture
Pipelining in Computer System AchitecturePipelining in Computer System Achitecture
Pipelining in Computer System Achitecture
YashiUpadhyay3
 
Enhancing the matrix transpose operation using intel avx instruction set exte...
Enhancing the matrix transpose operation using intel avx instruction set exte...Enhancing the matrix transpose operation using intel avx instruction set exte...
Enhancing the matrix transpose operation using intel avx instruction set exte...
ijcsit
 
Pipelining and co processor.
Pipelining and co processor.Pipelining and co processor.
Pipelining and co processor.Piyush Rochwani
 
Chapter 4: Parallel Programming Languages
Chapter 4: Parallel Programming LanguagesChapter 4: Parallel Programming Languages
Chapter 4: Parallel Programming Languages
Heman Pathak
 
Design and Implementation of an Efficient 64 bit MAC
Design and Implementation of an Efficient 64 bit MACDesign and Implementation of an Efficient 64 bit MAC
Design and Implementation of an Efficient 64 bit MAC
IJERA Editor
 
N1802029295
N1802029295N1802029295
N1802029295
IOSR Journals
 
MIPS Implementation and pipelining
MIPS Implementation and pipelining MIPS Implementation and pipelining
MIPS Implementation and pipelining
MehediHasan1126
 
Computer arithmetic in computer architecture
Computer arithmetic in computer architectureComputer arithmetic in computer architecture
Computer arithmetic in computer architecture
ishapadhy
 
Computer networks transport layer
Computer networks  transport layerComputer networks  transport layer
Computer networks transport layer
jamunaashok
 
Tta protocolsfinalppt-140305235749-phpapp02
Tta protocolsfinalppt-140305235749-phpapp02Tta protocolsfinalppt-140305235749-phpapp02
Tta protocolsfinalppt-140305235749-phpapp02
Hrudya Balachandran
 
A Novel VLSI Architecture for FFT Utilizing Proposed 4:2 & 7:2 Compressor
A Novel VLSI Architecture for FFT Utilizing Proposed 4:2 & 7:2 CompressorA Novel VLSI Architecture for FFT Utilizing Proposed 4:2 & 7:2 Compressor
A Novel VLSI Architecture for FFT Utilizing Proposed 4:2 & 7:2 Compressor
IJERD Editor
 
Lecture 2 data link layer 1 v1
Lecture 2 data link layer 1 v1Lecture 2 data link layer 1 v1
Lecture 2 data link layer 1 v1
Ronoh Kennedy
 

What's hot (20)

Computer Organozation
Computer OrganozationComputer Organozation
Computer Organozation
 
CO Module 5
CO Module 5CO Module 5
CO Module 5
 
Unit 3-pipelining & vector processing
Unit 3-pipelining & vector processingUnit 3-pipelining & vector processing
Unit 3-pipelining & vector processing
 
High Speed Low Power Veterbi Decoder Design for TCM Decoders
High Speed Low Power Veterbi Decoder Design for TCM DecodersHigh Speed Low Power Veterbi Decoder Design for TCM Decoders
High Speed Low Power Veterbi Decoder Design for TCM Decoders
 
DMA
DMADMA
DMA
 
1.prallelism
1.prallelism1.prallelism
1.prallelism
 
Hennchthree 161102111515
Hennchthree 161102111515Hennchthree 161102111515
Hennchthree 161102111515
 
Hennchthree
HennchthreeHennchthree
Hennchthree
 
Pipelining in Computer System Achitecture
Pipelining in Computer System AchitecturePipelining in Computer System Achitecture
Pipelining in Computer System Achitecture
 
Enhancing the matrix transpose operation using intel avx instruction set exte...
Enhancing the matrix transpose operation using intel avx instruction set exte...Enhancing the matrix transpose operation using intel avx instruction set exte...
Enhancing the matrix transpose operation using intel avx instruction set exte...
 
Pipelining and co processor.
Pipelining and co processor.Pipelining and co processor.
Pipelining and co processor.
 
Chapter 4: Parallel Programming Languages
Chapter 4: Parallel Programming LanguagesChapter 4: Parallel Programming Languages
Chapter 4: Parallel Programming Languages
 
Design and Implementation of an Efficient 64 bit MAC
Design and Implementation of an Efficient 64 bit MACDesign and Implementation of an Efficient 64 bit MAC
Design and Implementation of an Efficient 64 bit MAC
 
N1802029295
N1802029295N1802029295
N1802029295
 
MIPS Implementation and pipelining
MIPS Implementation and pipelining MIPS Implementation and pipelining
MIPS Implementation and pipelining
 
Computer arithmetic in computer architecture
Computer arithmetic in computer architectureComputer arithmetic in computer architecture
Computer arithmetic in computer architecture
 
Computer networks transport layer
Computer networks  transport layerComputer networks  transport layer
Computer networks transport layer
 
Tta protocolsfinalppt-140305235749-phpapp02
Tta protocolsfinalppt-140305235749-phpapp02Tta protocolsfinalppt-140305235749-phpapp02
Tta protocolsfinalppt-140305235749-phpapp02
 
A Novel VLSI Architecture for FFT Utilizing Proposed 4:2 & 7:2 Compressor
A Novel VLSI Architecture for FFT Utilizing Proposed 4:2 & 7:2 CompressorA Novel VLSI Architecture for FFT Utilizing Proposed 4:2 & 7:2 Compressor
A Novel VLSI Architecture for FFT Utilizing Proposed 4:2 & 7:2 Compressor
 
Lecture 2 data link layer 1 v1
Lecture 2 data link layer 1 v1Lecture 2 data link layer 1 v1
Lecture 2 data link layer 1 v1
 

Viewers also liked

El sindrome del Impostor - ¿Incapacidad o Pobre Imagen de sí mismo/a?
El sindrome del Impostor - ¿Incapacidad o Pobre Imagen de sí mismo/a?El sindrome del Impostor - ¿Incapacidad o Pobre Imagen de sí mismo/a?
El sindrome del Impostor - ¿Incapacidad o Pobre Imagen de sí mismo/a?
María Clara Ruiz Martínez
 
Tablas de contenidos
Tablas de contenidosTablas de contenidos
Tablas de contenidos
ximenahdz
 
2015 Land Markets Survey | REALTORS Land Institute & NAR
2015 Land Markets Survey | REALTORS Land Institute & NAR2015 Land Markets Survey | REALTORS Land Institute & NAR
2015 Land Markets Survey | REALTORS Land Institute & NAR
REALTORS® Land Institute
 
2014 Land Markets Survey
2014 Land Markets Survey2014 Land Markets Survey
2014 Land Markets Survey
REALTORS® Land Institute
 
Vision 2030: Gauteng Provincial Fire & Rescue Services - RG Hendricks
Vision 2030: Gauteng Provincial Fire & Rescue Services - RG HendricksVision 2030: Gauteng Provincial Fire & Rescue Services - RG Hendricks
Vision 2030: Gauteng Provincial Fire & Rescue Services - RG Hendricks
Roland2015
 
11 Of The Oddest Pets You Might Want To Look After
11 Of The Oddest Pets You Might Want To Look After11 Of The Oddest Pets You Might Want To Look After
11 Of The Oddest Pets You Might Want To Look After
Jane Clarke
 
Lodgement Order dated 28.01.2017 of Registrar Supreme Court of India
Lodgement Order dated 28.01.2017 of  Registrar Supreme Court of IndiaLodgement Order dated 28.01.2017 of  Registrar Supreme Court of India
Lodgement Order dated 28.01.2017 of Registrar Supreme Court of India
Om Prakash Poddar
 
vJUG - The JavaFX Ecosystem
vJUG - The JavaFX EcosystemvJUG - The JavaFX Ecosystem
vJUG - The JavaFX Ecosystem
Andres Almiray
 
Animations on Fire - Making Web animations fast
Animations on Fire - Making Web animations fastAnimations on Fire - Making Web animations fast
Animations on Fire - Making Web animations fast
brianskold
 
Technical SEO Myths Facts And Theories On Crawl Budget And The Importance Of ...
Technical SEO Myths Facts And Theories On Crawl Budget And The Importance Of ...Technical SEO Myths Facts And Theories On Crawl Budget And The Importance Of ...
Technical SEO Myths Facts And Theories On Crawl Budget And The Importance Of ...
Dawn Anderson MSc DigM
 
Pubcon 2016 - How SEO's can Use PPC to hit their goals
Pubcon 2016 - How SEO's can Use PPC to hit their goalsPubcon 2016 - How SEO's can Use PPC to hit their goals
Pubcon 2016 - How SEO's can Use PPC to hit their goals
Wil Reynolds
 
Marco Gold Standard
Marco Gold StandardMarco Gold Standard
Marco Gold Standard
MarcoTechnologies
 
2016 Land Markets Survey
2016 Land Markets Survey2016 Land Markets Survey
2016 Land Markets Survey
REALTORS® Land Institute
 
Debunking the myths of organizational change management
Debunking the myths of organizational change managementDebunking the myths of organizational change management
Debunking the myths of organizational change management
accenture
 
Digitized Student Development, Social Media, and Identity
Digitized Student Development, Social Media, and IdentityDigitized Student Development, Social Media, and Identity
Digitized Student Development, Social Media, and Identity
Paul Brown
 

Viewers also liked (16)

El sindrome del Impostor - ¿Incapacidad o Pobre Imagen de sí mismo/a?
El sindrome del Impostor - ¿Incapacidad o Pobre Imagen de sí mismo/a?El sindrome del Impostor - ¿Incapacidad o Pobre Imagen de sí mismo/a?
El sindrome del Impostor - ¿Incapacidad o Pobre Imagen de sí mismo/a?
 
Tablas de contenidos
Tablas de contenidosTablas de contenidos
Tablas de contenidos
 
2015 Land Markets Survey | REALTORS Land Institute & NAR
2015 Land Markets Survey | REALTORS Land Institute & NAR2015 Land Markets Survey | REALTORS Land Institute & NAR
2015 Land Markets Survey | REALTORS Land Institute & NAR
 
2014 Land Markets Survey
2014 Land Markets Survey2014 Land Markets Survey
2014 Land Markets Survey
 
Vision 2030: Gauteng Provincial Fire & Rescue Services - RG Hendricks
Vision 2030: Gauteng Provincial Fire & Rescue Services - RG HendricksVision 2030: Gauteng Provincial Fire & Rescue Services - RG Hendricks
Vision 2030: Gauteng Provincial Fire & Rescue Services - RG Hendricks
 
11 Of The Oddest Pets You Might Want To Look After
11 Of The Oddest Pets You Might Want To Look After11 Of The Oddest Pets You Might Want To Look After
11 Of The Oddest Pets You Might Want To Look After
 
reshma resume
reshma resumereshma resume
reshma resume
 
Lodgement Order dated 28.01.2017 of Registrar Supreme Court of India
Lodgement Order dated 28.01.2017 of  Registrar Supreme Court of IndiaLodgement Order dated 28.01.2017 of  Registrar Supreme Court of India
Lodgement Order dated 28.01.2017 of Registrar Supreme Court of India
 
vJUG - The JavaFX Ecosystem
vJUG - The JavaFX EcosystemvJUG - The JavaFX Ecosystem
vJUG - The JavaFX Ecosystem
 
Animations on Fire - Making Web animations fast
Animations on Fire - Making Web animations fastAnimations on Fire - Making Web animations fast
Animations on Fire - Making Web animations fast
 
Technical SEO Myths Facts And Theories On Crawl Budget And The Importance Of ...
Technical SEO Myths Facts And Theories On Crawl Budget And The Importance Of ...Technical SEO Myths Facts And Theories On Crawl Budget And The Importance Of ...
Technical SEO Myths Facts And Theories On Crawl Budget And The Importance Of ...
 
Pubcon 2016 - How SEO's can Use PPC to hit their goals
Pubcon 2016 - How SEO's can Use PPC to hit their goalsPubcon 2016 - How SEO's can Use PPC to hit their goals
Pubcon 2016 - How SEO's can Use PPC to hit their goals
 
Marco Gold Standard
Marco Gold StandardMarco Gold Standard
Marco Gold Standard
 
2016 Land Markets Survey
2016 Land Markets Survey2016 Land Markets Survey
2016 Land Markets Survey
 
Debunking the myths of organizational change management
Debunking the myths of organizational change managementDebunking the myths of organizational change management
Debunking the myths of organizational change management
 
Digitized Student Development, Social Media, and Identity
Digitized Student Development, Social Media, and IdentityDigitized Student Development, Social Media, and Identity
Digitized Student Development, Social Media, and Identity
 

Similar to Erik Proposal Final

A NETWORK-BASED DAC OPTIMIZATION PROTOTYPE SOFTWARE 2 (1).pdf
A NETWORK-BASED DAC OPTIMIZATION PROTOTYPE SOFTWARE 2 (1).pdfA NETWORK-BASED DAC OPTIMIZATION PROTOTYPE SOFTWARE 2 (1).pdf
A NETWORK-BASED DAC OPTIMIZATION PROTOTYPE SOFTWARE 2 (1).pdf
SaiReddy794166
 
The Design of an MVB Communication Controller Based on an FPGA
The Design of an MVB Communication Controller Based on an FPGAThe Design of an MVB Communication Controller Based on an FPGA
The Design of an MVB Communication Controller Based on an FPGA
IJRESJOURNAL
 
Isa bus nptel
Isa bus nptelIsa bus nptel
Isa bus nptel
M.V Mahesh Vanamuthu
 
An ethernet based_approach_for_tm_data_analysis_v2
An ethernet based_approach_for_tm_data_analysis_v2An ethernet based_approach_for_tm_data_analysis_v2
An ethernet based_approach_for_tm_data_analysis_v2
Priyasloka Arya
 
Stream Processing Overview
Stream Processing OverviewStream Processing Overview
Stream Processing Overview
Maycon Viana Bordin
 
Customized Monitoring and Assessment of Circuit Breaker Operations in Differe...
Customized Monitoring and Assessment of Circuit Breaker Operations in Differe...Customized Monitoring and Assessment of Circuit Breaker Operations in Differe...
Customized Monitoring and Assessment of Circuit Breaker Operations in Differe...
International Journal of Engineering Inventions www.ijeijournal.com
 
BWC Supercomputing 2008 Presentation
BWC Supercomputing 2008 PresentationBWC Supercomputing 2008 Presentation
BWC Supercomputing 2008 Presentationlilyco
 
Design and Implementing Novel Independent Real-Time Software Programmable DAQ...
Design and Implementing Novel Independent Real-Time Software Programmable DAQ...Design and Implementing Novel Independent Real-Time Software Programmable DAQ...
Design and Implementing Novel Independent Real-Time Software Programmable DAQ...
Editor IJCATR
 
LVTS Projects
LVTS ProjectsLVTS Projects
LVTS Projects
Vladislav Kaplan
 
8 bit Microprocessor with Single Vectored Interrupt
8 bit Microprocessor with Single Vectored Interrupt8 bit Microprocessor with Single Vectored Interrupt
8 bit Microprocessor with Single Vectored Interrupt
Hardik Manocha
 
IRJET-Simulation of Channel-Estimation for Digital Communication System based...
IRJET-Simulation of Channel-Estimation for Digital Communication System based...IRJET-Simulation of Channel-Estimation for Digital Communication System based...
IRJET-Simulation of Channel-Estimation for Digital Communication System based...
IRJET Journal
 
Paper id 42201619
Paper id 42201619Paper id 42201619
Paper id 42201619
IJRAT
 
Hw09 Hadoop Based Data Mining Platform For The Telecom Industry
Hw09   Hadoop Based Data Mining Platform For The Telecom IndustryHw09   Hadoop Based Data Mining Platform For The Telecom Industry
Hw09 Hadoop Based Data Mining Platform For The Telecom IndustryCloudera, Inc.
 
Office Security System
Office Security SystemOffice Security System
Office Security System
IJMER
 
User-space Network Processing
User-space Network ProcessingUser-space Network Processing
User-space Network Processing
Ryousei Takano
 

Similar to Erik Proposal Final (20)

A NETWORK-BASED DAC OPTIMIZATION PROTOTYPE SOFTWARE 2 (1).pdf
A NETWORK-BASED DAC OPTIMIZATION PROTOTYPE SOFTWARE 2 (1).pdfA NETWORK-BASED DAC OPTIMIZATION PROTOTYPE SOFTWARE 2 (1).pdf
A NETWORK-BASED DAC OPTIMIZATION PROTOTYPE SOFTWARE 2 (1).pdf
 
DSP Processor
DSP Processor DSP Processor
DSP Processor
 
The Design of an MVB Communication Controller Based on an FPGA
The Design of an MVB Communication Controller Based on an FPGAThe Design of an MVB Communication Controller Based on an FPGA
The Design of an MVB Communication Controller Based on an FPGA
 
Dosenet_Report
Dosenet_ReportDosenet_Report
Dosenet_Report
 
Isa bus nptel
Isa bus nptelIsa bus nptel
Isa bus nptel
 
Bc0040
Bc0040Bc0040
Bc0040
 
An ethernet based_approach_for_tm_data_analysis_v2
An ethernet based_approach_for_tm_data_analysis_v2An ethernet based_approach_for_tm_data_analysis_v2
An ethernet based_approach_for_tm_data_analysis_v2
 
Stream Processing Overview
Stream Processing OverviewStream Processing Overview
Stream Processing Overview
 
Customized Monitoring and Assessment of Circuit Breaker Operations in Differe...
Customized Monitoring and Assessment of Circuit Breaker Operations in Differe...Customized Monitoring and Assessment of Circuit Breaker Operations in Differe...
Customized Monitoring and Assessment of Circuit Breaker Operations in Differe...
 
cpc-152-2-2003
cpc-152-2-2003cpc-152-2-2003
cpc-152-2-2003
 
BWC Supercomputing 2008 Presentation
BWC Supercomputing 2008 PresentationBWC Supercomputing 2008 Presentation
BWC Supercomputing 2008 Presentation
 
Design and Implementing Novel Independent Real-Time Software Programmable DAQ...
Design and Implementing Novel Independent Real-Time Software Programmable DAQ...Design and Implementing Novel Independent Real-Time Software Programmable DAQ...
Design and Implementing Novel Independent Real-Time Software Programmable DAQ...
 
LVTS Projects
LVTS ProjectsLVTS Projects
LVTS Projects
 
8 bit Microprocessor with Single Vectored Interrupt
8 bit Microprocessor with Single Vectored Interrupt8 bit Microprocessor with Single Vectored Interrupt
8 bit Microprocessor with Single Vectored Interrupt
 
project_531
project_531project_531
project_531
 
IRJET-Simulation of Channel-Estimation for Digital Communication System based...
IRJET-Simulation of Channel-Estimation for Digital Communication System based...IRJET-Simulation of Channel-Estimation for Digital Communication System based...
IRJET-Simulation of Channel-Estimation for Digital Communication System based...
 
Paper id 42201619
Paper id 42201619Paper id 42201619
Paper id 42201619
 
Hw09 Hadoop Based Data Mining Platform For The Telecom Industry
Hw09   Hadoop Based Data Mining Platform For The Telecom IndustryHw09   Hadoop Based Data Mining Platform For The Telecom Industry
Hw09 Hadoop Based Data Mining Platform For The Telecom Industry
 
Office Security System
Office Security SystemOffice Security System
Office Security System
 
User-space Network Processing
User-space Network ProcessingUser-space Network Processing
User-space Network Processing
 

Erik Proposal Final

  • 1. Development of MATLAB Software to Control Data Acquisition from a Multichannel Systems Multi-Electrode Array Erik Messier, Behnaz Ghoraani∗, Ph.D. Abstract— A Multichannel Systems (MCS) microelectrode ar- ray data acquisition (DAQ) unit is used to collect multichannel electrograms (EGM) from a Langendorff perfused rabbit heart system to study sudden cardiac death (SCD). MCS provides software through which data being processed by the DAQ unit can be displayed and saved, but this software’s combined utility with MATLAB is not very effective. MCSs software stores recorded EGM data in a MathCad (MCD) format, which is then converted to a text file format. These text files are very large, and it is therefore very time consuming to import the EGM data into MATLAB for real-time analysis. Therefore, customized MATLAB software was developed to control the acquisition of data from the MCS DAQ unit, and provide specific laboratory accommodations for this study of SCD. The developed DAQ unit control software will be able to accurately: provide real time display of EGM signals; record and save EGM signals in MATLAB in a desired format; and produce real time analysis of the EGM signals; all through an intuitive GUI. Index Terms— Data Acquisition, Perfused Rabbit Heart, Multichannel EGM, MATLAB, Sudden Cardiac Death, MAT- LAB I. INTRODUCTION To study sudden cardiac death (SCD) using a Lagendorff perfused rabbit heart system, hardware and software needed to be developed. This paper discusses the development of the software required for this study. To acquire electro- gram (EGM) data from the perfused heart a Multichannel Systems (MCS) 32-channel microelectrode array data ac- quisition (DAQ) unit is utilized in conjunction with other developed hardware. MCS provides software through which data acquired by the MCS DAQ unit can be displayed and saved, but this software stores data in a MathCad (MCD) format, which is very time consuming to import into MATLAB for further analysis. In order to provide a more convenient way of storing and accessing the acquired data, and preforming real-time analysis on the data, MATLAB software was developed to control the acquisition of data from the MCS DAQ unit. The development of the MATLAB DAQ software was accomplished through a collaboration between functions offered by MCS, in a dynamic link library (DLL), and orignally produced functions and algorithms. The originally produced functions and algorithms provide: 1) formatting of the recorded data, 2) storage of the formattted data, 3) real-time display and analysis of the data, 4) an intuitive graphical user interface (GUI) through which the entire developed software can be packaged. Rochester Institute of Technology, Biomedical Engineering Department. ∗Corresponding Author: Rochester, 160 Lomb Memorial Drive Rochester, NY 14623-5604. Email: bghoraani@ieee.org II. METHODS In this section, user interface, recording and handling of data, and real-time data display and analysis are discussed. A. Structure of developed GUI Fig. 1. The developed GUI has the ability to adapt the handling of data depending on the selected CHANNELS and MODE as needed by the user. Fig. 1 shows the GUI for the developed software. First, the user selects the GUI parameters, MODE and CHANNELS whose data will have a real time display. Then, Record is selected, and all GUI objects and handles are finalized. The software then initiates operation of the MODE that has been selected, Manual, Automated, or Viewer mode. MCS functions: create necessary DAQ unit objects; check the status of the MCS DAQ unit, whether there is a MCS DAQ unit attached to the computer or not; and initialize FIFO queues. The MCS functions then begin acquisition from the DAQ unit into each channels respective queue. In a continuous loop: a defined amount of data is read from each queue, stored in a Buffer, and is formatted and processed; data from channels that were selected to have a display is then plotted; and heart rate and time elapsed are calculated and displayed on the GUI window. This loop continues until the user has stopped recording, un-toggled the Record button. Once the loop has been terminated, the signal data and other peripheral data, which will be identified later, is stored as an object and saved to a user input filename and directory. B. Data Recording and Handling Fig. 2 is a high level representation of EGM data flow acquired from a perfused rabbit heart through the MCS DAQ unit. The sections, marked with numbers on Fig. 2,
  • 2. Fig. 2. High level representation of data acquisition control software operation. indicate the main operations, which will be described in the following. Steps 2-4 only show one iteration of data acquisition for one channel, the nth channel. In order to proceed to step 5, steps 1-4 must be completed for all recording channels in the MCS DAQ unit. Multiple iterations of steps 2-6 must be preformed to provide real-time data for display and analysis, because this software creates a continuous signal by appending shorter, subsequent, signals together which are referred to as Buffers. Each subsequent Buffer is a set of data that corresponds to the signal data recorded from the MCS DAQ unit for the resulting amount of time since the last Buffer was produced. B.1) Initialization and Formatting of FIFO Queues: MCS functions are used to create and format a FIFO queue for each channel, and to start acquiring data from the DAQ unit and placing each channels acquired data into its respective queue. FIFO queues are useful for real time display and analysis, because data is stored chronologically; the first data to enter the FIFO queue is the first data to exit. For this software’s purpose, the queues were preallocated with zeroes to a size of 500,000 elements to prevent data from overflowing from the DAQ unit causing a loss of excess data. The sampling rate from the MCS DAQ unit into the queues was set to 2,000 Hz; this rate was chosen, because it is not too high such that the software’s data handling would be slowed down by the large sets of data being processed, but is also not too low such that features of the recorded data are being missed, refer to Nyquist Frequency. For more information about the functions used to preform this operation, refer to MCS DLL [1]. B.2) Reading From FIFO Queues: A specific amount of signal data, 2,000 elements, is read from each channels FIFO queue, in the form of unsigned 16 bit integers (i.e., uint16), and is stored in a Buffer for that channel. This is operation is performed in a serial manner. In a loop, all channels are read sequentially using the MCS function ChannelBlock ReadFramesUI16 [1]. A simple algorithm is used to make the loop wait until enough data is present in the FIFO queue that is being read from before the Buffer is parsed from it. For detailed information refer to ”Reading Data from FIFO Queues” Algorithm below. Algorithm 1: Reading Data from FIFO Queues Given: ChannelBlock ReadFrames: MCS function that returns how much data is in the FIFO queue. Input: Channel: the channel that is being read from. Frequency: rate at which data was sampled from the MCS DAQ unit. Ready = 0; while Ready = 0 do DataAmount = ChannelBlock ReadFrames(Channel); if DataAmount is greater than or equal to Frequency then Ready = 1; end end Output: Proceed to read data from channel’s FIFO queue B.3) Reformatting Buffer: The Buffer produced from pre- vious step is reformatted from uint16 to double (i.e., signed 64 bit integers) format, and the data is gain compensated, so that it is scaled at the level of micro volts using Eq. (1). Buffer = double (Buffer) − 32768 1.5720 (1) The value of 32,768 is subtracted from the Buffer data to correct the data’s zero. Since the data is delivered from the queue in uint16 form, the data ranges between the values 0 and 65,535. To correct the zero of the data, 32,768 must be subtracted so that the new range of the data is from negative 32,768 to positive 32,768. From Eq. (1), 1.5720 is divided from the data to compensate for the gain of the system, this
  • 3. will be further elaborated upon in the experiment discussion portion of the paper. B.4) Data Storage: Proceeding B.3, depending on the selected MODE the data Buffer is either stored or is not stored. There are three MODEs Manual, Viewer, and Auto- mated (Auto). Manual MODE is used to continuously record data. Viewer MODE is used only to visualize the data, and not record it. Auto MODE utilizes both Manual and Viewer MODEs, Auto-Record and Auto-View respectively, to continuously record multiple trials of data. Manual MODE stores data in a one row array, because only one trial is preformed. Auto-Record stores data in a multiple row array, each row corresponds to the trial number (i.e. the first row is the trials recorded data and the ith row is the ith trial). In Fig. 2, For Manual MODE, 6 iterations of data acquisition have occurred before the latest signal Buffer was appended. In Auto-Record, i trials have been recorded and 6 iterations on the most recent trial had been recorded until the most recent signal Buffer was appended to the ith row of the stored signal. This stored data array, at the termination of the function, for both Auto and Manual MODEs, will be saved in an object format which will also contain: timestamps (ts) for the beginning of each trial, the sampling rate (F) of the recordings, the calculated heart rates (HR) for the recordings, and the time interval (Tint) for each trial. B.5) Data Display and Analysis: Once steps B.1-B.4 have been completed for all the channels, then real time display and analysis of the EGM signals is performed as will be explained in the following. C. Real-Time Display and Analysis of Data C.1) Real-Time Display: The most recent signal buffer pro- duced, the signal buffer for that iteration of data acquisition, is used to plot the signal received for each channel that is selected to be plotted from Channels. Each selected channel is sub plotted on the same MATLAB figure; to optimize the area of plots on the figure for a variable number of plots, conditions were made such that subplots are added to a column until four subplots are in that column. Once there are four subplots in a column any additional subplots are added to the next column. C.2) Real-Time Analysis: The heart rate of the elec- trocardiogram (ECG) signals, derived from EGM, is then calculated with a commonly practiced method; refer to Heart Rate Calculation algorithm. Kurtosis is the measure of the ”peakedness” of a probabil- ity distribution [2]. Kurtosis is greater when there are more infrequent, extreme amplitude, deviations from the mean of a set of data; and vice versa [2]. Therefore kurtosis is used to differentiate between channels experiencing a lot of noise, and channels that arent experiencing a lot of noise. Noise has more frequent deviations from the mean of a set of signal data, therefore its distribution is more Gaussian [2]. An ECG signal has more infrequent deviations from the mean of a set of signal data, therefore its distribution is Super-Gaussian [2]. Only data from one channel is used to calculate heart rate, therefore the channel whose data has the greatest kurtosis is used. Algorithm 2: Heart Rate Calculation Input: ChannelRate: Buffer of channel that was calculated to have the maximum kurtosis of all channels. Frequency: rate at which data was sampled from the MCS DAQ unit. 1) Calculate Daubechie’s wavelet transform of ChannelRate using MATLAB function cwt; 2) Square calculated wavelet transform; 3) Find maximum peak of squared transform; 4) Find all peaks, and if a peak is within a 50 percent thrshold of max then add 1 to number of peaks; 5) Divide length of ChannelRate by frequency to find the time duration of the buffer; 6) Divide number of peaks by time duration; Output: Calculated heart rate Wavelet transforms, of the signal being used to calculate heart rate, are applied to reduce noise of the signal and to furthermore exaggerate the R-peaks of the ECG from the rest of the signal [3], [4]. The following continuous wavelet transform (CWT) equation, Eq. (2 )was used if the form of the MATLAB native function [1], [3]. CWT (a, τ) = 1 √ a s (t) Ψ t − τ a dt (2) In Eq. (2): a is the scaling factor used to strech and compress the mother wavelet (ψ), τ is the translation factor, which translates the mother wavelet along the axis of the signal, and s(t) is the signal [3]. The mother wavelet used to accomplish this wavelet transform was a Daubechies (db10) wavelet [3], [4]. This wavelet was chosen because of its relatable morphology to the ECG waveform. The scaling factor imposed in this wavelet transform was 3, which allowed for QRS extraction from the ECG. Once the signals have been plotted, HR and the time elapsed for the recording has been calculated and displayed on the GUI, the function returns to step 2 on Fig. 2, if Record on the GUI has not been turned off. Throughout the entire process previously described data was continuously being read from the MCS DAQ and added to the FIFO queues. In returning to step 2, the new data that has been added to the FIFO queues must simply be read, and the entire process described is performed again. If Record is turned off the functions stops at the termination of its current iteration of the process described, and saves the data to the user input filename and directory. III. EXPERIMENTS AND RESULTS Three experiments were performed to test the reliability of the data being acquired, and the real-time analysis being preformed through the developed DAQ software: a Delay Test, an MCS software comparison test; and a test of the calculated HR. Delay Test: To investigate delay in signals recorded between different channels a cross correlation (xcorr) analysis was preformed. The results of this xcorr analysis are shown in Fig. 3. The lag positions were calculated using the native MATLAB xcorr function. Lag refers to the amount of displacement of one signal along the time domain required to
  • 4. be most correlated, synchronized, to another signal. In Fig. 3 an MCS Me/W-SG signal generator was used to produce a 12.5 Hz sinusoid. All of the calculated lag positions were 0, which indicates that all of the signals are lined up on the time domain. 15 trials were preformed on the 12.5 Hz sinusoid, and other generated signals (i.e., ECG, Hippocampal Slice, and other sinusoids), and all trials had the same results. Fig. 3. Delay Test: Test preformed on 12.5 Hz sinusoid. channel numbers are in orange, and calculated lag positions of max correlation between signals are in blue. A signal was only generated on 8 of 32 channels, all of the odd channel numbers from 15-29 including channels 15 and 29. MCS Comparison: The MCS DAQ software, MC Rack, was considered to be the precedent for the developed soft- ware’s acquired data. In this experiment morphology, fre- quency, and amplitude of generated signals acquired through both MATLAB and MC Rack were compared. This experi- ment consisted of 10 trials in which a 1 Hz, 2.0 mV ECG was generated using an MCS Me/W-SG signal generator. The re- sults of one trial are shown in Fig. 4. The signals recorded in Fig. 4 relate to 3 seconds of data, over which both MC Rack and MATLAB had recorded 3 waves resulting in an effective calculated frequency for each signal of 1 Hz. The signals in Fig. 4 have the same frequency and relatable morphology, but the amplitudes of the signal recorded through MATLAB are greater than MC Rack’s. This amplitude difference is a result of a gain discrepancy between the two recording medium. The amplitudes of the signal recorded through the developed MATLAB software were calculated to be a factor of 1.5720 ± 0.0457 greater than the amplitudes produced by MC Rack. To account for gain discrepancy the signal recorded through MATLAB is divided by 1.5720. After gain compensation, both media produce the same signal, therefore the signals recorded through MATLAB are reliable, since the signals recorded through MC Rack are considered reliable. Fig. 4. MCS Comparison: In BLUE is a generated ECG acquired through MATLAB. In RED is the same generated ECG acquired through MC Rack. Signals are out of phase, because they were recorded separately. HR Test: As mentioned earlier, a commonly practiced method is used to calculate HR. However, to test the accuracy of this calculation, the following experiment was preformed. ECG data was acquired from a Langendorff perfused rat heart in which all electrodes were placed relatively in the same location, and data was acquired using MC Rack. Chan- nel 9 was calculated to have the signal with the max kurtosis and channel 25 had the least kurtosis. Fig. 5 shows the recorded signals from the max and min kurtosis channels above and below respectively. Fig. 5 illustrates the impor- tance of using kurtosis; channel 10’s signal is noticeably less noisy, which makes it easier to extract ECG features for a HR calculation. Via manual calculation for channel 10’s signal, there are 25 waves over 5 seconds therefore the HR is 300 beats per minute. Using the developed HR calculation algorithm the output was calculated to be 300 beats per minute, as shown in Fig. 6. Therefore the HR calculation algorithm is accurate. Fig. 5. Above, in RED, is the rat heart ECG signal recorded on channel 9. Below, in GREEN, is the rat heart ECG signal recorded on channel 25. Fig. 6. HR output of the HR calculation algorithm created in MATLAB IV. CONCLUSIONS The developed software is able to accurately: provide real time display of ECG signals; record and save ECG signals in MATLAB in a desired format; and produce real time analysis of the ECG signals; and all through an intuitive GUI. The methodology and process used to achieve these capabilities has been discussed and explained. Important functions and algorithms used within the software have been summarized and provided. The reliability of the signals recorded and real-time analysis preformed through the software has been discussed: there is no delay in recorded signals between dif- ferent channels, the signals recorded through the developed software are equivalent to signals recorded through MCS’s DAQ software, and the HR calculation is accurate. This software provides a more convenient means through which to analyze signals from the MCS DAQ unit in MATLAB, and is an intuitive and useful tool in the laboratory for the real-time analysis, display, and recording of ECG signals. REFERENCES [1] M. Systems, “Mcsusbnet.dll for mcs usb devices,” http://www.multichannelsystems.com/applications. [2] L. Sharma, S. Dandapat, and A. Mahanta, “Kurtosis based multichannel ecg signal denoising and diagnostic distortion measures,” in TENCON 2009-2009 IEEE Region 10 Conference. IEEE, 2009, pp. 1–5. [3] G. Cornelia and R. Romulus, “Ecg signals processing using wavelets,” in IEEE, proceedings of the fifth laserd International conference May, 2005. [4] C. Saritha, V. Sukanya, and Y. N. Murthy, “Ecg signal analysis using wavelet transforms,” Bulg. J. Phys, vol. 35, no. 1, pp. 68–77, 2008.