Escolar Documentos
Profissional Documentos
Cultura Documentos
\
|
+
=
(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