Você está na página 1de 87

UNIVERSIDADE FEDERAL DE ITAJUB

PROGRAMA DE PS-GRADUAO EM ENGENHARIA ELTRICA






Helton Hugo de Carvalho Jnior



Sistema embarcado de diagnstico de
eletrocardiograma utilizando fuzzy clustering e
correlao



Tese submetida ao Programa de Ps-Graduao
em Engenharia Eltrica como parte dos requisitos
para obteno do Ttulo de Doutor em Cincias
em Engenharia Eltrica.

rea de Concentrao: Microeletrnica

Orientadores: Dr. Robson Luiz Moreno
Dr. Tales Cleber Pimenta


Dezembro de 2011
Itajub MG
ii



























Dedico este trabalho aos meus
pais, Helton e Marly, e minha
esposa, Dbora Bizinoto.

iii





























A diferena entre o possvel e o
impossvel est na vontade
humana.

Louis Pasteur
iv




Agradecimentos


Agradeo a Deus por tornar possvel o desenvolvimento deste trabalho,
cercando-me de pessoas maravilhosas sem as quais eu nada seria.

Aos orientadores, Prof. Robson Luiz Moreno e Prof. Tales C. Pimenta, pela
orientao no desenvolvimento deste trabalho e constante disposio em auxiliar.

Ao professor Evaldo Cintra Ren e aos colegas do Grupo de Microeletrnica
da UNIFEI pelas valiosas contribuies dadas a esse trabalho;

A UNIFEI, em especial ao Grupo de Microeletrnica, pelo emprstimo da
placa de desenvolvimento FPGA XILINX SPARTAN 3A, sem a qual este trabalho no seria
possvel.
Aos meus familiares e amigos, pelo apoio incondicional e compreenso pelos
momentos de ausncia enquanto desenvolvia este trabalho.

CAPES, pelo apoio financeiro atravs do programa Demanda Social, ao
CNPq e a Fapemig.

Meus mais sinceros agradecimentos.

v




Resumo


Este trabalho visa demonstrar a viabilidade e o desenvolvimento de um sistema
embarcado de identificao de doenas cardacas. O propsito do sistema a aquisio de
sinais cardacos, originados de um eletrocardiograma conectado a um paciente, e a
apresentao de um provvel diagnstico. Para isso algumas tcnicas de processamento de
sinais so utilizadas. O sistema recebe os sinais de derivaes de um eletrocardiograma,
transmitido por sensores posicionados em pontos especficos no corpo do paciente. Estes
sinais so filtrados e processados de forma que na sada, deste sistema, seja exibido o possvel
diagnstico do paciente em anlise.
Para o funcionamento deste sistema ser apresentada uma alternativa, visando
melhorar seu funcionamento, que a utilizao do processo de Fuzzy Clustering, numa
traduo direta: amostragem nebulosa, entretanto como esta nomenclatura no est
consolidada o nome original ser utilizado. Este processo de Fuzzy Clustering permite extrair
as principais caractersticas de um sinal de entrada e, atravs destas caractersticas, fornecer
regras que podem ser utilizadas em vrios tipos de aplicaes de controle e tomadas de
decises. Este trabalho demonstra a possibilidade de utilizao deste processo para gerar os
pontos que representam as caractersticas principais de um sinal de eletrocardiograma.
Para comprovar a funcionalidade do sistema, foi utilizado o mtodo de
correlao para comparar e obter o grau de similaridade entre o sinal em anlise e os sinais de
um banco de dados com o diagnstico mdico conhecido. A comparao que obtiver maior
grau de similaridade, ser reconhecida como o possvel diagnstico para o paciente.
O sistema foi implantado em uma placa XILINX Spartan-3A Starter FPGA.
Sendo a FPGA (Field-programmable gate array) configurada com o Microblaze Soft-Core
vi

Processor - XILINX Embeded Processor. Foram feitos testes reais deste sistema, utilizando
uma base de dados pblica, e os resultados foram comparados com figuras de mritos de
outros trabalhos que utilizam outras tcnicas para obter o diagnstico de um paciente.
Tambm foram verificados outros fatores, da implantao em hardware dedicado, que tornam
este sistema mais eficiente utilizando as tcnicas empregadas.

vii




Abstract

This paper demonstrates the viability and development of an embedded system
for identifying heart disease. The purpose of the system is the acquisition of cardiac signals,
originating from an ECG connected to a patient, and the presentation of a likely diagnosis. To
this some signal processing techniques are used. The system receives signals from an
electrocardiogram derivations, transmitted by sensors placed at specific points in the patient's
body. These signals are filtered and processed so that the output of this system, to show the
possible diagnosis of the patient in analysis.
To operate this system will be presented an alternative to improve its
functioning, which is the use of the process of Fuzzy Clustering. This process of Fuzzy
Clustering allows to extract the main features of an input signal and, through these features,
provide rules that can be used in a variety of control applications and decision making. This
work demonstrates the possibility to use this process to generate the points that represent the
main features of an ECG signal.
To prove the functionality of the system, we used the correlation method to
compare and get the degree of similarity between the signal being analyzed and the signs of a
database with known medical diagnosis. The comparison gets greater degree of similarity to
be recognized as a possible diagnosis for the patient.
The system was implemented on Xilinx Spartan -3A FPGA Starter. As the
FPGA (Field-programmable gate array) set to the MicroBlaze Soft-Core Processor -
Processor Embeded XILINX. During tests of the real system using a public database, and the
results were compared with other works using other techniques for the diagnosis of a patient.
Other factors were also seen, the implementation on dedicated hardware, which make this
system more efficient by using the techniques employed.

viii




Sumrio


Captulo 1 ................................................................................................................................... 1
1.1. Consideraes Gerais ............................................................................................ 1
1.2. Apreciaes Sobre o Tema e a Justificativa do Trabalho ..................................... 3
1.3. Problema do Trabalho ........................................................................................... 5
1.4. Objetivos ............................................................................................................... 6
1.5. Metodologia........................................................................................................... 6
1.6. O Eletrocardiograma ............................................................................................. 7
1.7. Estrutura do Trabalho .......................................................................................... 10
Captulo 2 ................................................................................................................................. 12
2.1. Sistemas Embarcados .......................................................................................... 12
2.2. FPGAs ................................................................................................................. 13
2.3. SOFT CPU CORE ............................................................................................... 14
2.4. Xilinx Microblaze................................................................................................ 15
Captulo 3 ................................................................................................................................. 18
3.1. Consideraes Iniciais ......................................................................................... 18
3.2. Sistema de Pr-Processamento do Sinal ......................................................... 18
3.3. Filtro .................................................................................................................... 19
Captulo 4 ................................................................................................................................. 24
4.1. Consideraes Gerais .......................................................................................... 24
ix

4.2. Funo Membership ............................................................................................ 24
4.3. Criao de Regras ................................................................................................ 40
4.4. O Processo Fuzzy Clustering ............................................................................... 43
4.5. Aplicaes utilizando o Mtodo Fuzzy Clustering.............................................. 48
Captulo 5 ................................................................................................................................. 50
5.1. Consideraes iniciais ......................................................................................... 50
5.2. Resultado das Correlaes................................................................................... 51
Captulo 6 ................................................................................................................................. 54
6.1. Consideraes iniciais ......................................................................................... 54
6.2. Desenvolvimento do Software............................................................................. 54
6.3. Desenvolvimento do Hardware .......................................................................... 56
6.3.1 Escolhendo as Derivaes a Serem Recebidas ................................................... 57
6.3.2 Recebendo o Sinal Amostrado ........................................................................... 58
6.3.3 Sadas do Sistema ............................................................................................... 60
6.3.4 Hardwares para testes e verificaes .................................................................. 63
Captulo 7 ................................................................................................................................. 65
7.1. Banco de Dados ................................................................................................... 65
7.2. Testes Realizados ................................................................................................ 65
7.3. Resultados Obtidos .............................................................................................. 66
Captulo 8 ................................................................................................................................. 69
Referncias Bibliogrficas ....................................................................................................... 71


x







Lista de Figuras


Figura 1.1 Blocos de aquisio e filtragem. ............................................................................ 2
Figura 1.2 Blocos das tcnicas de Fuzzy Clustering e correlao. .......................................... 3
Figura 1.3 Sistema de conduo do corao [20]. ................................................................... 8
Figura 1.4 Derivaes bipolares I, II, III [20]. ........................................................................ 8
Figura 1.5 Derivaes unipolares aVF, aVL e aVR [20]. ....................................................... 9
Figura 1.6 Derivaes precordiais V1, V2, V3, V4, V5 e V6 [20]. ........................................ 9
Figura 1.7 Sinal caracterstico de um eletrocardiograma. ..................................................... 10
Figura 2.1 FPGA Utilizada para o desenvolvimento do sistema. .......................................... 14
Figura 2.2 Caractersticas do ncleo do Microblaze [23]. ..................................................... 15
Figura 2.3 Fluxo de projeto EDK da Xilinx. ......................................................................... 16
Figura 2.4 Placa XILINX SPARTAN 3A STARTER KIT. .................................................. 17
Figura 3.1 Sistema de Pr-processamento. ............................................................................ 19
Figura 3.2 Funo de transferncia de um filtro Butterworth [24]. ....................................... 20
Figura 3.3 Inclinao de atenuao do filtro Butterworth em funo da variao de sua
ordem [24]. ............................................................................................................................... 21
Figura 3.4 Grfico da resposta em frequncia do filtro utilizado [24]. ................................. 21
Figura 3.5 Exemplo de um sinal de eletrocardiograma antes de passar pelo bloco de
filtragem e eliminao do nvel DC .......................................................................................... 22
Figura 4.1 Exemplos para comparao de velocidades. ........................................................ 25
Figura 4.2 Exemplo de funo membership brusca. .............................................................. 26
Figura 4.3 Funo membership suave. .................................................................................. 26
Figura 4.4 Funo membership triangular. ............................................................................ 27
Figura 4.5 Funo membership sigma. .................................................................................. 28
Figura 4.6 Funo membership Gaussiana. ........................................................................... 29
Figura 4.7 Funo membership formada pela diferena de duas funes sigma. ................. 30
Figura 4.8 Funo membership sino generalizada................................................................. 31
Figura 4.9 Funo sen(x
1
.x
2
). ................................................................................................ 32
Figura 4.10 Grfico membership sino. .................................................................................. 33
Figura 4.11 Grfico gerado pelo programa para membership sino. ...................................... 34
xi


Figura 4.12 Grfico do erro gerado entre o sinal esperado para o sistema e o sinal gerado do
sistema. ..................................................................................................................................... 34
Figura 4.13 Grfico da funo sen(x
1
.x
2
). ............................................................................. 35
Figura 4.14 Grfico membership Gauss. ............................................................................... 36
Figura 4.15 Grfico de sada do programa para membership Gauss. .................................... 36
Figura 4.16 Grfico do erro gerado entre a funo sen(x
1
.x
2
) e a funo gerada pelo
programa, utilizando membership Gauss. ................................................................................ 37
Figura 4.17 Grfico da funo sen(x
1
.x
2
) a ser gerada pelo programa. ................................. 38
Figura 4.18 Grfico membership triangular. ......................................................................... 38
Figura 4.19 Grfico de sada para membership triangular. ................................................... 39
Figura 4.20 Grfico do erro gerado pelo programa entre a funo desejada e a funo a ser
gerada........................................................................................................................................ 40
Figura 4.21 Funo que deve ser gerada pelo programa. ...................................................... 44
Figura 4.22 Funes de memberships utilizadas pelo programa. .......................................... 45
Figura 4.23 Funo gerada na sada do programa. ................................................................ 45
Figura 4.24 Grfico do erro gerado pelo programa entre a funo esperada e a funo
gerada........................................................................................................................................ 46
Figura 4.25 Grfico que mostra a posio de cada cluster criado pelo programa. ................ 47
Figura 4.26 Grfico que mostra a posio de cada cluster e a posio de cada ponto de sada
do programa. ............................................................................................................................. 47
Figura 4.27 Sinal de eletrocardiograma aps pr-processamento. ........................................ 48
Figura 4.28 Clusters gerados pelo processo de Fuzzy Clustering. ........................................ 49
Figura 5.1 Sinais em anlise. ................................................................................................. 52
Figura 5.2 Sinais com forte correlao direta. ....................................................................... 53
Figura 5.3 Sinais com forte correlao inversa. .................................................................... 53
Figura 6.1 Diagrama de blocos do programa. ....................................................................... 55
Figura 6.2 Configurao da entrada das derivaes. ............................................................. 57
Figura 6.3 Exemplo das chaves selecionando a derivao V4. ............................................. 58
Figura 6.4 Parmetros necessrios para a aquisio das amostras. ....................................... 59
Figura 6.5 Enviando o sinal para o sistema. .......................................................................... 60
Figura 6.6 Identificao dos LEDs. ....................................................................................... 60
Figura 6.7 Derivaes exibidas nos LEDs (1 momento). .................................................... 62
Figura 6.8 Diagnstico exibido pelos LEDs (2 momento), neste caso angina. .................... 62
Figura 6.9 Indicao das cardiopatias pelos LEDs. ............................................................... 63
Figura 6.10 Sada da porta RS-232. ....................................................................................... 64
Figura 7.1 Grfico da quantidade de clocks por amostra. ..................................................... 68



xii






Lista de Tabelas

Tabela 6.1 Hardware Utilizado no Sistema. .......................................................................... 56
Tabela 6.2 Classificao das Derivaes. .............................................................................. 57
Tabela 6.3 LEDs Ativos pela derivao escolhida. ............................................................... 61
Tabela 6.4 Diagnstico final do sistema. ............................................................................... 61
Tabela 7.1 Comparao de resultados ................................................................................... 67


xiii





Lista de Smbolos


Hz Hertz
N Ordem do Filtro Butterworth
w Frequncia do filtro Butterworth
p
w Frequncia de corte do filtro Butterworth






1. Captulo 1

Introduo

1.1. Consideraes Gerais

De acordo com o governo norte-americano, atravs do National Center for
Health Statistics [1] a principal causa de morte em humanos se deve a doenas do corao,
superando at mesmo as mortes ocasionadas devido ao cncer. Mais de 910 mil americanos
morrem anualmente em consequncia de doenas do corao e, mais de 70 milhes vivem
com alguma forma de doena do corao como presso alta, derrame e angina [2]. Visando a
reduo desses nmeros, vrias pesquisas so desenvolvidas buscando formas de tornar o
diagnstico mais rpido, preciso e com uma antecedncia que permita, de alguma forma,
elevar as chances de sobrevivncia dos pacientes, atravs de tratamento especfico para uma
determinada cardiopatia.
Os sinais cardacos dos pacientes so obtidos atravs de um equipamento
denominado eletrocardigrafo (galvanmetro). Este por sua vez apresenta esses sinais na
forma do eletrocardiograma (ECG). Denomina-se eletrocardiograma de superfcie os sinais
eltricos de origem cardaca captados em pontos particulares do corpo humano. Ele um
registro das variaes dos potencias eltricos gerados pela atividade eltrica do corao. O
diagnstico baseado na extrao de informaes dos picos de ondas e intervalos de tempo
do sinal do ECG. O ECG um mtodo no invasivo (externo ao corpo humano) seguro,
reproduzvel, de fcil obteno, baixo custo e que fornece importantes apontamentos para



2
anlises e diagnsticos de anomalias cardacas, na opinio da equipe de especialistas da
Sociedade Brasileira de Cardiologia [3].
O ECG a representao de um sinal analgico tendo como grandeza no eixo
das abscissas o tempo, normalmente, em segundos, e no eixo das ordenadas, volts (mV).
Desta forma antes de sua anlise necessrio um pr-processamento, utilizando filtros. Este
pr-processamento necessrio devido presena de rudos indesejados misturados com os
sinais cardacos. Estes rudos so oriundos, principalmente, devido presena de outros
equipamentos prximos ao eletrocardigrafo e ao movimento dos msculos do paciente. Na
Figura 1.1 so mostrados todos os blocos utilizados que representam esta etapa.


Figura 1.1 Blocos de aquisio e filtragem.

O primeiro bloco representa as derivaes. Estas derivaes so sinais obtidos
pelos sensores, posicionados em pontos estratgicos do corpo humano para captar os sinais
eltricos gerados pelo corao. Normalmente, para uma maior certeza no diagnstico, so
analisadas 12 derivaes do eletrocardiograma, detalhadas no item 1.6 deste captulo, porm,
sabe-se que com apenas duas derivaes possvel gerar diagnsticos [4]. No segundo bloco
est o filtro que ir eliminar os rudos do sinal analisado. Neste bloco tambm feita a
retirada do nvel DC presente no sinal.
Na Figura 1.2 so apresentados os blocos, que representam a segunda etapa,
objeto deste trabalho. No primeiro bloco feito o processo Fuzzy Clustering, onde so obtidos
os pontos que descrevem as principais caractersticas do sinal do eletrocardiograma e no
segundo bloco, com a ajuda de um banco de dados de derivaes de sinais de
eletrocardiograma conhecidos, feita a correlao do sinal em anlise com os sinais do banco
de dados, obtendo desta forma o diagnstico do paciente.



3

Figura 1.2 Blocos das tcnicas de Fuzzy Clustering e correlao.

Tendo em vista a importncia do desenvolvimento de tecnologias na rea
cardaca descritos anteriormente, este trabalho apresenta um sistema embarcado que utiliza
uma tcnica de Fuzzy Clustering para obter caractersticas de um sinal de eletrocardiograma,
mostrando sua aplicao, resultados de comparaes com outras tcnicas de processamento de
sinais j estudadas, avaliaes de desempenho e custo em hardware dedicado.

1.2. Apreciaes Sobre o Tema e a Justificativa do
Trabalho

As primeiras tentativas de automatizar a interpretao de ECG por computador
(separao automtica de ECGs normais de ECGs anormais feito por um programa de
computador concebido para reconhecer e medir os componentes de onda do sinal de ECG
digitalizados) foram feitas por Pipberg no final da dcada de 1950 [5-7]. Os primeiros
programas disponveis comercialmente foram introduzidos no incio de 1970 [5] [7]. Sistemas
de interpretao automtica do ECG tm se tornado mais sofisticados, com um menor custo e
um nmero crescente de programas e tcnicas disponveis. O aumento contnuo no uso de
sistemas computacionais para interpretao do ECG leva a necessidade de avaliar parmetros
como o seu desempenho, preciso nos diagnsticos gerados e a compreenso de suas
vantagens e desvantagens.
As pesquisas sobre o uso de sistemas computacionais que utilizam tcnicas
diversas para a gerao de diagnsticos cardacos abrangem vrias reas do conhecimento.
Como exemplo, pode-se citar o processamento de sinais, e a aplicao de filtros e algoritmos
de inteligncia artificial (IA) para identificao e classificao destes sinais. A maioria das
pesquisas nessa rea tem como objetivo fornecer meios automticos de diagnsticos, ou a



4
melhor preparao das etapas necessrias para este fim, como forma de suporte a mdicos e
outros profissionais da sade.
No estudo de processamento de sinais, um dos tpicos a serem abordados so
os filtros. Nianqiang, Yongbing e Guoyi [8] citam a importncia da aplicao de filtros
digitais em sinais de ECG visando a eliminao dos rudos e reforando a necessidade deste
tipo de processamento ser feito em tempo real e em alta velocidade.
A aplicao de algoritmos de IA em problemas cardacos bastante utilizada.
Por exemplo, Mitsukura [9] cita como uma das principais motivaes e necessidades da
pesquisa de um sistema mdico de diagnsticos, a alta mortalidade causada por doenas do
corao. Pode-se citar duas etapas neste processo: a deteco e a classificao dos sinais
ECG. Yan [10] apresenta um algoritmo matemtico para identificao do complexo QRS,
detalhado ainda neste captulo, com uma alta preciso. Esta identificao importante pois a
base para a classificao de doenas cardacas.
Estando o sinal ECG devidamente filtrado e identificado faz-se a classificao
que poder demonstrar, ou no, o reconhecimento de alguma cardiopatia. Jewajinda e
Chongstitvatana [11] demonstram a classificao do sinal do ECG para monitoramento de
pacientes por um longo prazo.
Para obter o provvel diagnstico do sinal do ECG utilizada a tcnica da
correlao. Neste caso feita uma comparao do ECG em anlise com ECGs da base de
dados contendo as cardiopatias j definidas por uma equipe mdica. Para obter o grau de
eficincia dos algoritmos demonstrados neste trabalho so feitas comparaes com outros
trabalhos que possuem os mesmos parmetros estatsticos de acertos ou erros nos
diagnsticos, destacando-se Andreo [12], Jager [13], Maglaveras [14], Taddei [15] e Vila
[16]. Estes apresentam sistemas computacionais que utilizam tcnicas de processamento de
sinais para interpretao de caractersticas de um eletrocardiograma, o que permite obter
diagnsticos prvios de alguma cardiopatia em um paciente. Com estas tcnicas torna-se
possvel o diagnstico automtico do paciente, permitindo, por exemplo, um monitoramento
remoto, onde o acionamento de um alarme, em tempo real, avisaria um paciente ou at
mesmo uma equipe mdica, que pode tomar providncias com antecedncia evitando que o
problema s seja tratado em um estgio mais grave, aumentando as chances de sobrevivncia
do mesmo.
Depois da validao dos algoritmos no ambiente de software, utilizando
simuladores, como por exemplo, o Matlab no caso do Fuzzy Clustering algorithm, o
objetivo de vrios trabalhos o desenvolvimento de um sistema embarcado, em FPGA que



5
faa diagnsticos ou parte do processo para sua obteno. Armato [17] exemplifica a extrao
dos complexos QRS, classificao em tempo real entre normal ou patolgica e a integrao
em FPGA. Portanto devido a reduo de custos, observados nos sistemas embarcados nos
ltimos anos, uma tendncia natural de validao e aplicao em sistemas que contenham
FPGAs devido a facilidade e maior velocidade de implementao.


1.3. Problema do Trabalho

O problema a ser investigado a possibilidade de aplicao e implantao de
um sistema real, ou seja, um equipamento, que utiliza uma tcnica de processamento de sinais
para a obteno, com maior exatido e simplicidade, das caractersticas mais relevantes de um
sinal de eletrocardiograma. Com objetivo de execuo em um sistema embarcado de baixa
frequncia, para os padres atuais (50MHz), consequentemente um hardware mais simples e
barato para obteno de diagnsticos.
Para a verificao da eficcia do trabalho proposto, foi adquirido um banco de
dados de sinais de eletrocardiogramas reais, onde cada sinal apresenta as principais
caractersticas de um eletrocardiograma com uma determinada cardiopatia. O banco de dados
utilizado foi obtido atravs do PhysioNet (www.physionet.org). PhysioNet um projeto
cooperativo iniciado pelo Bostons Beth Israel Deaconess Medical Center/Harvard Medical
School, Boston University, Mc Gill University e Massachustts Institute of Technology (MIT),
que consiste em um servio pblico para pesquisa de sinais fisiolgicos complexos,
financiado pelo National Center for Research Resources e pelo National Institutes of Health.
O PhysioNet oferece livre acesso via Internet a diversas bases de dados de sinais fisiolgicos
e softwares relacionados leitura das mesmas [18].
Devido presena de rudos e de componentes DC, foi utilizado um sistema de
pr-processamento que composto de um filtro Butterworth de terceira ordem, implementado
como sries numricas, ou seja, em algoritmos computacionais, e um processamento para
eliminar o nvel de sinal DC presente junto com os sinais em anlise, permitindo assim maior
preciso nos resultados obtidos.




6
1.4. Objetivos

O objetivo geral deste trabalho apresentar um sistema embarcado, implantado
em hardware dedicado, que tem como tarefa receber um sinal de eletrocardiograma e fazer
todo o processamento at gerar um, possvel, diagnstico. A implantao do sistema pode ser
dividida em aquisio dos sinais, tratamento dos sinais, filtragem, Fuzzy Clustering e
correlao, visando sempre um sistema de diagnsticos rpido, com preciso nos resultados,
que tenha um baixo custo e algoritmos portveis. Os objetivos especficos, que derivam do
objetivo geral, so:

Dominar e validar todos os algoritmos em hardware;
Implementar um sistema de aquisio e preparao dos sinais;
Dominar o processo de Fuzzy Clustering;
Adaptar a tcnica de Fuzzy Clustering para a aplicao desejada;
Demonstrar as vantagens na utilizao do processo de Fuzzy Clustering
em hardware, em relao diminuio no nmero de sinais
amostrados;
Realizar testes, utilizando a correlao, com sinais de
eletrocardiogramas reais para a comprovao da eficcia do sistema
utilizado.

1.5. Metodologia

O primeiro passo foi a realizao de uma pesquisa bibliogrfica, com o
objetivo de ampliar conhecimentos para verificao do Estado da Arte da pesquisa sobre
eletrocardiogramas, tcnicas de processamento de sinais e sistemas embarcados.
Na segunda etapa foi planejado o algoritmo para aquisio e pr-
processamento de dados pelo hardware.
A terceira etapa da pesquisa consistiu no desenvolvimento de algoritmos mais
eficientes, para implantao em hardware, utilizando o processo de Fuzzy Clustering.
Na fase seguinte, foram feitos testes com sinais de eletrocardiograma reais para
comprovao da tcnica utilizada e validao do hardware.




7
1.6. O Eletrocardiograma

O eletrocardiograma o registro de todas as atividades eltricas originadas
pelo corao. As informaes obtidas atravs do eletrocardiograma so de grande importncia
para a determinao de algum distrbio que possa estar ocorrendo no funcionamento ou na
estrutura do corao [19].
O eletrocardiograma obtido, atravs de um aparelho chamado de
galvanmetro, que mede a corrente entre dois eletrodos colocados em pontos estratgicos do
corpo humano [19].
No corpo humano, a clula muscular em repouso, polarizada, rica em
potssio. O meio externo a esta clula rico em sdio. Desta maneira, a clula em repouso
polarizada mais negativa em relao ao meio externo que mais positivo em relao
clula [19].
Quando a clula ativada ocorre a despolarizao celular onde o interior da
clula passa a ficar mais positivo em relao ao meio externo. Aps a repolarizao, a clula
volta s suas condies normais iniciais [19].
O sistema de conduo do corao nada mais do que um processo de
despolarizao e repolarizao celular. Este sistema formado pelo ndulo sinusal (NS),
feixes internodais da juno atrioventricular (NAV), feixe de His, ramos do feixe e pela rede
de Purkinje como indicado na Figura 1.3 [19].
O nodo sinusal se encontra na parede posterior do trio direito e comanda o
ritmo cardaco. Ele nutrido pela artria do ndulo sinusal. A despolarizao iniciada no
ndulo sinusal se propaga pelo sistema de conduo sinoatrial ativando o endocrdio e o
epicrdio dos trios [19].
Os feixes internodais ligam o ndulo sinusal ao ndulo trio ventricular. O
feixe internodal anterior fornece um ramo que chega at o trio esquerdo [19].
O ndulo trioventricular recebe fibras do miocrdio atrial e de suas margens
anterior e inferior emerge o feixe de His [19].
No feixe de His origina o ramo direito e o ramo esquerdo. Estes continuam por
uma rede subendocrdica de fibras de Purkinje [19].
O ventrculo esquerdo eletricamente mais potente que o ventrculo direito,
logo a ativao caminhar para esquerda e para trs [19].



8
A repolarizao atrial no registrada no eletrocardiograma porque ela ocorre
ao mesmo tempo que a despolarizao ventricular, que um processo eltrico mais potente
[19].

Figura 1.3 Sistema de conduo do corao [20].
Devido a estes fenmenos eltricos gerados pelo corao, possvel medir
diferenas de potencial na superfcie do corpo humano. Dependendo dos locais no corpo
humano onde os eletrodos do aparelho de medida so colocados, so caracterizadas as
derivaes correspondentes de cada sinal [20]. As derivaes mais utilizadas so:
- Derivaes bipolares, que so derivaes obtidas pela utilizao de dois
eletrodos posicionados no corpo humano, como indicado na Figura 1.4 [20].


Figura 1.4 Derivaes bipolares I, II, III [20].




9
- Derivaes unipolares, onde um eletrodo colocado em um dos pontos
citados na derivao bipolar e o outro eletrodo conectado em um terminal central, como
mostrado na Figura 1.5 [20].


Figura 1.5 Derivaes unipolares aVF, aVL e aVR [20].

- Derivaes precordiais, estas derivaes so obtidas atravs da anlise que
utiliza uma viso de um plano chamado de plano horizontal, que seria uma vista de cima do
corpo humano. A Figura 1.6 mostra a posio destas derivaes [20].


Figura 1.6 Derivaes precordiais V1, V2, V3, V4, V5 e V6 [20].

De acordo com estas derivaes possvel se obter sinais que podem indicar
alguma anomalia no funcionamento do corao. Quanto maior o nmero de derivaes
utilizadas mais preciso pode ser o diagnstico.



10
Na Figura 1.7 apresentado um sinal caracterstico de um eletrocardiograma
com seus principais trechos. Cada trecho representa uma etapa do processo de despolarizao
e repolarizao celular.

Figura 1.7 Sinal caracterstico de um eletrocardiograma.

O trecho P representa o incio da despolarizao no trio direito e depois no
trio esquerdo. O segmento PR descreve o momento em que o impulso eltrico caminha pelo
feixe de His e pelos ramos direito e esquerdo. A despolarizao dos ventrculos representada
pelo segmento QRS. O segmento ST representa a fase inicial da repolarizao dos ventrculos
e a onda T descreve a repolarizao final dos ventrculos. Aps a onda T tm-se a onda U.
Esta onda considerada normal quando positiva e quando negativa indica uma anomalia. Esta
onda no constante [19].

1.7. Estrutura do Trabalho

O Captulo 2 discorre sobre Soft CPU Core, e FPGAs, apresenta o sistema
Microblaze Soft-Core Processor - XILINX Embeded Processor, e especifica sua tecnologia
e funcionalidades utilizadas neste trabalho.
O Captulo 3 apresenta o sistema de aquisio e pr-processamento bem como
uma breve explanao sobre o filtro utilizado neste sistema e o processo de eliminao do
nvel DC.
O Captulo 4 aborda os conceitos que envolvem o processo de Fuzzy
Clustering e mostra alguns exemplos e aplicaes, utilizando este processo.
O Captulo 5 ser apresentado o conceito sobre correlao e exemplos sobre a
sua utilizao.



11
O Captulo 6 demonstrar algumas caractersticas e o funcionamento do
sistema no hardware e software desenvolvidos.
No Captulo 7 observam-se os testes realizados, os resultados obtidos e
comparaes com outras tcnicas utilizadas em outros trabalhos.
As concluses e consideraes finais encontram-se dispostas no Captulo 8.





2 Captulo 2


O Hardware Utilizado e Definies
Necessrias

2.1. Sistemas Embarcados

Conforme apresentado no Captulo 1, um dos objetivos a implantao de
tcnicas de processamento de sinais, no caso a Fuzzy Clustering e a correlao, utilizando um
sistema embarcado.
Sistemas embarcados so sistemas responsveis por um conjunto restrito de
funes especificas e correlacionadas. Eles so formados basicamente pelos mesmos
componentes de uma arquitetura de computador: microprocessador, memria principal,
interfaces e outros, dependendo do sistema. [21]. Existem algumas limitaes de hardware,
em comparao com uma arquitetura de computador, como por exemplo, frequncia de
processamento, memria, dentre outros, que, em geral, so bem menores que em sistemas
computacionais maiores. Por outro lado as vantagens, nos sistemas embarcados em relao
aos computadores, so na maioria dos casos: custo, tamanho, peso, consumo e especificidade.
Um sistema embarcado pode consistir de um ou vrios circuitos integrados [21].
13


Em aplicaes onde um circuito integrado personalizado essencial, existe a
opo de usar circuitos integrados programveis, chamados de FPGAs (Field-Programmable
Gate Arrays) ou de LCAs (Logic-Cell Arrays).

2.2. FPGAs

As FPGAS so circuitos integrados (CIs) com caractersticas de serem
programveis. A Tecnologia foi criada pela XILINX Inc., e teve o seu lanamento no ano de
1985. Esses circuitos so compostos por um enorme nmero de chaves programveis, que
podem ser configurados para simular o comportamento de qualquer outro circuito digital. Para
programar esses circuitos podem ser utilizadas linguagens de descrio de hardware HDL
(Hardware Description Language). As HDLs mais usuais atualmente so VHDL, Verilog e
SystemVerilog.
A grande vantagem da FPGA em relao aos CIs comuns a capacidade de
possuir um desempenho de hardware com a flexibilidade de um software [22]. Entretanto as
FPGAs so naturalmente mais caras que CIs convencionais, porm so uma boa opo em
situaes onde so necessrios apenas alguns circuitos exclusivos.
Existem diversas empresas fabricantes de FPGAs, destacando-se XILINX e
ALTERA. O sistema foi implementado em uma FPGA XILINX da famlia SPARTAN,
conforme ilustra a figura 2.1.
14



Figura 2.1 FPGA Utilizada para o desenvolvimento do sistema.

2.3. SOFT CPU CORE

Em muitas aplicaes conveniente possuir um microprocessador e uma
FPGA, que podem estar separados. Mas eles tambm podem estar combinados em um nico
CI, proporcionando menos consumo de energia, arquitetura de placas mais simples, e menos
problemas com a integridade do sinal e interferncia eletromagntica.
Um Soft CPU Core, processador leve, uma Propriedade Intelectual - IP
(Intellectual Property) da Xilinx, que implementado usando as lgicas da FPGA. Dentre os
principais benefcios do uso de um processador soft core destacam-se a relao custo por
benefcio entre preo e desempenho, alm de simplicidade de projeto, menor tempo de
produo, fcil integrao com a FPGA e outras tecnologias, e devido s atualizaes no IP,
vida til longa e alta reusabilidade [23]. Normalmente os Soft CPU so escritos em
linguagens de descrio de hardware HDL, e no utilizam partes especficas da FPGA.
Assim no dependem da tecnologia e so flexveis, apesar de serem mais lentos que os Hard
CPU Core.
Os Hard CPU Cores, processador pesado, so desenvolvidos em baixo nvel
(nvel de silcio). Estes so especializados e muito pouco flexveis, contudo so bem mais
rpidos que os Soft CPU Cores.
15



2.4. Xilinx Microblaze

O Microblaze um processador 32-bit RISC Soft Processor Core.
Processadores RISC (Reduced Instruction Set Computer), ou computador com um conjunto
reduzido de instrues, so capazes de executar apenas algumas poucas instrues simples.
Justamente por isso, os chips baseados nesta arquitetura so mais simples e muito mais
baratos. Pela sua forma de implementao, em FPGA, o Microblaze tratado em algumas
bibliografias como um processador virtual. Ele possui instrues otimizadas para aplicaes
embarcadas [23] e trabalha, por padro, com vrios tipos de memrias SDR, DDR, DDR2,
SRAM e Flash. Possui tambm uma unidade de ponto flutuante, FPU, compatvel com IEEE-
754 de preciso simples [23]. A FPU de extrema importncia para este trabalho. A Figura
2.2 de [23] ilustra as caractersticas do ncleo do processador.


Figura 2.2 Caractersticas do ncleo do Microblaze [23].

A arquitetura bsica consiste em trinta e dois registradores de propsito-geral,
uma Unidade Lgica Aritmtica (ULA), uma unidade de deslocamento, e dois nveis de
interrupo. Para a placa de desenvolvimento XILINX SPARTAN 3A Starter kit, usada no
trabalho, a frequncia de clock interna mxima do Microblaze de 50 MHz.
A sute de desenvolvimento deste sistema a XILINX Software Development
Kit - SDK, que divide o projeto em duas partes: projeto de hardware e projeto de software.
16


O desenvolvimento de programas, ou projeto de software, para este
processador deve ser feito em linguagem C ou C++, pois estas foram escolhidas pela
XILINX. Portanto a sute de desenvolvimento para este processador, XILINX Software
Development Kit - SDK, possui compiladores que geram o cdigo de mquina, a partir de
programas em C ou C++, necessrio para a execuo no Microblaze. Neste trabalho a
linguagem de programao utilizada C.
O XILINX Plataform Studio - XPS, a sute responsvel pela gerao de todos
os IP cores do MicroBlaze e seus respectivos perifricos, ou seja, o projeto de hardware. O
XPS possui uma biblioteca com algumas arquiteturas de hardware escritas, comumente, em
VHDL. Esta sute faz a juno e compilao de todos os cdigos VHDL dos componentes
escolhidos e implanta-os na FPGA. O fluxo de projeto ilustrado na Figura 2.3.

Figura 2.3 Fluxo de projeto EDK da Xilinx.

Os componentes, de hardware, necessrios para este trabalho so:
Microblaze a 50 MHz de clock com FPU;
32 MB de memria ram DDR2;
Interface serial (RS232);
Chaves (Dip Switches);
LEDs;
Botes;
Contador de ciclos de clock (IP Clock Counter).

17


A Figura 2.4 ilustra a placa XILINX Spartan 3A Starter Kit com os
componentes necessrios indicados, destacando-se:
1 FPGA;
2 Chaves;
3 Leds;
4 Botes;
5 Porta RS232;
6 Entrada USB;
7 Alimentao da placa.


Figura 2.4 Placa XILINX SPARTAN 3A STARTER KIT.

As formas de funcionamento do sistema de diagnstico cardaco, em
integrao com os perifricos e o microprocessador, sero detalhadas no Captulo 6.





3 Captulo 3

Fundamentos Tericos


3.1. Consideraes Iniciais

Conforme apresentado no Captulo 1, o objetivo aplicar uma ferramenta de
processamentos de sinais, no caso o Fuzzy Clustering e a correlao, em um sistema
embarcado para obter o provvel diagnstico de pacientes. Para se testar a eficcia do sistema,
foi necessria a utilizao de sinais de eletrocardiogramas reais. A forma especfica da entrada
desses dados no hardware via porta serial RS-232, que ser detalhada no Captulo 6. Para as
fundamentaes tericas seguintes consideram-se os dados do eletrocardiograma j inseridos
no sistema. Devido presena de rudos, antes da anlise do eletrocardiograma, foi utilizado
um filtro e um processo de eliminao de qualquer nvel DC presente neste sinal, ambos
atravs de mtodos numricos com a utilizao de algoritmos lgicos.


3.2. Sistema de Pr-Processamento do Sinal

19


Para a utilizao de sinais reais de eletrocardiograma, foi necessrio utilizar
um sistema de pr-processamento para retirar o rudo de frequncias mais altas do que as
frequncias de um eletrocardiograma.
O sistema de pr-processamento tem a funo de preparar o sinal para que
possa ser processado sem a interferncia de sinais indesejados. A Figura 3.1 mostra o sistema
de pr-processamento utilizado no sistema proposto.

Figura 3.1 Sistema de Pr-processamento.

De acordo com a Figura 3.1, o primeiro bloco do sistema de pr-
processamento representa a entrada do sistema. De acordo com o banco de dados utilizado
para os testes e com os sinais reais de eletrocardiogramas, estes j foram fornecidos
amostrados, ou seja, para este sistema o sinal de eletrocardiograma utilizado j estava
amostrado com tempo de amostragem de 0,003s.
O segundo bloco representa a utilizao de um filtro passa baixa, para a
eliminao de rudos de frequncias mais altas. Neste projeto, aps alguns testes no software
MATLAB, foi utilizado um algoritmo que representa um filtro Butterworth, que ser
detalhado adiante.
O terceiro bloco representa a eliminao de nvel DC presente nos sinais de
eletrocardiograma. Foi aplicada esta tcnica de processamento, tambm atravs de algoritmos,
para a eliminao de nvel DC.



3.3. Filtro

O filtro tem a finalidade de eliminar sinais de frequncias indesejadas. No
sistema proposto, verificou-se a necessidade da utilizao de um filtro passa baixa para
eliminar os rudos que possuem frequncia mais alta do que a frequncia do
eletrocardiograma. Estes rudos presentes no eletrocardiograma causam erros devido a
alteraes nas caractersticas de variao do sinal em anlise.
20


Utilizando a ferramenta MatLab e realizando alguns testes e ajustes verificou-
se que, para esta aplicao, o filtro de Butterworth apresenta resultados satisfatrios e por isto
foi o escolhido. Sabe-se que este filtro tem como principal caracterstica uma resposta em
frequncia sem ondulaes em sua banda passante e uma resposta nula fora da sua faixa de
passagem. Outra caracterstica deste tipo de filtro que alterando sua ordem, somente a
inclinao da atenuao alterada [24]. A magnitude da funo de ordem N com uma banda
passante com frequncia de corte Wp dada por:

N
p
w
w
e
jw T
2
2
1
1
) (
|
|

\
|
+
=

(3.1)

Nota-se que para este filtro a mxima variao da banda passante ocorre na
frequncia de corte, ou seja, quando w = wp [24].
A Figura 3.2 mostra um exemplo de resposta em frequncia de um filtro
Butterworth.

Figura 3.2 Funo de transferncia de um filtro Butterworth [24].

A Figura 3.3 apresenta a atuao do filtro Butterworth de acordo com a
variao da ordem do filtro.
21



Figura 3.3 Inclinao de atenuao do filtro Butterworth em funo da
variao de sua ordem [24].

Na Figura 3.4 apresentado o grfico de resposta em frequncia do filtro de
Butterworth utilizado neste sistema. Este filtro foi ajustado em um filtro de terceira ordem e
com uma frequncia de corte de 13,8 Hz.

Figura 3.4 Grfico da resposta em frequncia do filtro utilizado [24].


O sinal do eletrocardiograma, conforme o grfico da Figura 3.5, aplicado na
entrada de um filtro Buttterworth. Este filtro elimina rudos de frequncias mais altas de tal
0 10 20 30 40 50 60 70 80 90 100
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Resposta em freqncia
freqnca (Hz)
a
m
p
l
i
t
u
d
e
22


forma que em sua sada obtido um sinal de eletrocardiograma apenas com as caractersticas
de funcionamento do corao conforme ilustrado na Figura 3.6. Atravs de um processamento
feita a eliminao de nvel DC presente no sinal, que para o mtodo da correlao
fundamental visto que todos os sinais devem estar no mesmo nvel. Aps este processamento
o sinal passa a ter as caractersticas mostradas no grfico da Figura 3.6 e ento est pronto
para ser analisado.
Para a eliminao do nvel DC, foi calculada a mdia aritmtica das amostras
do sinal em anlise. O valor mdio encontrado foi subtrado de cada amostra, e desta forma o
sinal DC presente no eletrocardiograma foi eliminado, como observado na Figura 3.6.

Figura 3.5 Exemplo de um sinal de eletrocardiograma antes de passar pelo
bloco de filtragem e eliminao do nvel DC

0 50 100 150 200 250
-2.6
-2.4
-2.2
-2
-1.8
-1.6
-1.4
-1.2
Sinal de Entrada
tempo (s)
a
m
p
l
i
t
u
d
e
23



Figura 3.6 Exemplo de um sinal de eletrocardiograma aps passar pelo bloco
de filtragem e eliminao do nvel DC
0 50 100 150 200 250
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
Sinal de Entrada filtrado
tempo (s)
a
m
p
l
i
t
u
d
e





4 Captulo 4

Fuzzy Clustering


4.1. Consideraes Gerais

Neste captulo so apresentados todos os procedimentos realizados para a
execuo do processo de Fuzzy Clustering, que a base para o funcionamento do sistema em
hardware na qual se fundamenta a tese proposta.
O processo de Fuzzy Clustering pode ser dividido em algumas etapas:
- Primeiro deve-se escolher a funo de membership a ser utilizada;
- Aps a escolha da funo de membership a ser utilizada, inicia-se a etapa da
criao das regras. Cada regra descreve a tendncia da sada do sistema para cada faixa de
valores dos sinais de entrada. Estas regras descrevem as principais caractersticas de resposta
do sistema a ser controlado.

4.2. Funo Membership

Uma funo de membership indica qual o grau de pertinncia de um
determinado elemento em relao a um evento. O valor do membership pode variar entre 0 e
25


1. Esta faixa de valores representa o grau de influncia de um elemento em relao a um
evento [25].
Para melhor compreender a definio desta funo, imagine a necessidade de
diferenciar um carro em alta velocidade e um carro com baixa velocidade. A Figura 4.1 ilustra
cinco carros com suas respectivas velocidades:





Figura 4.1 Exemplos para comparao de velocidades.

Considerando-se que um carro a uma velocidade acima de 80 Km/h est acima
da velocidade mxima permitida, os carros com a velocidade de 90 Km/h, 87 Km/h e 82
Km/h tero seus motoristas multados, pois esto acima da velocidade mxima permitida. Mas,
ser correto que o motorista do carro a 82 Km/h seja multado?
Para uma melhor classificao em situaes como esta que so utilizadas as
funes de membership, que possuem variao suave. Estas funes indicam o grau de
pertinncia de um elemento em relao a um determinado grupo. No exemplo acima, o carro
com 87 Km/h com certeza possui um grau de membership bem maior, em relao ao conjunto
de carros acima da velocidade mxima permitida do que o carro com velocidade de 82 Km/h,
porm ter um grau de membership menor, em relao ao carro com velocidade de 90 Km/h.
Na primeira situao poderia ser utilizada a funo de membership ilustrada na
Figura 4.2, que mostra uma funo membership de variao brusca. Esta funo, de acordo
com a variao de velocidade (eixo horizontal), varia o grau de membership (eixo vertical).
Este valor pode variar entre 0 e 1.


26



Figura 4.2 Exemplo de funo membership brusca.

Na segunda situao, onde tm-se uma mudana no valor de membership mais
suave, apresentada a funo mostrada na Figura 4.3.



Figura 4.3 Funo membership suave.

A funo de membership suave, onde de acordo com a variao de velocidade
(eixo horizontal), o valor do grau de membership (eixo vertical) varia de forma suave entre 0 e
1.
Note que na primeira classificao (com variao brusca do membership) um
carro tem a velocidade considerada alta e o outro com velocidade baixa. J na segunda
classificao (com variao suave do membership) um carro considerado com velocidade
baixa e o outro com velocidade no muito alta, ou seja, o segundo carro no considerado
com velocidade alta, mas sim um grau entre velocidades consideradas altas e baixas.
De acordo com a aplicao, o formato destas funes de memberships pode
variar. Em um sistema real, a funo de membership pode ser baseada em informaes
fornecidas por um operador do sistema que conhece a faixa de valores de variao de um
determinado evento e a ao a ser tomada para cada situao. Atravs destas informaes
pode ser construda uma funo de membership que mais se aproxima com os valores
fornecidos pelo operador do sistema [25].
27


As Figuras 4.4, 4.5, 4.6, 4.7 e 4.8 apresentam as funes de membership mais
simples. possvel notar que cada funo tem um grau de inclinao diferente, o que as torna
mais adequadas em determinadas aplicaes especficas.
A funo mostrada na Figura 4.4 um exemplo de uma funo membership de
formato triangular que possui variaes bruscas entre o valor mximo 1 e o valor mnimo 0.
Para se obter esta funo tm-se:

Para ; 0 ] 3 , 0 [ = = x
Para ;
3
3
[ 6 , 3 ]

= =
x
x
Para ; 1 6 = = x
Para ;
2
8
[ 8 , 6 ]
x
x

= =
Para . 0 8 = x


Figura 4.4 Funo membership triangular.


A Figura 4.5 mostra uma funo membership sigma, que possui uma variao
mais suave, se comparada com as funes membership analisadas anteriormente. Esta funo,
em um caso especial, pode ser calculada da seguinte maneira:

28


x
e

=
1
1


(4.1)




Figura 4.5 Funo membership sigma.

Existem tambm as funes de memberships descritas por funes de
distribuio Gaussiana normalizadas, como ilustrado na Figura 4.6.
Se comparada com as outras funes anteriores a funo membership
Gaussiana, ilustrada na Figura 4.6, de variao mais suave e ter um melhor resultado em
sistemas que exigem em sua sada funes de variaes suaves. Esta funo, de acordo com a
variao dos valores de x, no eixo horizontal, apresenta em sua sada, no eixo vertical a
funo:

2
2
. 2
) (
) , , (

=
x
e x

(4.2)


29



Figura 4.6 Funo membership Gaussiana.


A Figura 4.7 mostra um exemplo de uma funo que formada pela diferena
de duas funes sigmoidais. Esta funo tambm possui uma variao mais suave e de acordo
com a variao de x, no eixo horizontal, apresenta o valor de resposta, no eixo vertical
definida pela funo:

1 ) ( 1 ) (
2 2 1 1
] 1 [ ] 1 [ ) , , , , (
2 2 1 1

+ + =


x x
e e x

(4.3)


30



Figura 4.7 Funo membership formada pela diferena de duas funes
sigma.

A funo da Figura 4.8 conhecida pelo seu formato como funo sino. Nota-
se uma variao mais brusca entre seu valor mximo e mnimo. Esta funo membership pode
ser definida pela funo:

1
2
1 ) , , , (

(
(


+ =


x
x

(4.4)


31



Figura 4.8 Funo membership sino generalizada.


De acordo com [25] os formatos das funes de memberships que
normalmente so mais utilizados so o triangular e o trapezoidal, devido facilidade para
gerar estas funes. Porm, em situaes onde desempenho suave considerado de grande
importncia, as funes de membership podem ter outros formatos como gaussiana, sigmide
e sino.
Para verificar e demonstrar a influncia do formato das funes membership,
no funcionamento de um sistema de Fuzzy Clustering, sero analisadas trs funes de
formatos diferentes atuando em uma mesma aplicao. Nesta anlise todas as funes de
memberships e todo o funcionamento do sistema foi feito em MatLab.
O sistema utilizado para teste utiliza as funes de membership para criar
regras de controle. Neste exemplo, a funo de controle dever ser sen(x
1
.x
2
), ou seja, para
valores de X
1
e X
2
de entrada, a sada deve gerar o resultado da funo de controle.
Inicialmente so fornecidos, para o treinamento do programa, alguns valores
de entrada do sistema e os valores de sada que devem ser gerados. Aps o treinamento com
os valores de dados fornecidos, o programa gera uma funo de controle que ser capaz de
gerar em sua sada valores de acordo com o treinamento feito anteriormente. Esta aplicao
dever utilizar 14 funes de membership e como primeiro exemplo, estes membership t6em
o formato sino e devem atuar em toda a faixa de variao possvel das entradas
32


Como exemplo, o programa descrito acima ter que gerar uma funo em sua
sada que gere o valor de sen(x
1
.x
2
), de acordo com dois valores de entrada x
1
e x
2
. O grfico
da Figura 4.9 mostra a funo correta esperada na sada do programa onde se tem a variao
de x1 e x2 entre -3 e 3 e o resultado de sen(x1.x2), que varia entre -1 e 1.



Figura 4.9 Funo sen(x
1
.x
2
).

Na Figura 4.10 apresentado o grfico das funes membership sino que ser
usada para verificar a viabilidade deste sistema.
33



Figura 4.10 Grfico membership sino.

Este o grfico dos 14 memberships utilizados pelos dois dados de entrada (x1
e x2). Como o programa est gerando uma funo que relaciona x1 e x2, se cada entrada
trabalha com 14 memberships, o programa ir relacionar os 14 memberships de cada entrada,
resultando em uma combinao de 196 memberships.
O grfico da Figura 4.11 mostra a funo gerada pelo programa utilizando os
14 memberships para cada entrada. Este grfico mostra que o sinal gerado na sada do
programa obteve alguns erros, que so indicados pelas pequenas ondulaes geradas na
superfcie da figura e que no apareceram no grfico da funo esperada da Figura 4.9.



34



Figura 4.11 Grfico gerado pelo programa para membership sino.

Na Figura 4.12 apresentado o grfico que mostra os erros gerados pelo
programa.


Figura 4.12 Grfico do erro gerado entre o sinal esperado para o sistema e o
sinal gerado do sistema.

35


O grfico do erro gerado pelo programa foi calculado subtraindo a funo
gerada pelo programa da Figura 4.11, pela funo esperada da Figura 4.9. Verifica-se que
dentro do intervalo entre -3 e 3, o maior erro gerado foi prximo de 0,08.
Agora ser utilizado a mesma funo do exemplo anterior, sen(x
1
.x
2
), mas a
funo de membership ter outro formato. Neste exemplo tem-se uma funo membership de
Gauss. Na Figura 4.13 apresentada a funo de sada sen(x
1
.x
2
) que se espera do programa.
De acordo com os valores de x1 e x2, que neste caso podem variar entre -3 a 3, e utilizando a
funo de membership de Gauss, gerada uma funo sen(x
1
.x
2
), que poder variar entre -1 a
1.



Figura 4.13 Grfico da funo sen(x
1
.x
2
).

De acordo com a Figura 4.14, que apresenta o grfico da funo membership
de Gauss, nota-se que a variao das funes de memberships suave se comparado com o
grfico de membership de formato sino. Assim para gerar uma funo seno que possui uma
variao suave ela apresenta um melhor resultado, ou seja, um erro menor.

36



Figura 4.14 Grfico membership Gauss.

A Figura 4.15 mostra a funo de resposta gerada pelo programa que recebeu
em sua entrada x
1
e x
2
, variando entre -3 a 3 e gerou em sua sada uma funo que deveria se
aproximar da funo sen(x
1
.x
2
), utilizando o membership de Gauss. Comparando o grfico de
sada para este membership, nota-se que praticamente no ocorreram ondulaes na superfcie
da figura gerada.


Figura 4.15 Grfico de sada do programa para membership Gauss.
37



De acordo com a Figura 4.16 o maior erro gerado entre a funo esperada,
dentro do intervalo entre -3 a 3, e a funo gerada foi prximo de 0,03. Comparando com o
erro gerado pela funo que utilizou o membership sino, o erro foi menor.


Figura 4.16 Grfico do erro gerado entre a funo sen(x
1
.x
2
) e a funo
gerada pelo programa, utilizando membership Gauss.

O prximo teste ir utilizar a mesma funo, que com a variao das entradas
x
1
e x
2
entre -3 a 3, deve gerar em sua sada a sen(x
1
.x
2
) mostrada na Figura 4.17. Neste caso
sero utilizadas 14 funes de membership onde, destas funes, 10 tem o formato triangular
e 2 tem formato trapezoidal.

38



Figura 4.17 Grfico da funo sen(x
1
.x
2
) a ser gerada pelo programa.

A Figura 4.18 mostra as 14 funes de membership utilizadas para cada
entrada (x
1
e x
2
). Como estas duas entradas sero associadas para gerar a funo de sada
sen(x
1
.x
2
), este programa ter um total de 196 regras.


Figura 4.18 Grfico membership triangular.

39


A Figura 4.19 apresenta o grfico gerado pelo programa, onde para x
1
e x
2

variando entre -3 a 3, o programa gerou uma funo em sua sada que se aproxima da funo
esperada mostrada na Figura 4.17. Observa-se que o grfico gerado pelo programa est
bastante deformado em relao aos grficos gerados pelas outras funes de memberships,
Sino e Gauss. Esta deformao percebida pelas ondulaes na superfcie da figura indicada.
Isto ocorre porque como a funo a ser gerada pelo programa uma funo de variao suave
e a funo de membership de formato triangular possui uma variao mais brusca. Se
comparada com as outras duas funes, a funo triangular foi a que apresentou maior
deformao na funo de sada. A funo de Gauss, que a funo de membership mais
suave, foi a que obteve melhor resultado.


Figura 4.19 Grfico de sada para membership triangular.

A Figura 4.20 mostra a funo do erro gerado pelo programa. Este erro foi
gerado pela subtrao da funo gerada pelo programa na figura 4.19 pela funo esperada da
figura 4.17. Nota-se que o maior erro chegou prximo de 0,6. O erro que utilizou a funo de
membership triangular foi maior, devido ao fato de que esta funo possui variaes mais
bruscas, no apresentando um bom resultado para a funo sen(x
1
.x
2
).

40



Figura 4.20 Grfico do erro gerado pelo programa entre a funo desejada e a
funo a ser gerada.

De acordo com os resultados obtidos nestes exemplos apresentados
anteriormente, utilizaremos o formato de membership que proporcionou um melhor resultado,
no caso a funo de Gauss.
Existe ainda uma caracterstica que tambm ir influenciar na preciso de
resposta do sistema que a quantidade de conjuntos de memberships. Quanto maior a
quantidade de memberships melhor ser a resposta do sistema, porm tambm ser maior a
demanda computacional necessria para este sistema. Segundo [25] uma quantidade entre 2 a
7 memberships o suficiente pois um aumento de 5 para 7 conjuntos de memberships
triangulares resulta em uma melhora de 15%. Um nmero maior do que 7 memberships no
mais resulta em melhoras significativas no sistema.


4.3. Criao de Regras

Aps a escolha da funo de membership que gerou o melhor desempenho do sistema,
ser descrito o processo matemtico para a gerao de regras. Neste processo que so
criados os clusters que descrevem as principais caractersticas do sinal.
41


Inicialmente devem ser coletados vrios dados de entrada e as respectivas sadas que
estes dados devem provocar no sistema, para o treinamento do algoritmo a ser criado.
Dado uma sequncia de valores de entrada de um sistema X, onde X = [x
1
,x
2
,x
3
,....,x
k
],
com k representando a quantidade de entradas do sistema para o treinamento e Y, onde Y =
[y
1
, y
2
, y
3
, ......, y
k
], que so as respectivas sadas do sistema quando nele so aplicadas as
entradas X. Com uma quantidade de regras M pode-se definir a quantidade de memberships a
serem gerados, que deve ser igual ao produto da quantidade de memberships de cada evento
[26].
Cada evento representa uma varivel de um sistema a ser controlado. Como exemplo,
considere um sistema de controle de um rob que deve colocar um objeto em um determinado
local. Para que o sistema consiga fazer o rob colocar o objeto corretamente no local, este
sistema deve ter a informao, atravs de sensores, da altura deste objeto, da distncia at o
local onde o objeto deve ser colocado, altura deste local e outros. Cada informao desta seria
um evento a ser analisado pelo sistema [26].
Definida a quantidade de regras a serem utilizadas, ser utilizado um mtodo
de estimao pelos mnimos quadrados de um dado aplicado, para determinar os coeficientes
a
i
e b
i
da equao de cada regra. De acordo com o modelo Fuzzy [25], se uma entrada x
pertence a um membership logo tem-se A
i
, onde A
i
representa o grupo de antecedente fuzzy de
cada regra, e assim, a sada correspondente a uma determinada regra i ser [26]:
i
T
i i
b x a y + =

(4.5)

A quantidade de coeficientes da equao de sada vai depender da quantidade
de eventos que sero analisados na entrada do sistema. Sendo n o nmero de eventos de
entrada do sistema, deve-se calcular sempre (n + 1) coeficientes da equao de sada de cada
regra [26].
Para uma determinada entrada x(k) o valor total de sada do sistema y(k) para
esta entrada ser calculado atravs da equao 4.6:

=
=
M
i
i ki
k y u k y
1
) ( ) (

(4.6)

Onde
ki
u o grau normalizado de participao de uma entrada para a regra Ri
e calculado pela equao 4.7.
42



( )

=
=
M
i
i
k i
ki
k A
x A
u
1
) (

(4.7)

Para determinar os parmetros de cada regra considera-se uma coleo de N
pares de dados de entradas e sadas de um sistema {x(k), y(k)} onde k = 1, 2, 3, ...., N, com
x(k) sendo um vetor que contm todas as entradas [ x1(k), x2(k), ....., xn(k)] e y(k) o vetor das
respectivas sadas correspondentes [y(1), y(2), ...., y(k)]T. Monta-se uma matriz Xe , que
uma matriz com todos os dados de entrada em uma coluna e uma coluna unitria [X, 1] com
colunas [x(k)T, 1]. A ativao de cada regra feita pela matriz i, que uma matriz diagonal
onde os elementos da diagonal principal so retirados da coluna i do grau normalizado das
entradas para a regra i, que so denotadas por
ki
u . Monta-se agora a matriz X que uma
matriz de dimenses N x M.N, composta pela multiplicao das matrizes i e Xe, como
mostrado abaixo [26] pela equao 4.8

[ ] Xe Xe Xe X
M
. ,...., . , . '
2 1
=

(4.8)

Com a montagem das matrizes anteriores pode-se calcular o vetor , que um
vetor de dimenses M.(n + 1) x 1 e que apresenta os coeficientes finais das regras a serem
geradas.

[ ]
T
T
M
T T
,...., , '
2 1
=

(4.9)

Cada elemento do vetor apresenta os coeficientes de cada regra,

[ ]
i i
T
i
b a , =

(4.10)

Logo o modelo de regresso pode ser obtido pela expresso 4.11:

e X y + = ' '.

(4.11)
43



Nesta equao e o erro de aproximao. Para o clculo de utilizando o
modelo de regresso, tm-se:

( ) [ ] ( ) y X X X
T T
. ' . ' . ' '
1
=

(4.12)



4.4. O Processo Fuzzy Clustering

Um processo de Fuzzy Clustering consiste em dividir um determinado grupo
de dados em grupos ou clusters, de acordo com a distncia dos pontos destes dados em
relao ao prottipo de clusters. Existem vrios mtodos de identificao destes clusters e
nesta aplicao foi proposto o mtodo GK Fuzzy Clustering algorithm [27]. Todo cluster
representa uma regra dentro de um grupo de regras.
De posse dos pares de valores das entradas e suas sadas correspondentes,
criada uma matriz de regresso X e o vetor de sada y, como mostrado abaixo:

[ ]
N
T
x x x X .., ,......... ,
2 1
=
[ ]
N
T
y y y y .... ,......... ,
2 1
=
(4.13)

Onde N indica o nmero de pares utilizados para a identificao. Lembrando que, o nmero
de entradas utilizadas deve ser maior que o nmero de regras n, a serem utilizadas.
Os grupos de antecedentes fuzzy so determinados atravs de medidas do
produto do espao para os sistemas de entrada e sada. O grupo de dados
N n
R Z
+

) 1 (

representado por uma matriz formada por X e y:

.
[ ] y X Z
T
, =

(4.14)

Cada coluna de Z contm um par de dados de entrada e sada.
44


Tendo Z e um nmero estimado M de regras, a repartio Fuzzy representada
pela matriz U NxM, onde cada elemento u
ki
pertence ao intervalo [0,1] representa o grau de
membership para o elemento Z
k
no cluster i.
Como exemplo de aplicao deste processo de Fuzzy Clustering, ser
apresentado uma simulao, em MatLab, que dever gerar em sua sada uma funo
sen(x
1
.x
2
). Este simulao contempla 14 funes de memberships com o formato da funo de
Gauss com 75% de superposio.
A Figura 4.21 apresenta a funo esperada.

Figura 4.21 Funo que deve ser gerada pelo programa.

Nota-se que uma funo onde as duas variveis de entrada x1 e x2 variam
entre -3 a 3 e a funo a ser gerada sen(x
1
.x
2
) varia entre -1 a 1.
Para gerar a funo mostrada acima, utilizam-se funes de membership que
iro varrer todo o intervalo entre -3 a 3, como mostrado na Figura 4.22.

45



Figura 4.22 Funes de memberships utilizadas pelo programa.

Para este teste foram utilizadas 14 funes de membership para cada varivel.
Estas funes possuem o formato da funo de Gauss com uma superposio de funes de
aproximadamente 75%.
A Figura 4.23 apresenta a funo gerada.


Figura 4.23 Funo gerada na sada do programa.

46


possvel observar que tendo x
1
e x
2
na entrada do sistema, na sada tem-se
uma funo que se aproxima da funo sen(x
1
.x
2
), que varia entre [-1,1].
Observa-se que comparando as funes geradas e esperada nota-se que as
ondulaes que caracterizam um erro da funo gerada so quase imperceptveis. Este
pequeno erro pode ser observado na Figura 4.24 com o maior pico de aproximadamente
0.005.


Figura 4.24 Grfico do erro gerado pelo programa entre a funo esperada e
a funo gerada.

Nota-se que h erro gerado pelo em toda a faixa de variao dos dados de
entrada. Este grfico foi gerado de tal forma que a variao no eixo vertical indica os valores
da subtrao da funo gerada pelo programa da Figura 4.23 pela funo esperada da Figura
4.21.
De acordo com o processo de Fuzzy Clustering descrito anteriormente, ser
mostrado um grfico com os clusters ou a posio correspondente onde cada regra est
atuando, conforme Figura 4.25.
Na Figura 4.25 observa-se que cada ponto azul do grfico representa a posio
de um cluster. Como neste exemplo foram utilizadas 14 funes de membership para cada
entrada x
1
e x
2
, o programa gerou 196 regras ou clusters que tero um peso maior ou menor,
variando entre -1 a 1, de acordo com a distncia entre o ponto analisado e a posio do
cluster.

47



Figura 4.25 Grfico que mostra a posio de cada cluster criado pelo
programa.

De acordo com os pontos utilizados como teste pelo programa (3721 pontos
entre -3 a 3) e os clusters criados pelo programa (14 x 14 = 196 clusters), a Figura 4.26 mostra
os clusters e os respectivos pontos de sada do programa.


Figura 4.26 Grfico que mostra a posio de cada cluster e a posio de cada
ponto de sada do programa.

48


Nota-se a posio dos clusters criados pelo programa, que esto representados
pelos pontos azuis, e tambm a posio de cada ponto gerado pelo programa de acordo com as
entradas x
1
e x
2
aplicadas, representados pela cor verde. Nota-se que os clusters gerados esto
todos dentro da superfcie da funo esperada da Figura 4.21.


4.5. Aplicaes utilizando o Mtodo Fuzzy Clustering

A proposta deste trabalho utilizar o processo de Fuzzy Clustering para criar
as regras que so os pontos que descrevem as principais caractersticas de variao do sinal de
eletrocardiograma, para que a anlise de diagnstico seja feita apenas nestes pontos
principais. Como exemplo, ser apresentado um sinal de uma derivao de eletrocardiograma
e para este sinal ser aplicado o processo de Fuzzy Clustering.
A Figura 4.27 mostra um exemplo de um sinal de eletrocardiograma com 213
amostras, com tempo de amostragem de 0,003s.



Figura 4.27 Sinal de eletrocardiograma aps pr-processamento.

Para o processo de Fuzzy Clustering do sinal de eletrocardiograma da Figura
4.28, foram criadas 20 regras ou pontos que se localizam nas partes mais importantes que
caracterizam a variao do sinal. Estas 20 regras foram obtidas depois de diversos testes e
49


verificaes em ambiente de simulao, visto que em uma quantidade menor de regras o erro
muito grande e em uma quantidade maior praticamente no h alteraes. Portanto
Verificou-se, pelo MatLab, que com as 20 regras consegue-se obter o sinal com praticamente
a mesma representatividade qualitativa, obtendo um ganho em termos de tempo de
processamento para o hardware, que ser mais detalhado no Captulo 7. A Figura 4.28 mostra
a posio de cada ponto caracterstico do sinal, representados no grfico pelos pontos azuis.


Figura 4.28 Clusters gerados pelo processo de Fuzzy Clustering.

As grandes vantagens do Fuzzy Clustering, para aplicaes embarcadas e
outras possveis ferramentas de uso desta tcnica, so detalhadas no Captulo 7.





Captulo 5

Correlao

5.1. Consideraes iniciais


Quando a variao de um fenmeno interfere na variao de outro fenmeno,
diz-se que existe uma correlao entre eles. Como exemplo, se quando h um aumento em um
fenmeno, ocorrer um acrscimo no outro fenmeno ou quando h uma diminuio em um
fenmeno existir uma diminuio tambm no outro fenmeno diz-se que existe uma
correlao direta entre eles [28].
Quando o aumento em um fenmeno acarreta uma diminuio em outro
fenmeno ou quando a diminuio de um fenmeno acarreta no aumento em outro fenmeno,
diz-se que existe uma correlao inversa entre estes dois fenmenos [28].
Neste trabalho ser utilizada a correlao entre sinais para se comparar os
sinais do eletrocardiograma em anlise com os sinais de um banco de dados conhecido.
Visto que um sinal de eletrocardiograma no possui um equacionamento exato,
so utilizadas amostras do sinal de eletrocardiograma, pois para este tipo de aplicao o
suficiente, para que seja possvel apresentar os possveis diagnsticos.


51



5.2. Resultado das Correlaes


Quando se analisa a correlao entre dois fenmenos tem-se trs possveis
resultados, dependendo do valor do coeficiente de correlao, que nos indica a intensidade da
correlao e o tipo de correlao [28].
Quando o coeficiente de correlao negativo e mais prximo de 1 significa
que existe uma forte correlao inversa entre os dois fenmenos analisados. Quando o
coeficiente de correlao negativo ou positivo, porm mais prximo de zero significa que
no existe correlao entre os fenmenos analisados. Quando o coeficiente de correlao
positivo e prximo de 1 significa que existe uma forte correlao direta entre os fenmenos
em anlise [28].
Uma das principais aplicaes da correlao no processamento de sinais
encontrar a similaridade entre um sinal desconhecido e um conjunto de sinais conhecidos.
Neste trabalho, de posse dos pontos gerados pelo processo de Fuzzy
Clustering, foi feito o clculo da correlao entre estes pontos e os clusters gerados para os
sinais de um banco de dados conhecido. Seja X os clusters gerados do sinal em anlise e Y os
clusters de um sinal do banco de dados de diagnstico conhecido, assim o ndice de
correlao entre estes dois sinais calculado como mostrado na equao [28].


y x n
y x

=


(5.1)

onde,
MX X x =

(5.2)

MY Y y =

(5.3)

MX a mdia dos clusters do sinal em anlise;
MY a mdia dos clusters do sinal do banco de dados;
Assim,

52


n
X
MX

=

(5.4)

n
Y
MY

=

(5.5)

n o nmero de clusters;
x o desvio padro de x;
y o desvio padro de y;

n
x
x

=
2


(5.6)

n
y
y

=
2


(5.7)


Como exemplo, sejam os dois sinais mostrados na Figura 5.1. Ao se observar
suas caractersticas de variao possvel notar que no existe correlao entre eles. Feito o
clculo do ndice de correlao entre eles pelo mtodo descrito anteriormente, foi obtido o
valor do coeficiente de 0,15, bem prximo de 0. Este coeficiente indica uma correlao fraca,
como era de se esperar.


Figura 5.1 Sinais em anlise.

53


Na Figura 5.2 so apresentados dois sinais onde observa-se que estes possuem
uma variao parecida. Foi feito o clculo da correlao entre eles e o valor obtido do
coeficiente foi de 0,89. Este valor indica uma forte correlao direta, como era de se esperar.

Figura 5.2 Sinais com forte correlao direta.

Na Figura 5.3 so apresentados dois sinais onde observa-se que estes possuem
uma variao inversa. Foi feito o clculo da correlao entre eles e o valor obtido do
coeficiente foi de -0,89. Este valor indica uma forte correlao inversa entre estes sinais,
como era de se esperar.


Figura 5.3 Sinais com forte correlao inversa.

No sistema desenvolvido o ndice utilizado para validar as comparaes pelo
mtodo da correlao foi 0,7. Este valor foi obtido atravs de testes prticos que indicaram ser
esta a melhor escolha. Portanto se dois sinais de ECGs, em anlise e em memria, forem
comparados e o valor da correlao for igual ou maior que 0,7 este sinal ter uma correlao
direta, e ser atribuda a cardiopatia do ECG em memria para o ECG em anlise. Por outro
lado se a comparao entre estes sinais for menor que 0,7, no haver correlao e nenhuma
atribuio ser feita para o ECG em anlise.






Captulo 6

Funcionamento do Sistema

6.1. Consideraes iniciais

Conforme apresentado no Captulo 2, o sistema proposto tem duas fases de
implementao a de hardware, atravs do XPS, e a de software, atravs do SDK. A verso da
sute utilizada neste trabalho a XILINX EDK 10.1 com licena de uso para a Universidade
Federal de Itajub. Portanto toda a construo do sistema proposto segue a metodologia de
projeto de sistemas embarcados da XILINX. Neste captulo, ser abordada a parte do SDK, o
software construdo, e em seguida o XPS, o hardware utilizado.

6.2. Desenvolvimento do Software

Todo o sistema foi desenvolvido em linguagem C. O diagrama de blocos, com
todas as principais funcionalidades do programa, detalhado na Figura 6.1.
55



Figura 6.1 Diagrama de blocos do programa.

As principais dificuldades no desenvolvimento de um software para um
sistema embarcado so as limitaes de todo o hardware, incluindo os perifricos, e os
algoritmos que devem apresentar o melhor desempenho possvel.
No foi inserido nenhum sistema operacional e o hardware tambm no possui
nenhum sistema de gerenciamento de memria, portanto este deve ser feito no prprio cdigo.
A alocao, liberao e reuso, principalmente de vetores e matrizes, muito utilizadas nos
algoritmos deste sistema, devem ser eficientes, visto que com a falta de gerencia de memria
estes dados podem ser corrompidos por outras variveis.
O sistema dedicado, ou seja, executa apenas os algoritmos construdos em
linguagem C e carregados na memria do Microblaze. A no existncia de um sistema
operacional, por exemplo, cria dificuldades nas etapas de projeto e implementao, entretanto
favorece o desempenho de um sistema embarcado que visa mxima eficincia.
Ao final da compilao dos arquivos C, o SDK gera um arquivo ELF que
enviado a memria de inicializao do Microblaze, que neste trabalho utilizou-se a memria
DDR2 SDRAM. Este arquivo ELF contm os cdigos de controle do processador baseados no
algoritmo C implementado. Com o envio do ELF, o sistema torna-se operacional.
56


6.3. Desenvolvimento do Hardware

As necessidades de hardware foram projetadas e implantadas baseadas no
software proposto para a soluo do problema de diagnstico de doenas do corao. Todos
os IP cores do XPS, citados neste trabalho, so configurados na FPGA juntamente com o
Microblaze. A Tabela 6.1 exemplifica o hardware utilizado.

Tabela 6.1 Hardware Utilizado no Sistema.

Classificao Nome
Nome na
Arquitetura
Verso
do IP
Funes bsicas no
Sistema
Processador Microblaze Microblaze_0 7.10.d
Rodando no mximo a 50
MHz de frequncia.
Interpreta as instrues do
software e efetua as
operaes lgicas e
aritmticas pertinentes.

Memria
Principal
DDR2
SDRAM
DDR2_SDRAM 4.03.a
Armazena instrues e
dados durante a execuo
do programa.
Dispositivo de
Entrada
Botes BTNs_4Bit 1.00.a
Servem apenas para
reiniciar o sistema.
Dispositivo de
Entrada
Chaves DIPs_4Bit 1.00.a
Representam a derivao
do eletrocardiograma a ser
recebido pelo sistema.
Dispositivo de
Sada
Leds LEDs_8Bit 1.00.a
Indicam no 1 estgio a
derivao escolhida e no 2
estgio o diagnstico.
Dispositivo de
Sada
Contador
de Clock
xps_timer_1 1.00.a
um timer que monitora
os pulsos de clock do
processador.
Dispositivo de
Entrada e
Porta RS-
232
RS232_DCE 1.00.a
Recebe o sinal do
eletrocardiograma e envia
57


Sada (Serial) informaes sobre o
sistema.


Para alguns hardwares uma explicao mais detalhada ser fornecida devido a
suas especificidades e relevncias na funcionalidade do sistema.
6.3.1 Escolhendo as Derivaes a Serem Recebidas

Conforme o item anterior, as chaves so as responsveis pela seleo da
derivao de entrada. H quatro chaves nomeadas na placa, respectivamente, de sw3, sw2,
sw1, sw0. Neste sistema considerou-se o sw3 como o bit menos significativo e o sw0 como o
bit mais significativo, conforme ilustra a Figura 6.2.

Figura 6.2 Configurao da entrada das derivaes.

O sistema trabalha com sete derivaes, que so as disponveis no banco de
dados utilizado. Estas derivaes foram classificadas em nmeros inteiros conforme a Tabela
6.2.
Tabela 6.2 Classificao das Derivaes.

Derivao Classificao
MLI 1
MLIII 3
V1 7
V2 8
V3 9
V4 10
V5 11
58




Para, por exemplo, selecionar a derivao V4, colocam-se as chaves na
respectiva posio de classificao que 10, conforme ilustra a figura 6.3.

Figura 6.3 Exemplo das chaves selecionando a derivao V4.

6.3.2 Recebendo o Sinal Amostrado

Foi criado um sistema de comunicao via Hyper Terminal com a interface
RS-232 da placa. atravs do Hyper Terminal que so enviados os sinais para o sistema. O
sistema foi configurado para receber diretamente os arquivos CSV (cdigos separados por
vrgula) adquiridos automaticamente, em tempo real, do site da PHYSIONET
(http://www.physionet.org).
O eletrocardiograma utilizado neste trabalho o European ST-T Database
(EDB) [18], (http://www.physionet.org/cgi-bin/ATM), conforme indicado na Figura 6.4.
59



Figura 6.4 Parmetros necessrios para a aquisio das amostras.

Os crculos em vermelho na Figura 6.4 indicam os seguintes parmetros:
Database Base de dados utilizada no sistema, no caso a European ST-T Database (edb);
Time Format Indicao da 1 coluna, no sistema marcar a opo samples (amostras);
ToolBox Vrias opes para o sinal, Export signals as CSV;
samples.csv link para o arquivo CSV, amostra pronta para a entrada no sistema.

importante destacar tambm os seguintes parmetros da Figura 6.4
Record Seleo entre todas as amostras disponveis para essa base de dados;
Signals Seleo da Derivao que ser gerada.

Concluda a etapa de aquisio do arquivo CSV necessrio envi-la ao
sistema, onde foi utilizado o Hyper Terminal, exemplificado na Figura 6.5.
60



Figura 6.5 Enviando o sinal para o sistema.

6.3.3 Sadas do Sistema

As sadas do sistema so praticamente baseadas em LEDs. A placa possui oito
LEDs com a seguinte nomenclatura ld7, ld6, ld5, ld4, ld3, ld2, ld1, ld0, conforme a Figura
6.6.

Figura 6.6 Identificao dos LEDs.

61


Os LEDs fornecem dois tipos de informao. A primeira indica a derivao
selecionada e a segunda indica o possvel diagnstico para o sinal inserido no sistema. A
Tabela 6.3 indica os LEDs ativos por derivao e a Tabela 6.4 indica os LEDs ativos pelo
diagnstico.
Tabela 6.3 LEDs Ativos pela derivao escolhida.

Classificao Derivao Leds Ativos
1 MLI Ld7
3 MLIII Ld7, ld6
7 V1 Ld7, Ld6, Ld5
8 V2 Ld4
9 V3 Ld7, Ld4
10 V4 Ld6, Ld4
11 V5 Ld7, Ld6, Ld4

Tabela 6.4 Diagnstico final do sistema.

Diagnstico LEDs Ativos
Infarto Ld0
Angina Ld1
Doena arterial coronariana Ld2
Hipertenso arterial Ld3
Nenhum Ld7

Como o exemplo, a placa da Figura 6.7 indica a derivao V4, e na Figura 6.8
tm-se a indicao de um possvel diagnstico, angina.

62



Figura 6.7 Derivaes exibidas nos LEDs (1 momento).


Figura 6.8 Diagnstico exibido pelos LEDs (2 momento), neste caso angina.

A Figura 6.9 indica as cardiopatias consideradas para diagnstico.
63



Figura 6.9 Indicao das cardiopatias pelos LEDs.

6.3.4 Hardwares para testes e verificaes

Algumas funcionalidades do sistema foram implementadas apenas para
validaes e verificaes como o caso do contador de clock e da interface de sada da porta
RS-232.
A funo do contador de clock medir quantos ciclos de clock de
processador so gastos para executar determinada tarefa. Isso foi muito importante na fase de
implementao do software, pois indicava se o algoritmo estava, ou no, com um desempenho
satisfatrio. Validou tambm o algoritmo de Fuzzy Clustering que ser apresentado no
Captulo 7.
A sada da porta RS-232 contribuiu para uma anlise mais profunda do
sistema, visto que vrios parmetros podem ser examinados, conforme indicado na Figura
6.10.

64



Figura 6.10 Sada da porta RS-232.

importante ressaltar que nenhum destes componentes necessrio para o
funcionamento do sistema. Em uma futura verso estas funcionalidades podem ser mantidas
apenas para modos de checagem, programao e atualizao do sistema, como por exemplo, a
atualizao da base de dados. Para todos os testes realizados e validao do equipamento estes
dispositivos foram muito teis.







Captulo 7

Resultados Obtidos

7.1. Banco de Dados

De acordo com o processamento proposto, fez-se necessria a criao de um
banco de dados de sinais de eletrocardiogramas com diagnstico conhecido. No banco de
dados montado para este trabalho foram armazenados 50 sinais com 213 amostras cada um.
Essas 213 amostras representam 1 ciclo completo para analise do eletrocardiograma.
Cada sinal do banco de dados passou pelo pr-processamento e depois foram
armazenados apenas os clusters ou os pontos caractersticos de cada sinal. Esta armazenagem
feita em memria no momento em que o arquivo ELF carregado no Microblaze.


7.2. Testes Realizados

De acordo com os artigos estudados, todos utilizaram como sinais para validar
o sistema, o banco de dados European ST-T, fornecido pelo PhysioNet. Estes foram recebidos
atravs dos arquivos CSV, conforme demonstrado no Captulo 6.
66


Antes de realizar os testes, foram verificados outros artigos [12], [13] e [16],
que atravs de outras tcnicas e utilizando o mesmo banco de dados, forneceram algumas
figuras de mrito, que so os parmetros Se, sensitivity sensibilidade, e PPV, Positive
Predictive Value - Valor preditivo positivo ou precision rate - taxa de preciso, calculados da
seguinte forma [29] e [30]:
Fn Tp
Tp
+
= Se (7.1)

Onde Tp e Fn so os diagnsticos corretos e os diagnsticos que no foram detectados
respectivamente.
O parmetro Se indica a porcentagem de diagnsticos corretos em relao aos
diagnsticos no detectados.

Fp Tp
Tp
PPV
+
= (7.2)

Onde Fp indica os diagnsticos errados fornecidos pelo mtodo.
O parmetro PPV indica a porcentagem de diagnsticos corretos em relao
aos diagnsticos errados fornecidos pelo sistema em teste.

7.3. Resultados Obtidos

De acordo com a ferramenta matemtica apresentada e os parmetros a serem
comparados, foram feitos testes para verificao da eficcia da ferramenta. Para isto, foi
montado um banco de dados formado por amostras de sinais de eletrocardiogramas com
caractersticas de algumas cardiopatias como angina, infarto e hipertenso arterial.
Foram feitos 37 diagnsticos de pacientes diferentes, e com diagnsticos
tambm diferentes. Como j apresentado cada sinal, antes de ser comparado com o banco de
dados, passou por um processo de filtragem, onde neste sistema foi utilizado um filtro
Butterworth digital de terceira ordem passa baixa, para eliminar rudos de alta frequncia e
nivelamento do sinal, para eliminar rudos de nveis DC que possam estar juntos com o sinal
do eletrocardiograma.
De acordo com os artigos estudados e o resultado dos testes realizados neste
trabalho, elaborou-se a Tabela 7.1 que compara os parmetros Se e PPV.
67





Tabela 7.1 Comparao de resultados



Na Tabela 7.1 observa-se que no sistema proposto o parmetro Se, de 75%,
ficou abaixo, se comparado com os outros sistemas, o que significa que o sistema apresentado
no tem um bom desempenho quando analisada a possibilidade de no detectar uma
determinada cardiopatia. Entretanto o parmetro Se ainda ficou dentro de limites aceitveis.
Em relao ao parmetro PPV, de 92%, o sistema proposto teve um desempenho melhor do
que os outros sistemas, o que confirma a eficcia quando o sistema detecta uma cardiopatia
pois neste caso a chance de indicar uma cardiopatia errada bem menor.
Alm de apresentar um bom resultado se comparado com outros sistemas, esta
tcnica de Fuzzy Clustering permitiu, com apenas 20 pontos de cada sinal, fazer o diagnstico
de cardiopatias. Consequentemente o sistema ocupa um menor espao em memria para
armazenar o banco de dados e tem um processamento menor, gerando o diagnstico de forma
mais rpida. Isto pode ser comprovado com o Contador de clock, que forneceu os dados
exibidos no grfico da Figura 7.1.
68



Figura 7.1 Grfico da quantidade de clocks por amostra.

Foi feita uma normalizao nos ciclos de clock para 20 amostras, sendo
representado por 1 indicado no grfico da Figura 7.1. Neste grfico observa-se que para cada
ciclo de clock gasto na execuo da operao de correlao para o sinal do ECG completo,
213 amostras, so gastos aproximadamente 9 vezes menos ciclos de clock para o sinal do
ECG com a aplicao do Fuzzy Clustering, ou seja, 20 amostras. Este dado interessante
visto que o ganho computacional elevado, isto no caso de um algoritmo de comparao
como a correlao, onde devido a suas caractersticas o clock cresce ou decresce linearmente.
Como a correlao uma tcnica de comparao a quantidade de amostras por ciclo de clock
foi, como esperado, linear. Entretanto em outras tcnicas de deteco de ECG, tais como
redes neurais em [17], a melhora de desempenho tende a ser exponencial, pois a quantidade
relativa de dados de entrada muito menor e pode reduzir o tratamento e melhorar a resposta
do sistema.
Este sistema funciona na frequncia mxima de 50 MHz. Esta frequncia
quando comparada s de outros trabalhos como, por exemplo [31] que trabalha em 200 MHz,
se demonstra eficaz para um sistema de diagnstico de ECG embarcado.







Captulo 8

Concluses e Trabalhos Futuros


Um sistema embarcado com a soluo desenvolvida por este trabalho poder
auxiliar mdicos e profissionais da rea da sade na tomada de decises. Este sistema no tem
pretenses, sob nenhuma hiptese, de substituir estes profissionais, porm para mdicos
recm-formados, ou talvez em situaes de urgncia e emergncia, o mesmo poder ser de
grande valia. Tambm possvel fornecer provveis diagnsticos para, no incio, auxiliar os
cardiologistas, principalmente em regies fora dos grandes centros onde os recursos so
poucos e no possuem, s vezes, especialistas da rea ou em plantes mdicos onde muito
comum o mdico de planto no ser um especialista e, nesse caso, o equipamento poderia
auxili-lo ao fazer um diagnstico de cardiopatias.
Com relao aos mtodos empregados na implementao deste sistema pde-
se verificar uma melhora em relao aos outros sistemas apresentados no que diz respeito a
possibilidade de fornecimento de diagnstico correto, com isso tm-se uma maior confiana
nos resultados apresentados, principalmente quando este resultado acusa uma possvel
cardiopatia. Esta concluso est relacionada com o parmetro PPV. Se for considerado o
parmetro Se, conclui-se que o resultado, apesar de apresentar um baixo desempenho em
relao omisso de um diagnstico, este item no ter tanta influncia para um sistema onde
70


pretende-se ter um resultado com um mnimo de possibilidade de erro de diagnstico, alm
deste ponto de vista, o sistema pode ter o parmetro Se melhorado se o banco de dados
possuir mais sinais, com caractersticas diferentes.
Outro resultado importante a se destacar, em relao s tcnicas empregadas,
que se comparado com os resultados de algoritmos de testes feitos em outras referncias, os
resultados obtidos utilizando a Fuzzy Clustering e a correlao foram to bons ou melhores
que algumas figuras de mrito. Este fato justifica o interesse em aperfeioar e utilizar estes
mtodos.
Para que o sistema tenha aplicaes reais tm-se vrias opes como, por
exemplo, a criao de circuitos analgicos para as etapas de pr-processamento e filtragem.
necessrio tambm um conversor analgico digital para inserir os sinais amostrados e
filtrados no sistema. Desta forma testes em tempo real, com equipamentos e pacientes reais, e
principalmente o acompanhamento de um especialista em cardiologia garantiriam o
aperfeioamento e o futuro deste projeto. A insero de dados sintomticos relatados pelo
paciente, em uma consulta clnica, pode ajudar a distinguir entre uma ou outra cardiopatia,
melhorando ainda mais a eficincia e confiabilidade do sistema desenvolvido.
Com este hardware, e as tcnicas utilizadas, abrem-se vrias linhas de
pesquisa, para a anlise e identificao de outros sinais biolgicos tais como sinais cerebrais e
musculares. A implementao em hardware, e o uso das tcnicas empregadas neste trabalho,
melhoram o desempenho da arquitetura no sentido em que diminuem o tempo de
processamento e os requisitos com relao capacidade de armazenamento.
Outra grande vantagem desta implantao em hardware o custo. A placa
utilizada para o desenvolvimento do sistema uma XILINX SPARTAN 3A Starter Kit. Esta
cotada, no stio da XILINX [32], em 189,00 dlares americanos, o que comprova o baixo
custo do sistema desenvolvido, visto que mesmo esta no tem todos os seus recursos
necessrios e explorados. Este valor serve apenas como referncia visto que na produo em
larga escala, e somente da FPGA, este circuito pode ter valores ainda mais reduzidos.
Tem-se ainda a possibilidade de validar este sistema diretamente na FPGA
usando as linguagens de descrio de hardware, HDLs. Desta forma poderia estar sendo
viabilizado um Hard CPU Core, dispensando o uso do IP, Microblaze, e de todo o software
para este sistema, diminuindo ainda mais os custos, aumentando a eficincia do sistema e
criando-se realmente um processador dedicado de sinais de eletrocardiograma.

71




Referncias Bibliogrficas



[1] National Center for Health Statistics (2009). Health, United States: With Special
Feature on Medical Technology. Hyattsville. Retrieved March 05, 2009, from
http://www.cdc.gov/nchs/data/hus/hus09.pdf

[2] Carter M. (2006). Heart disease still the most likely reason you'll die. CNN, A Time
Warner Company. Retrieved January 05, 2008, from
http://edition.cnn.com/2006/HEALTH/10/30/heart.overview/index.html

[3] Sociedade Brasileira de Cardiologia (2003). Orientaes para a interpretao do
eletrocardiograma de repouso. Arquivos Brasileiros de Cardiologia, Acessado em 07
de janeiro de 2008 em: http://publicacoes.cardiol.br/consenso/2003/8002/repouso.pdf

[4] Negreiros de Andrade, PJ. (3rd Ed.). (2008). Cardiologia para o Generalista: Uma
abordagem fisiopatolgica. Brasil/Fortaleza, Cear: UFC.

[5] Abreu-Lima C, de Sa JP. Automatic classifiers for the interpretation of
electrocardiograms. Rev Port Cardiol 1998; 17(5):415-28.

[6] Willems JL. Quantitative electrocardiography. Standardization and
performance evaluation. Ann N Y Acad Sci 1990; 601(1):329-42.

[7] RuDusky BM. Errors of computer electrocardiography. J Vascular Diseases
1997; 48(12):1045-50.
72



[8] Nianqiang, L., & Yongbing, W., & Guoyi, Z. (2010). A Preferable Method on Digital
Filter in ECG Signals Processing Based on FPGA. Third International Symposium
on Intelligent Information Technology and Security Informatics, 184-187.

[9] Mitsukura, Y., & Miyata, K., & Mitsukura, K., & Fukumi M., & Akamatsu, N.
(2004). Intelligent Medical Diagnosis System Using the Fuzzy and Neural Networks.
IEEE Annual Meeting of the North American Fuzzy Information Processing Society,
Vol 2, 550-554.

[10] Yan, L., & Hang, Y., & Lai, J., & Lixiao, M., & Zhen, J. (2010). Adaptive Lifting
Scheme for ECG QRS Complexes Detection and its FPGA implementation. Third
International Conference on Biomedical Engineering and Informatics, 721-724.

[11] Jewajinda, Y., & Chongstitvatana, P. (2010). FPGA-based online-learning using
parallel genetic algorithm and neural network for ECG signal classification. Seventh
International Conference on Electrical Engineering/Electronics, Computer,
Telecommunications and Information Technology (ECTI-CON), 050-1054.

[12] Andreo, R., V. (2004). T-segment analysis using hidden Markov Model beat
segmentation: application to ischemia detection. Computers in Cardiology, 381-384.

[13] Jager, F., & Moody, G., & Mark, R. (1998). Detection of transient ST segment
episodes during ambulatory ECG monitoring. Computers and biomedical research an
international journal, Vol 31, 305-322.

[14] Maglaveras, N., & Stamkopoulos, T., & Pappas, C., & Gerassimos Strintzis, M.
(1998). An adaptive backpropagation neural network for real-time ischemia episodes
detection: development and performance analysis using the European ST-T database.
IEEE Transactions on Biomedical Engineering, Vol 45, 805-813.
[15] Taddei, A., & Constantino G. (1995). A System for the Detection of Ischemic
Episodes in Ambulatory ECG. Computers in Cardiology, 705708.

[16] Vila, J., & Presedo, J., & Delgado, M., & Barro, S., & Ruiz R., & Palacios, F.
73


(1997). SUTIL: Intelligent ischemia monitoring system. International Journal of
Medical Informatics 47, 193214.

[17] Armato, A., & Nardini, E., & Lanat, A., & Valenza, G., & Mancuso, C., & Scilingo,
E., & Rossi, D. (2009). An FPGA based arrhythmia recognition system for wearable
applications. Ninth International Conference on Intelligent Systems Design and
Applications, 660-664.

[18] Goldberger, AL., & Amaral, L., & Glass, L., & Hausdorff, JM., & Ivanov, PCh., &
Mark, RG., & Mietus, JE., & Moody, GB., & Peng, C-K., & Stanley, HE. (2000).
PhysioBank, PhysioToolkit, and PhysioNet: Components of a New Research
Resource for Complex Physiologic Signals. Retrieved March 10, 2009, from
http://physionet.org/physiobank/database/edb/

[19] Fuganti, Cludio Jos; Oliveira, Divina Seila; Rodrigues, Ricardo Jos; Curso de
Eletrocardiografia Bsica; Ccs Centro de Cincias da Sade; UEL Universidade
Estadual de Londrina.

[20] [20] Stein, E. (1st Ed.) (1987). Clinical Electrocardiography: A Self-Study Course.
USA/Philadelphia, PA: Lea & Febiger.

[21] Oliveira, A., & Andrade, F. (1st Ed.). (2006). Sistemas Embarcados: Hardware E
Firmware Na Prtica. So Paulo, SP: Editora rica.

[22] Zeidman, B. (1st Ed.). (2002). Designing with FPGAs and CPLDs. London: CMP
Publishing.

[23] Xilinx Inc (2009). MicroBlaze Soft Processor Core. Acessado em 10 de maro de
2009, from http://www.xilinx.com/tools/microblaze.htm

[24] Boylestad, R., & Nashelsky, L., & Monssen, F. (9th Ed.). (2005). Electronic Devices
and Circuit Theory. USA/ Upper Saddle River, NJ: Prentice Hall.

[25] Ian, S., & Simes, M. (2nd Ed.). (2007). Controle e Modelagem Fuzzy. Brazil/So
74


Paulo, SP: Editora Edgard Blucher Ltda.

[26] M. Setnes, Supervised Fuzzy for Rule Extraction, IEE TRANSACTIONS ON
FUZZY SYSTEMS, Vol. 8, N 4, August 2000.

[27] Gustafson, D., & Kessel, W. (1979). Fuzzy clustering with a fuzzy covariance matrix.
Hemometrics and Intelligent Laboratory Systems - IEEE, 761-766.

[28] Bendat, J., & Piersol, A. (2nd Ed.). (1993). Engineering Applications of Correlation
and Spectral Analysis. NY, NY: John Wiley & Sons.

[29] Altman, D., & Bland, M. (1st Ed.). (1994). Statistics Notes: Diagnostic tests 1:
sensitivity and specificity. London: BMJ 308, P 1552.

[30] Altman, D., & Bland, M. (1st Ed.). (1994). Statistics Notes: Diagnostic Tests 2:
Predictive Values. London: BMJ 309, P 102.

[31] Yan, L., & Hang, Y., & Lai, J., & Lixiao, M., & Zhen, J. (2010). Adaptive Lifting
Scheme for ECG QRS Complexes Detection and its FPGA implementation. Third
International Conference on Biomedical Engineering and Informatics, 721-724.

[32] Xilinx Inc (2010). Spartan-3A Starter Kit. Acessado em 30 de setembro de 2010, de
http://www.xilinx.com/tools/microblaze.htm

Você também pode gostar