UNIVERSIDADE PRESBITERIANA MACKENZIE ESCOLA DE ENGENHARIA ENGENHARIA ELÉTRICA HENRIQUE MOREIRA DE OLIVEIRA DESCONTAMINAÇÃO DE SINAIS DE ELETROCARDIOGRAMA UTILIZANDO WAVELETS São Paulo 2008 2 HENRIQUE MOREIRA DE OLIVEIRA DESCONTAMINAÇÃO DE SINAIS DE ELETROCARDIOGRAMA UTILIZANDO WAVELETS Trabalho de Graduação Interdisciplinar apresentado ao Curso de Engenharia Elétrica da Escola de Engenharia da Universidade Presbiteriana Mackenzie, como requisito parcial à obtenção do grau de Bacharel em Engenharia. ORIENTADOR: PROFESSOR DOUTOR MARCIO EISENCRAFT São Paulo 2008 3 AGRADECIMENTOS Ao meu orientador, Professor Marcio Eisencraft, os conselhos, sugestões e idéias que foram de grande valia e muito acrescentou ao meu conhecimento. Aos meus pais todo apoio, dedicação, comprometimento e motivação que sempre me inspiraram durante todos esses anos. A todos os amigos, em especial à Milena Cicco de Godau, pela diária convivência e os momentos passados juntos que marcaram esse período de vida. À Escola de Engenharia Mackenzie e à FAPESP pelo apoio parcial na participação no XXVI Simpósio Brasileiro de Telecomunicações. 4 RESUMO O objetivo deste trabalho é analisar o uso das transformadas wavelets para eliminar interferências e ruídos em sinais de eletrocardiograma (ECG). Esta técnica é conhecida como descontaminação. É feita uma revisão sobre o assunto, descrevendo-se suas bases matemáticas, aplicações e as wavelets utilizadas. Uma revisão da literatura sobre ECG também é feita tendo seu enfoque nas características desse sinal. Para testar as técnicas de descontaminação é inserido ruído branco gaussiano em sinais de ECG sintéticos que são tratados por meio de algoritmos utilizando o programa de simulação numérica Matlab®. A verificação do resultado é feita por meio de comparações entre sinais originais, sinais contaminados e sinais recuperados por diferentes transformadas wavelets. Os resultados destas análises buscam mostrar a importância da descontaminação dos sinais para os diagnósticos médicos que dependem de um sinal de qualidade para resultados precisos. Palavras-chave: Descontaminação, Wavelets, Eletrocardiograma. 5 ABSTRACT The objective of this work is to analyze the use of wavelet transforms to remove interference and noise in electrocardiogram signals (ECG). This technique is called denoising. We review this subject, describing their mathematical bases, applications and some of the wavelets used. A summary description of ECG signals is presented, focusing on their characteristics. To test the denoising techniques, white gaussian noise is added to synthetic ECG signals, that are processed later by algorithms using the numeric simulation software Matlab®. To check the results the original signal, the contaminated signal and the recovered signal by different wavelet transforms are compared. The analysis results show the denoising relevance for medical diagnostics that need a quality signal to be precise. Keywords: Denoising, Wavelets, Electrocardiogram. 6 LISTA DE ILUSTRAÇÕES Desenho 1 - Componentes do coração .....................................................................................11 Diagrama 1 - Derivações bipolares .........................................................................................13 Diagrama 2 - WCT..................................................................................................................14 Diagrama 3 - Derivações aumentadas.....................................................................................14 Esquema 1 - Triângulo de Einthoven...................................................................................... 15 Diagrama 4 - Derivações precordiais ......................................................................................16 Gráfico 1 - Elementos do sinal de eletrocardiograma .............................................................17 Gráfico 2 - Batimento cardíaco sintético................................................................................,.19 Gráfico 3 - Sinal de ECG sintético contaminado com ruído branco gaussiano.......................19 Gráfico 4 - Wavelet de Daubechies..........................................................................................25 Gráfico 5 - Wavelet de Haar.....................................................................................................26 Gráfico 6 - Wavelet Symlets....................................................................................................27 Gráfico 7 - Wavelet Coiflets....................................................................................................27 Gráfico 8 –Trecho de ECG sintético usado nas simulações ....................................................32 Gráfico 9 - Variação do ganho de cada wavelet variando-se o número de níveis de decomposição ...........................................................................................................................34 Gráfico 10 - Variação do ganho de cada wavelet com a relação sinal ruído de entrada..........355 Gráfico 11 - a) sinal original, b) sinal contaminado, c) sinal recuperado com db9, d) sinal recuperado com haar, e) sinal recuperado com sym2 e f) sinal recuperado com coif 2...........36 Gráfico 12 - Variação do ganho de cada wavelet com o número de níveis de decomposição 37 Gráfico 13 -Variação do ganho de cada wavelet com a relação sinal ruído de entrada ..........37 Gráfico 14 - a) sinal original, b) sinal contaminado, c) sinal recuperado com db9, d) sinal recuperado com haar, e) sinal recuperado com sym2 e f) sinal recuperado com coif2............38 Gráfico 15 - Sinais de eletrocardiograma: a) sinal original; b) Sinal contaminado; c) sinal recuperado; d) erro entre o sinal original e o contaminado; e) erro entre o sinal original e o recuperado.................................................................................................................................39 7 SUMÁRIO 1 1.1 2 2.1 2.2 2.2.1 2.2.2 2.3 3 3.1 3.2 3.2.1 3.2.2 3.2.3 3.3 4 4.1 4.2 4.3 5 INTRODUÇÃO ............................................................................................................. 8 ESTRUTURA DO TRABALHO ....................................................................................9 SISTEMA CARDIOVASCULAR E ELETROCARDIOGRAMA......................... 10 FISIOLOGIA DO CORAÇÃO E DISTÚRBIOS CARDÍACOS .................................10 ELETROCARDIOGRAMA..........................................................................................12 Aquisição do sinal de eletrocardiograma ..................................................................13 Morfologia do sinal de ECG .......................................................................................16 SINAL DE ELETROCARDIOGRAMA SINTÉTICO.................................................18 WAVELETS.................................................................................................................. 20 TRANSFORMADA WAVELET ..................................................................................20 TIPOS DE WAVELETS ................................................................................................24 Wavelets de Daubechies ..............................................................................................25 Wavelets de Haar.........................................................................................................25 Wavelets Symlets e Coiflets ........................................................................................26 DESCONTAMINAÇÃO DE SINAIS VIA WAVELET SHRINKAGE ........................28 SIMULAÇÕES ............................................................................................................ 31 SINAL DE ENTRADA ................................................................................................31 SINAL CONTAMINADO COM RUÍDO BRANCO GAUSSIANO..........................31 SINAL CONTAMINADO COM SENOIDE ...............................................................35 CONCLUSÕES............................................................................................................ 41 REFERÊNCIAS.......................................................................................................... 42 APÊNDICE A............................................................................................................... 44 APÊNDICE B – ARTIGO PUBLICADO NOS ANAIS DO XXVI SIMPÓSIO BRASILEIRO DE TELECOMUNICAÇÕES (SBrT 2008) .....................................47 8 1 INTRODUÇÃO Um sinal é a representação de uma informação em função de uma determinada variável, geralmente o tempo (BRUCE, 2001). A variação da temperatura num ambiente, a corrente elétrica num circuito e o som de um instrumento podem ser representados por meio de sinais. Os impulsos elétricos do corpo humano também podem ser representados dessa forma. Dentre os diversos sinais contidos nessa área, destaca-se o de eletrocardiograma (ECG), que consiste no registro da variação dos potenciais elétricos gerados pela atividade elétrica do coração (NORTHROP, 2003). Todos os sinais estão sujeitos a ruídos introduzidos em sua captação que prejudicam seu processamento. Os sinais biológicos, em especial o sinal de ECG, por terem pequenas amplitudes, devem ser tratados para que tenha-se a maior redução do nível de ruído no sinal. Esse processo é denominado descontaminação (RAO, 1998; NORTHROP, 2003). Para sinais de ECG a descontaminação se faz necessária pela nitidez e clareza que os diagnósticos exigem já que distúrbios cardíacos podem ser determinados em pequenas variações de sua forma de onda (BRUCE, 2001). Com o intuito de suprimir ruídos dos sinais, a aplicação de transformadas wavelets vem se mostrando uma importante alternativa (RAO, 1998; OLIVEIRA, 2007; BRUCE, 2001; ERÇELEBI, 2003; KAISER, 2001). As wavelets tiveram sua primeira menção na tese de Alfred Haar em 1909 e tiveram sua introdução no meio acadêmico e científico no inicio da década de 80 por Alex Grossman e Jean Morlet (OLIVEIRA, 2007). Essa técnica consiste em dividir os sinais, a partir de um padrão inicial chamado wavelet mãe, em diferentes sinais que quando somados fornecem o original (BURRUS; GOPINATH, 1998). Nessa decomposição pode-se detectar, para cada diferente nível, se o ruído esta prevalecendo ou não em relação ao sinal original, podendo-se descartar os níveis com maiores quantidades de ruído (STRANG; NGUYEN, 1996). O objetivo deste trabalho é analisar a descontaminação de sinais de ECG por meio de transformadas wavelets, visando-se obter uma melhor relação sinal-ruído de saída em comparação com a de entrada. Os resultados deste trabalho foram publicados nos anais do XXVI Simpósio Brasileiro de Telecomunicações (SBrT’08) realizado de 02 a 05 de Setembro no Rio de Janeiro também na forma de pôster. Para a realização deste estudo utilizam-se sinais de eletrocardiograma sintéticos, contaminados com ruído branco gaussiano ou com senóide. Esses sinais são descontami- 9 nados e a eficiência do método é medida por meio de comparações entre a entrada e saída do sistema sendo essa representada pelo ganho do processo. 1.1 ESTRUTURA DO TRABALHO O trabalho está estruturado em cinco capítulos e dois apêndices. No Capítulo 2 são abordados o sistema cardiovascular e o ECG, descrevendose a fisiologia do coração, algumas de suas possíveis patologias, a aquisição do ECG e suas características. O Capítulo 3 contém a definição da transformada wavelet e suas características, em especial as das famílias que fazem parte das simulações deste trabalho. Mostra-se ainda o processo de wavelet shrinkage, que é o método utilizado para a descontaminação dos sinais de ECG nas simulações. O Capítulo 4 apresenta as simulações de descontaminação dos sinais de eletrocardiograma. O processo é realizado com o auxilio do programa de simulações numéricas Matlab®, utilizando sua toolbox wavelets e por meio de algoritmos desenvolvidos. Os resultados são mostrados em gráficos em que sua eficiência é medida por meio do ganho do sistema. O Capítulo 5 trata das conclusões do trabalho, mostrando os resultados comparativos entre as wavelets utilizadas bem como entre os níveis de decomposição e a relação sinal-ruído de entrada. O Apêndice A traz os programas desenvolvidos para geração do sinal de Eletrocardiograma, sua contaminação e descontaminação utilizados nas simulações do trabalho. O Apêndice B contém o artigo apresentado no XXVI Simpósio Brasileiro de Telecomunicações bem como seu pôster. 10 2 SISTEMA CARDIOVASCULAR E ELETROCARDIOGRAMA As pesquisas realizadas ao longo dos séculos sobre o coração são muitas. Assunto de grande interesse foi alvo de importantes pesquisadores como Leonardo da Vinci, que afirmou que este era um corpo muscular oco e Willian Harvey, médico inglês, que em 1628 concluiu que o coração é o centro de um circuito sanguíneo fechado (SILIPO; MARCHESI, 1998). Basicamente o coração é uma bomba distribuidora de nutrientes para o corpo humano. Dado sua importância e a de seu estado, vários exames são realizados para se obter diagnósticos referentes ao coração, dentre eles o eletrocardiograma (ECG) que é considerado de grande importância para sua análise (GESELOWITZ, 1989). Na seção 2.1 são discutidos os estudos dos principais aspectos fisiológicos do coração, os distúrbios e possíveis problemas patológicos que podem ocorrer com este órgão. Na seção 2.2 são estudadas as características do sinal de ECG e sua aquisição, e na seção 2.3 a obtenção de um sinal de eletrocardiograma sintético. 2.1 FISIOLOGIA DO CORAÇÃO E DISTÚRBIOS CARDÍACOS O coração é o órgão responsável pelo bombeamento do sangue para o corpo todo. Sua estrutura externa é constituída pelo músculo atrial, o músculo ventricular e as fibras excitatórias e condutoras. Seu interior é dividido em 4 cavidades: átrios esquerdo e direito e ventrículos esquerdo e direito. Os átrios recebem o sangue e o distribui pelas veias e os ventrículos são responsáveis por bombear o sangue pelas artérias. Para controlar o sangue que circula pelo órgão existem 4 válvulas: tricúspide, mitral, pulmonar e a aórtica (RANGAYYAN, 2002). No Desenho 1 são mostrados os componentes do coração por meio de uma representação esquemática. Durante o intervalo de um batimento cardíaco são identificadas duas fases distintas de atuação cardíaca: sístole e diástole (RANGAYYAN, 2002). A sístole é a fase de contração em que o sangue é bombeado da seguinte forma: o sangue venoso, com baixa concentração de oxigênio, do ventrículo direito passa pela válvula pulmonar para que seja oxigenado nos pulmões e o sangue arterial do ventrículo esquerdo 11 vai para a artéria através da válvula aórtica, para ser distribuída para todo o corpo (RANGAYYAN, 2002). Desenho 1 - Componentes do coração Fonte: Rangayyan (2002, p.18) A diástole é a fase de relaxamento do coração, o sangue preenche as cavidades de entrada. No processo o átrio direito coleta o sangue venoso das veias cavas superiores e inferiores e passa para o ventrículo direito através da válvula tricúspide durante a contração atrial. Simultaneamente o átrio esquerdo recebe o sangue arterial vindo dos pulmões e o passa para o ventrículo esquerdo através da válvula mitral (RANGAYYAN, 2002; GESELOWITZ, 1989). Os músculos cardíacos contraem-se de modo diferente dos músculos comuns. Enquanto os músculos comuns são comandados por neurônios motores, os músculos do coração são controlados por células marca-passo que se despolarizam e repolarizam espontaneamente gerando aos músculos do coração um movimento rítmico (RANGAYYAN, 2002). O principal marca-passo se encontra no nó sinoatrial que se localiza na junção do átrio direito com a veia cava superior. O controle da taxa de batimentos é determinada pela presença de adrenalina ou aceticolina, sendo a primeira responsável pelo aumento da taxa de batimentos e a segunda responsável pela sua diminuição (RANGAYYAN, 2002).. Existe uma variedade de problemas cardíacos, que pode-se detectar, observando distúrbios nos sistemas de condução elétrico e em regiões do coração, como músculos e 12 tecidos. As alterações patológicas podem ser divididas em 3 tipos principais: i) arritmias, ii) isquemias e iii) alterações crônicas nas estruturas mecânicas do coração. A arritmia é um problema na velocidade e no ritmo dos batimentos cardíacos. Dois dos eventos indesejados são a geração ou extinção dos batimentos quando encontram um tecido alterado, ou alteração na velocidade de condução desses batimentos pelos tecidos do coração. Dependendo do caso, pode-se não ter um batimento homogêneo, em que o batimento se direciona apenas para um lado do coração, comportando-se assim como um bloco unidirecional. Os batimentos também podem ficar circulando, formando circuitos fechados fazendo com que o coração se comporte de modo anormal. Alguns dos problemas relacionados a arritmia que podem ser ocasionados por essas alterações são a taquicardia , que é o batimento acelerado do coração, a braquicardia, batimento lento do coração, e a fibrilação que é o batimento não rítmico do coração (KILPATRICK, JOHNSTON, 1994). A isquemia se caracteriza pela obstrução do sistema circulatório devido a presença de substâncias nos canais do sistema circulatório. Neste caso a entrega de nutrientes às células e tecidos corpóreos sofre diminuição devido ao fluxo insuficiente de sangue. Pode-se ter uma isquemia total, quando o fluxo arterial não é suficiente para manter a vida celular, e parcial quando se mantém a vida celular, porém com enfraquecimento do tecido (KILPATRICK, JOHNSTON, 1994). As alterações das estruturas mecânicas são caracterizadas por problemas nos músculos e cavidades do coração. Seus tamanhos e capacidades podem ser alterados gerando, por exemplo, um aumento atrial e a hipertrofia do ventrículo esquerdo (KILPATRICK, JOHNSTON, 1994). 2.2 ELETROCARDIOGRAMA Geralmente as células são eletricamente polarizadas devido a seu interior apresentar potencial elétrico negativo em relação ao meio exterior. As células de músculos e nervos são capazes, em um curto espaço de tempo de se despolarizarem e voltar a seu estado normal de polarização. Devido a este fenômeno surgem diferenças de potências por causa dos movimentos dos íons pela membrana celular gerando correntes e campos elétricos pelo corpo (GESELOWITZ, 1989). Para medir esses potenciais, eletrodos são colocados em pontos sobre o coração e membros do corpo. Enquanto algumas células contribuem com sua fase de despolarização, 13 outras estão em repouso e outras ainda em fase de repolarização. O sinal de ECG é representado pela somatória de todas essas manifestações geradas pela atividade do coração (GONÇALVES FILHO, 1999). 2.2.1 AQUISIÇÃO DO SINAL DE ELETROCARDIOGRAMA Para realizar a aquisição dos sinais de ECG são colocados eletrodos no braço esquerdo, direito, perna esquerda e no tórax. Um eletrodo também é colocado na perna direita para servir de referência e retirar a interferência externa. Na prática os exames de ECG são realizados com o paciente em atividades físicas, por esse motivo os eletrodos dos braços são colocados próximos ao tórax e os das pernas próximos ao abdômen para facilitar a movimentação do paciente. Esses pontos de colocação dos eletrodos não alteram a qualidade do sinal obtido pois os potências nas extremidades dos membros, tórax e abdômen são praticamente os mesmos dos pulsos e tornozelos (GOLÇALVES FILHO, 1999). Os sinais de ECG são obtidos por meio de derivações. Cada uma das derivações é um arranjo de eletrodos ponderados algumas vezes com resistores. O sistema padrão é composto por 12 derivações divididas em 3 grupos: as derivações bipolares, aumentadas e precordiais (GESELOWITZ, 1989). As derivações bipolares são compostas por sinais de diferença de potencial entre os membros do corpo, menos o do sinal de referência da perna direita. A diferença de potencial entre os braços é denominada como derivação I, a diferença entre a perna esquerda e o braço direito é chamado de derivação II e a diferença entre a perna esquerda e o braço esquerdo é a derivação III. Essas derivações são mostradas no Diagrama 1. Diagrama 1 - Derivações bipolares 14 As derivações aumentadas e precordiais são obtidas em relação a uma referência chamada de terminal central de Wilson (WCT – Wilson’s Central Terminal). Ela é obtida por meio da junção das potências dos membros por meio de resistores ligados a todos os eletrodos, menos o de referência da perna direita como mostrado no Diagrama 2. Esse potencial é a média da distribuição de potencial na superfície do tronco (GESELOWITZ, 1989). Diagrama 2 – WCT As derivações aumentadas são obtidas entre a perna esquerda, braço direito, braço esquerdo e o WCT. O resistor ligado ao WCT referente ao membro a ser medido é aberto e ligado diretamente ao amplificador operacional, o que causará um aumento de 50% na amplitude do sinal. As derivações aumentadas são conhecidas como VR, que é a diferença entre o braço direito e o WCT, VL, diferença entre o braço esquerdo e o WCT e VF que representa a diferença entre a perna esquerda e o WCT. Essas derivações são mostradas no Diagrama 3. Diagrama 3 - Derivações aumentadas As derivações bipolares e aumentadas podem ser representadas conforme o esquema determinado como triângulo de Einthoven. Esse se trata de um triângulo eqüilátero 15 formado pelas derivações I, II, e III. O baricentro do triângulo representa o WCT. O coração está localizado no centro do triângulo e cada uma das derivações mede uma projeção do vetor elétrico cardíaco. Sua amplitude é medida pela quantidade de massa muscular contraída e seu sentido é dado pelo espalhamento do impulso de despolarização. Essas projeções permitem que as atividades elétricas do coração sejam analisadas a partir de diferentes perspectivas do plano frontal (RANGAYYAN, 2002). Esquema 1 - Triângulo de Einthoven As seis derivações precordiais são obtidas das diferenças de potencial entre as seis posições padronizadas do peito, representadas pelo diagrama 4, e do WCT. As derivações V1 e V2 são obtidas por meio da colocação do eletrodo no quarto espaço entre as costelas, à direita e à esquerda do esterno respectivamente. V4 é obtido a partir do quinto espaço entre as costelas do lado esquerdo, na linha média da clavícula. V3 é obtida na posição média entre V2 e V4. V5 e V6 são colocadas na mesma altura que V4, mas nas linhas anterior e do meio da axila respectivamente. Estas seis derivações permitem a análise do vetor elétrico do coração a partir de diferentes orientações de um plano de secção cruzada. V5 e V6 são mais sensíveis à atividade do ventrículo esquerdo. V3 e V4 mostram a atividade do septo cardíaco (região entre cavidades) e V1 e V2 representam a atividade do lado direito do coração (RANGAYYAN, 2002). Portanto o sinal de ECG é obtido na saída do amplificador operacional mostrado no Diagrama 4, sendo a soma de todas as derivações já citadas. Uma vez tendo este sinal, pode-se determinar, por meio de suas características, patologias que podem ocorrer no coração (RANGAYYAN, 2002). Deste modo se torna importante o conhecimento de sua morfologia para um correto diagnóstico. 16 Diagrama 4 - Derivações precordiais 2.2.2 MORFOLOGIA DO SINAL DE ECG Um sinal de ECG pode ser dividido em ondas segmentos e intervalos. Cada um desses representa a evolução da atividade elétrica do coração que inicia uma contração muscular. No gráfico 1 são mostrados os principais pontos do sinal de eletrocardiograma (MCSHARRY, 2003). Os elementos que compõem o sinal de eletrocardiograma podem ser descritos da seguinte maneira (MCSHARRY, 2003; KILPATRICK, 1994; GONÇALVES FILHO, 1999): • Onda P: O ciclo cardíaco inicia-se com a onde P, reflexo da ativação da musculatura atrial derivada de sua despolarização. Seu aspecto é arredondado, possui pequena amplitude e é simétrico. Sua duração normal é de aproximadamente 100 ms e tem amplitude máxima de 0,25 mV. Um aumento da voltagem ou tempo de duração desta onda indica uma anomalia atrial. • Segmento PR: Trecho da linha isoelétrica, conhecida também como linha de base, que se inicia no final da onda P e acaba no início da deflexão do complexo QRS. Ocorre devido ao tempo que o estímulo elétrico leva para atingir os ventrículos. Dependendo da freqüência cardíaca leva em torno de 120 a 210 ms. 17 • Complexo QRS: está relacionado a despolarização ventricular. Sua forma de onda é variável com maior amplitude nas derivações precordiais. Em pacientes adultos, sua duração varia entre 60 e 100 ms. • Segmento ST: é o trecho entre o final do complexo QRS e o início da onda T. Representa o tempo em que os ventrículos estão em estado ativo e a repolarização ventricular pode ser iniciada. Pode possuir aspecto ligeiramente curvo voltado para cima, sem que isto signifique uma anomalia. • Onda T: representa a repolarização ventricular. Seu aspecto é arredondado e pode ser ligeiramente assimétrica com a borda de subida mais suave em relação à borda de descida. Como segmento ST tem solução de continuidade com a onda T, é difícil distinguir com precisão o final do segmento ST e o início da onda T. Assim como o intervalo PR, o intervalo QT varia com a freqüência cardíaca. • Intervalo QT: é o intervalo que corresponde ao início do complexo QRS e ao final da onda T. Sua duração total é equivalente à duração total da sístole ventricular. Gráfico 1 - Elementos do sinal de eletrocardiograma 18 2.3 SINAL DE ELETROCARDIOGRAMA SINTÉTICO Pode-se extrair importantes informações clínicas analisando as componentes do sinal de eletrocardiograma por meio da utilização de técnicas de processamento digital de sinais. Variações dessas componentes revelam importantes características fisiológicas do paciente que está sendo submetido a esse exame (MCSHARRY, 2003). Atualmente novos algoritmos de processamento de sinais biomédicos são desenvolvidos para serem aplicados em sinais de ECG de banco de dados eletrônicos que são obtidos por meio de amostras reais de pacientes, estando sujeito a variações e ruídos (MCSHARRY, 2003). É possível determinar a eficiência de um certo método para um determinado sinal, porém não se pode garantir seu funcionamento com diferentes níveis de ruído e freqüência de amostragem. Portanto tendo acesso a um sinal de ECG artificial realístico o desenvolvimento desses algoritmos pode ser facilitado (MCSHARRY, 2003). Neste trabalho são utilizados sinais de ECG artificiais obtidos por meio de técnicas utilizadas por McSharry e Clifford com uma morfologia PQRST, ou seja, das componentes do ECG, realista e já conhecidas dinâmicas na taxa de batimentos cardíacos (MCSHARRY, 2003). Para a obtenção do sinal ECG sintético é utilizado o algoritmo ecgsyn.m desenvolvido para o programa de simulações numéricas Matlab®. Esse algoritmo possui como parâmetros de saída o sinal de ECG e as posições dos elementos do sinal definidos pela variável “ipeaks” (MCSHARRY, 2003). Para se obter o sinal de ECG deve-se fornecer como parâmetros de entrada a freqüência de amostragem, o número de batimentos cardíacos, a quantidade de ruído aditivo, a taxa de batimentos por minuto e o desvio padrão da taxa de batimentos (MCSHARRY, 2003). Para a aquisição do sinal de ECG neste trabalho, utilizando o algoritmo ecgsyn.m, foram usados os seguintes parâmetros de entrada: i) freqüência de amostragem de 256 Hz, ii) 256 batimentos cardíacos, iii) 60 batimentos por minuto, iv) desvio padrão da taxa de batimentos e ruído aditivos nulos. O propósito deste modelo é fornecer sinais de ECG padronizados que podem se gerados com estatísticas especificas como as variações nos batimentos cardíacos (MCSHARRY, 2003). 19 Os gráficos 2 e 3 apresentam exemplos de um batimento cardíaco e um sinal de ECG contaminado com ruído branco gaussiano respectivamente, obtidos por meio do algoritmo citado. Sinal ECG 1.2 1 Amplitude (mV) 0.8 0.6 0.4 0.2 0 -0.2 -0.4 0 0.2 0.4 0.6 0.8 1 1.2 Tempo (s) 1.4 1.6 1.8 2 Gráfico 2 – Batimento cardíaco sintético Sinal de ECG com ruído 1.4 1.2 1 Amplitude (mV) 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 0 0.5 1 1.5 2 Tempo (s) 2.5 3 3.5 4 Gráfico 3 – Sinal de ECG sintético contaminado com ruído branco gaussiano 20 3 WAVELETS A análise de sinais constitui uma das mais importantes ferramentas no processamento digital de sinais (OLIVEIRA, 2007). Essa análise pode ser feita por meio das transformadas de Fourier, porém ela se torna ineficaz para determinadas situações em que o sinal não é estacionário tendo variação de suas características estatísticas com o tempo, como foi percebido por Alex Grossmann e Jean Morlet enquanto analisavam sinais geofísicos destinados a exploração do petróleo (OLIVEIRA, 2007). Após essa constatação o conceito de wavelets foi introduzido no meio científico pela escola francesa tendo como suas bases os pesquisadores Morlet, Grossmann, Mallat, Meyer entre outros (OLIVEIRA, 2007). Neste capítulo são apresentados as definições das transformadas wavelets, os tipos de wavelets utilizadas no trabalho por meio de gráficos e expressões e a descrição do processo de descontaminação conhecido como wavelet shrinkage. 3.1 TRANSFORMADA WAVELET Para introduzir a definição de transformada wavelet, é necessário relembrar algumas noções sobre decomposição de funções em séries. Considere inicialmente uma função f contida no espaço L2 (ℝ) . Portanto, a energia da função f é limitada ao longo de todo o eixo dos reais, isto é (OLIVEIRA, 2007): ∞ ∫ f (t ) dt < ∞ . 2 (1) −∞ Para o espaço L2 (ℝ) a norma e o produto escalar são definidos como a seguir: f ,g = ∞ ∫ f (t ) g (t )dt (2) −∞ f = f, f . (3) Se a função g possuir norma unitária, então o resultado do produto escalar entre f e g corresponderá à operação de projeção de f sobre g . 21 Considere, agora, um conjunto de funções ortonormais, ou seja, todos os vetores do conjunto possuem norma igual a 1 e ortogonais entre si, ψ k (t ) , k ∈ ℕ , formando um conjunto de vetores linearmente independentes, também conhecido como base, para o espaço L2 (ℝ) . Pela condição de ortogonalidade ψ m ,ψ n = 0 , para todo m ≠ n . (4) Define-se então a expansão da função f em uma série ortonormal como sendo a combinação linear das funções de base ψ k (t ) ponderadas pelas projeções de f sobre cada uma delas, isto é, (MALLAT, 1999) f (t ) = ∞ ∑ k =−∞ f ,ψ k .ψ k (t ) = ∞ ∑ Fψ k =−∞ k k , (5) em que Fk = f ,ψ k , k ∈ N , define a transformada da função f . Dentro desta abordagem, está o fato da base ψ k (t ) possuir suporte, que é o menor subconjunto fechado do domínio onde a função não é nula, igual a toda extensão do eixo real, isto é, cada função de base ψ k (t ) decai a zero somente nos limites ±∞ . No entanto, se a base possuir suporte limitado, decaindo para zero muito rapidamente, então uma eficiente maneira desta base cobrir o eixo dos reais é através de translações do tipo ψ k ,l (t ) = ψ k (t − l ) , l ∈ ℕ (MALLAT, 1999). Por fim, observando a base da transformada de Fourier, pode-se constatar que cada função de base – as exponenciais complexas – é obtida a partir de simples dilatações na freqüência (OLIVEIRA, 2007) ∞ F (ω ) = ∫ f (t )e− jωt dt . (6) −∞ Reunindo estas duas propriedades – dilatação e translação – em um único protótipo de função de base, obtem-se as funções wavelet contínuas ortonormais, em que as dilatações e as translações são dadas por duas variáveis nomeadas a ∈ ℕ e b ∈ ℝ respectivamente, (KAISER, 1994) ψ a ,b (t ) = 1 t −b ψ a a (7) 22 de forma que a transformada wavelet é definida como (OLIVEIRA, 2007) ∞ f ,ψ a ,b = ∫ −∞ t −b f (t ).ψ dt . a (8) As versões discretas da transformada podem ser obtidas discretizando-se as dilatações e as translações. Assumindo dilatações binárias e translações unitárias, as funções de base wavelet tornam-se (KAISER, 1994) ψ m ,n (t ) = 2− m /2ψ (2m t − n) (9) sendo que a = 2 − m e b = n 2− m . A transformada wavelet discreta será então definida como f (t ) = ∞ ∞ ∑∑ m =−∞ n =−∞ f ,ψ m ,n .ψ m ,n (t ) . (10) Através do conceito de análise em multiresolução, pode-se construir famílias de wavelets discretas e desenvolver algoritmos rápidos para o cálculo da transformada. A análise em multiresolução parte da existência de duas funções básicas, uma função wavelet mãe ψ (t ) e uma função de escala mãe ϕ (t ) , ortogonais entre si e tais que, ao longo dos diversos níveis de resolução, as diversas funções de escala ϕ m ,n (t ) e wavelet ψ m, n (t ) estão relacionadas às respectivas funções mãe por meio da seguintes equações (MALLAT, 1999): ϕ m, n (t ) = 2− m / 2 ϕ (2m t − n) , (11) ψ m ,n (t ) = 2− m /2ψ (2m t − n) . (12) A relação entre os níveis de resolução pode ser descrita sob a forma de um aninhamento dos espaços de função, em que cada espaço de maior resolução contém os espaços de menor resolução, ou seja, (MALLAT, 1999) ... ⊂ V−2 ⊂ V−1 ⊂ V0 ⊂ V1 ⊂ V2 ... (13) Cada espaço Vm é coberto pela família de funções de base ϕ m ,n (t ) correspondente. As funções wavelet ψ m, n (t ) estão contidas nos espaços Wm , sendo cada espaço Wm o 23 complemento ortogonal de Vm em relação ao espaço Vm +1 . Desta forma, escreve-se a relação entre dois níveis adjacentes de resolução como (STRANG, 1996) Vm +1 = Vm ⊕ Wm . (14) em que o símbolo ⊕ representa a operação de soma direta, que é a soma de dois subespaços vetoriais quando sua interjeição é nula. Uma vez que Vm e Wm estão contidos em Vm +1 , então ambos os conjuntos de funções de base podem ser expressos como combinação linear das funções de base de Vm +1 , sendo cada uma delas ponderada pelos coeficientes h0 [n] e h1[n] , responsáveis pela relação de ortogonalidade entre as funções e definido como:aa h[n] = ϕ0,0 , ϕ1,n (15) Portanto (MALLAT, 1999) ϕ m, n (t ) = ∑ h0 [k − 2n].ϕm +1,k (t ) (16) k ψ m, n (t ) = ∑ h1[k − 2n].ϕm +1,k (t ) (17) k Estando a função f contida no espaço Vm +1 , então f pode ser expressa como combinação linear das funções de base ϕ m +1,n (t ) . De forma similar, projetando f em Vm e Wm e escrevendo estas projeções em função das bases de Vm e Wm , é possível relacionar as projeções de f e os diversos níveis de refinamento da seguinte forma: (DAUBECHIES, 1990) am +1, k = f , ϕm +1,k amn = f ,ψ m ,n . (18) Aplicando (16) e (17) na equação (18), obtém-se: am ,n = f , ϕm ,n = ∑ h0 [k − 2n]. f , ϕm +1,k = ∑ h0 [k − 2n].am +1, k k k (19) 24 e dado que Vm +1 é a soma direta dos espaços Vm e Wm . Pode-se expressar a base de Vm +1 como combinação linear das bases de Vm e Wm em que cada uma delas está ponderada pelos coeficientes g0[n] e g1[n], responsáveis pela relação de ortogonalidade entre as funções e definido como: g n = ψ 0,0 , ϕ1,n (20) Então (MALLAT, 1989) ϕ m +1,k (t ) = ∑ g 0 [k − 2n].ϕm ,n (t ) + ∑ g1[k − 2n].ψ m ,n (t ) n (21) n Os processos de síntese ou composição e análise ou decomposição descritos anteriormente podem ser entendidos como a aplicação de filtros passa-baixas e passa-altas seguidos de uma subamostragem na análise ou precedidos por uma superamostragem na síntese – como nos métodos de codificação de bandas (Subband Coding), em que os coeficientes {h [n], h [n] } e { g [n], g [n] } formam os bancos de filtros utilizados por estes métodos. Eles 0 1 0 1 correspondem aos bancos de filtros de análise e de síntese respectivamente. Todas as expressões apresentadas até aqui sugerem uma recursão, em que a projeção de f sobre Vm é decomposta em Vm −1 e Wm −1 , a projeção em Vm −1 é decomposta sobre Vm − 2 e Wm − 2 , e assim por diante. Cada projeção equivale a uma versão menos refinada da projeção anterior (STRANG, 1996). Uma vez que as projeções nos espaços Vm e Wm são ortogonais entre si e complementares em relação ao espaço Vm +1 , a reconstrução da função original através do processo de síntese é perfeita – isto se não houver perdas entre a decomposição e a reconstrução (POORNACHANDRA, 2007). 3.2 FAMÍLIAS DE WAVELET Baseado na análise de multiresolução que estabelece os princípios básicos para a determinação de uma wavelet, diversos pesquisadores desenvolveram estudos e criaram sua própria família de wavelets para resolução dos mais variados problemas (OLIVEIRA, 2007). Neste trabalho são apresentadas 4 diferentes famílias de wavelets que serão utilizadas para as simulações sendo elas i) Daubechies, ii) Haar, iii) Coiflets e iv) Symlets (OLIVEIRA, 2007). 25 3.2.1 WAVELETS DE DAUBECHIES As wavelets de Daubechies são uma família de wavelets ortogonais definindo uma transformada discreta wavelet e caracterizada pelo máximo número de momentos nulos para um dado suporte, ou seja, momentos em que a função é nula. Com cada tipo de wavelet dessa classe há uma função base, chamada wavelet-mãe, que gera uma análise de multiresolução ortogonal (OLIVEIRA, 2007). Estas wavelets não possuem uma expressão explícita para sua determinação exceto para a wavelet Daubechies de nível 1, que também é conhecida como wavelet de Haar. O Gráfico 4 mostra a forma da wavelet-mãe da família de Daubechies de ordem 9, que são as utilizadas neste trabalho, obtida por meio do comando wavefun.m. Wavelet Daubechies de ordem 9 1.5 1 0.5 0 -0.5 -1 -1.5 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 k Gráfico 4 - Wavelet de Daubechies 3.2.2 WAVELET DE HAAR A wavelet de haar é a primeira e mais simples das wavelets, se trata de uma wavelet descontinua lembra um degrau, e representa o mesmo que a de Daubechies nível 1. Ela pode ser considerada como uma “wavelet digital” devido sua forma de onda parecer um pulso digital (OLIVEIRA, 2007). Sua utilização é adequada para sinais que possuem mudanças abruptas de valores no decorrer do tempo e sua representação matemática é dada como segue 26 se x ∈ [0, 0.5[ 1, ψ ( x) = −1, 0, se x ∈ [0.5,1[ se x ∉ [0,1[ (22) O Gráfico 5 apresenta a wavelet de haar obtida por meio do comando wavefun.m Wavelet de Haar 1.5 1 0.5 0 -0.5 -1 -1.5 0 200 400 600 800 1000 1200 k Gráfico 5 - Wavelet de Haar 3.2.3 WAVELETS SYMLETS E COIFLETS Essas duas famílias de wavelets são provenientes das wavelets de Daubechies, e foram solicitadas por Ronald Coifmam para a própria Ingrid Daubechies. Ela propôs modificações em suas wavelets que aumentavam a simetria sem comprometer sua simplicidade. O conceito se resume basicamente em manter momentos nulos que é definido como, ∞ m0 = ∫ ψ ( x)dx = 1 (23) −∞ Em que ψ ( x) é a função wavelet, tanto para a função base, quanto para a wavelet-mãe (OLIVEIRA, 2007). 27 O Gráfico 6 apresenta a wavelet symlets de ordem 2 e o Gráfico 7 apresenta a wavelet coiflets de ordem 2. Ambas as wavelets foram obtidas utilizando o comando wavefun.m Wavelet Symlets 1.5 1 0.5 0 -0.5 -1 -1.5 -2 0 500 1000 1500 2000 2500 3000 3500 k Gráfico 6 - Wavelet Symlets Wavelet Coiflets 2 1.5 1 0.5 0 -0.5 -1 0 2000 4000 6000 8000 k Gráfico 7 - Wavelet Coiflets 10000 12000 28 3.3 DESCONTAMINAÇÃO DE SINAIS VIA WAVELET SHRINKAGE É conhecido que no mundo real não existe sinal sem ruído. Esse ruído para propósitos práticos faz com que a interpretação dos sinais se torne mais difícil sendo necessário então a retirada do ruído. O sinal em que o ruído está contido é conhecido como sinal contaminado e o processo para retirá-lo é chamado de descontaminação (TASWELL, 2000). Existem diferentes métodos para descontaminação de sinais. Um que vem causando grande impacto na área de processamento de imagem e sinais e a descontaminação por meio de transformadas wavelets conhecido como wavelet shrinkage (OLIVEIRA, 2007). Não se deve confundir esse processo com uma suavização do sinal. Enquanto a suavização remove altas freqüências e mantêm as baixas, a descontaminação visa remover qualquer ruído presente e manter o sinal sem alteração, não retirando informações por eliminação de uma determinada faixa de freqüência (TASWELL, 2000). A descontaminação por wavelet shrinkage envolve a compressão do sinal no domínio das transformadas wavelets e é composto por 3 etapas: i) decompor o sinal por meio de transformadas wavelets, ii) descontaminar o sinal e iii) reconstruir o sinal por meio da transformada inversa wavelet (TASWELL, 2000). Esse procedimento distingue-se dos demais métodos de decontaminação lineares por se tratar de um método não paramétrico, ou seja, não depende de parâmetros estimados anteriormente para sua realização (TASWELL, 2000). Assumindo um sinal qualquer s (t ) adicionado a um ruído n(t ) tem-se o sinal contaminado x(t ) representado como x(t ) = s (t ) + n(t ) (24) Uma vez tendo este sinal deve-se decompor o mesmo por meio de transformadas wavelets representada por W (.) . O sinal decomposto em seus diversos níveis é submetido a aplicação de um limiar de corte, abrupto ou suave, λ (descrito posteriormente) que vai eliminar os coeficientes que estejam abaixo do mesmo, no caso de uso de um limiar abrupto, essa etapa é representada como D (., λ ) . Com os coeficientes indesejados retirados por meio da aplicação do limiar a transformada wavelet W −1 (.) deve ser aplicada aos dados restantes para reconstrução do sinal sem o ruído. Desta forma tem-se os 3 passos descritos (TASWELL, 2000): Y = W ( x) Z = D (Y , λ ) 29 S = W −1 ( Z ) Dado um limiar λ para um dado Y o limiar suave não linear é definido como D(Y , λ ) ≡ sgn(Y ) max(0, U − λ ) (25) Onde, sgn representa a função que retorna o sinal do número real, ou seja, −1, se x < 0 sgn = 0, se x = 0 1, se x > 0 (26) O operador D anula todos os valores nos quais Y = λ e comprime para a origem do sinal por uma quantidade λ todos os valores de U para que U > λ . Por este último aspecto é que o operador D passou a ser chamado não só de operador de limiar suave, mas também de operador de compressão (TASWELL, 2000). Para a determinação do limiar de corte, supõe-se um sinal X que apresente tamanho n e amostras em n pontos t tal que X i ≡ X ( ti ) . Para uma transformada wavelet ortogonal W em que haverá n coeficientes de transformada Y j , pode se usar um limiar que dependa apenas do tamanho da amostra, como um limiar universal ou minimax e pode-se usar os três passos para descontaminação do sinal (DONOHO, 1994). Entretanto se pretende usar um limiar adaptativo que dependa não apenas do comprimento do sinal mas também das características do sinal, deve-se incluir um novo passo no procedimento, resultando assim em um processo de 4 passos como segue (TASWELL, 2000): Y = W (X ) λ = d (Y ) Z = D (Y , λ ) S = W −1 ( Z ) A partir deste momento a etapa d (.) seleciona o limiar dependendo das características do nível da transformada que irá variar de nível para nível. Pode-se definir muitos diferentes tipos de procedimentos de descontaminação variando os tipos de transformadas wavelets e escolhas dos limiares de corte, e ainda definin- 30 do Ds como o limiar suave e Dh como limiar abrupto combinado-os com os tipos adaptativo ou fixo obtem-se ainda mais possibilidades de procedimentos (TASWELL, 2000). Esse processo de descontaminação foi desenvolvido por Donoho e Johnstone e eles introduziram pesquisas para determinação do limiar como o riskshrink, com o limiar minimax, e o visushrink com o limiar universal e discutiram seu uso em formas fixas e adaptativas (DONOHO, 1994).. Para se verificar qual a melhor escolha de limiar para o sinal que se está estudando deve conhecer a priori as características do sinal que se está trabalhando, que teoricamente pode ser determinado para comparações e simulações. Deve-se analisar também qual procedimento deseja-se usar, um limiar fixo para cada nível de decomposição ou um limiar variável (TASWELL, 2000). Uma escolha possível de limiar fixo é o limiar universal representado pela equação 26 definido para níveis de l = 1 a l = L (DONOHO, 1994). λ = 2 log n (27) Um exemplo de limiar adaptativo é o limiar minimax, que busca a maximização do ganho mínimo, e que tem seu valor variado com o nível de decomposição (OLIVEIRA, 2007). Tm = 2 log( K )σ (28) K Tm é o limiar de corte, K é o comprimento do sinal no nível de decomposição que se está analisando, σ é o desvio padrão do ruído. Utilizando as informações obtidas os sinais de eletrocardiograma artificiais são descontaminados com o uso das técnicas de wavelet shrinkage utilizando limiares adaptativos para cada diferente nível de decomposição das transformadas wavelets. Essas simulações foram desenvolvidas com diferentes níveis de relação sinal-ruído de entrada. 31 4 SIMULAÇÕES Para avaliar o desempenho da descontaminação de sinais de eletrocardiograma via wavelets foram realizadas simulações variando-se as famílias de wavelets utilizadas, as relações sinal-ruído de entrada e os níveis de decomposição. Para a análise de todos os fatores foram utilizados sinais de ECG sintéticos (MCSHARRY, 2003), discutidos na seção 2.3, gerados no Matlab®. São considerados dois casos:(i) interferência por uma senóide com freqüência de 60Hz simulando interferência da rede elétrica e (ii) ruído branco gaussiano simulando ruído experimental na aquisição do sinal 4.1 SINAL DE ENTRADA O sinal de entrada estudado é um sinal de ECG gerado artificialmente pelo programa ecgsyn.m desenvolvido por Patrick McSharry e Gari Clifford (MCSHARRY, 2003). O sinal de ECG obtido possui uma amplitude da ordem de milivolts e algumas características padrões, quando não alteradas pelo usuário são de uma freqüência de amostragem de 256 Hz, 256 batimentos cardíacos, 60 batimentos por minuto e sem ruído aditivo . O Gráfico 8 apresenta o sinal de ECG utilizado para todas as simulações feitas. Esse sinal apresenta uma freqüência de amostragem de 256 Hz e 60 batimentos cardíacos, porém serão mostrados apenas 4 para melhor visualização, os outros valores foram mantidos os quais são discutidos na seção 2.3. A potência desse sinal é determinada por Ps = 1 N N ∑ s [k ] 2 (29) k =1 em que N é o número de amostras do sinal e s[k ] é o valor do sinal em cada amostra k . 4.2 SINAL CONTAMINADO COM RUÍDO BRANCO GAUSSIANO Para se realizar as simulações de descontaminação de sinais, um ruído deve ser adicionado ao sinal de ECG. Primeiramente utiliza-se um ruído branco gaussiano de média nula. 32 Sinal ECG 1.2 1 Amplitude (mV) 0.8 0.6 0.4 0.2 0 -0.2 -0.4 0 0.5 1 1.5 2 2.5 tempo (s) 3 3.5 4 Gráfico 8 – Trecho de ECG sintético usado nas simulações Esse ruído é somado ao sinal de ECG gerado fazendo com que esse se torne um sinal contaminado. A potência do ruído é obtida por Pr = Ps , SNRin (30) em que Pr representa a potência do ruído, Ps é a potência do sinal e SNRin é a relação sinal ruído de entrada desejada. Com as potências dos sinais conhecidas deve-se realizar a normalização do sinal contaminado, como descrito na seção 3.3 por meio de (OLIVEIRA, 2007) sn [ k ] = s[k ] N 2m (31) em que sn [k ] é o sinal normalizado, s[k ] é o sinal original, N é o comprimento do sinal original e m é o número de níveis de decomposição escolhido. Tendo o sinal normalizado deve-se aplicar o conceito de transformadas wavelets para a decomposição do sinal, conforme seção 3.3. Essa decomposição é feita por meio de algoritmos desenvolvidos para o programa de simulação numérica Matlab. Para efeito de simulações nesse trabalho, diversas variáveis são alteradas, como por exemplo, o nível de decomposição, a relação sinal ruído de entrada e o tipo de wavelet utilizada, para que se tenha o maior número de informações possíveis para a verificação de qual a melhor alternativa para o método utilizado. 33 Uma vez o sinal decomposto, deve-se aplicar, para os coeficientes de detalhe de cada nível de decomposição, o limiar definido como Tm = 2 log( K )σ K (32) em que Tm é o limiar de corte, K é o comprimento do sinal no nível de decomposição que se está analisando, σ é a potência média do ruído, expressão essa que visa maximizar o ganho mínimo. Os valores que estão abaixo do limiar são cortados e descartados da recomposição do sinal, restando apenas os coeficientes que encontrem acima desse valor para se recuperar o sinal original. O uso desse limiar nessa aplicação é conhecido como limiar abrupto (hard threshold) (TASWELL, 2000). Após a aplicação do limiar os coeficientes de detalhe restantes de todos os níveis devem ser somados aos coeficientes de aproximação do maior nível de decomposição. Isso proporciona a recuperação do sinal previamente contaminado, porém ainda normalizado. Deve-se ainda multiplicar o sinal recuperado pelo mesmo fator de normalização utilizado anteriormente o que encerra o processo. Após o processo finalizado deve-se definir o parâmetro para que se verifique a eficiência do método. O parâmetro analisado nesse trabalho, o ganho G do sistema, é definido por G = SNRin (dB ) − SNRout (dB ) . (33) O valor de entrada é conhecido, pois é fornecido como dado de entrada, enquanto a relação sinal ruído de saída é calcula a partir da relação da potência do sinal de saída calculada conforme expressão (32) e a potência de ruído do sinal recuperado que é a diferença do sinal original e do sinal recuperado desnormalizado como mostrado em (35). Psrec = 1 N N ∑s k =1 srec [k ]2 (34) Em que, Psrec é a potência do sinal recuperado após a desnormalização, N é o comprimento do sinal recuperado e ssrec [k ] é o valor do sinal no ponto k . Pr' = S − S rec (35) Primeiramente o valor da relação sinal ruído de entrada é fixado em 0 dB, variando-se o número de níveis de decomposição. Verifica-se que todas as famílias wave- 34 lets utilizadas apresentam um melhor rendimento com 3 níveis de decomposição sendo que wavelet de Daubechies de ordem 9 se destaca em relação as demais independente do nível analisado. Verifica-se essa situação no Gráfico 9. Gráfico 9 - Variação do ganho de cada wavelet variando-se o número de níveis de decomposição Utilizando as informações obtidas no Gráfico 9, é fixado o nível que obteve melhores resultados, ou seja, 3 níveis de decomposição.Os valores da relação sinal ruído de entrada irão variar de -10dB a 10dB. Verifica-se novamente que a família de wavelets Daubechies de ordem 9 apresenta resultados superiores as demais para qualquer relação sinal ruído de entrada. Um fato interessante de se observar é o rápido decaimento da wavelet de haar a partir da relação sinalruído de entrada de -6dB já que tinha valores similares a wavelet db9 e com maiores valores de SNRin foi a única a ter valores negativos. Esse fato se deve ao processo eliminar informações do sinal, e quando a SNRin é maior, o sinal se sobrepõe ao ruído resultando na perca de informações do sinal e não do ruído. Essas informações são mostradas no Gráfico 10. Para visualização dos resultados do sistema é representado no gráfico 11 uma comparação entre o sinal original de ECG, o sinal contaminado e o sinal recuperado com o uso dos tipos de wavelets estudados, nas condições onde se tem uma melhor visualização do sinal de ECG contaminado e recuperado. Os valores são fixados numa relação sinal ruído de entrada de 10dB e serão utilizados 3 níveis de decomposição. 35 10 8 Ganho 6 4 2 coif2 db9 haar sym2 0 -2 -10 -8 -6 -4 -2 0 2 SNR in dB 4 6 8 10 Gráfico 10 - Variação do ganho de cada wavelet variando-se a relação sinal ruído de entrada 4.3 SINAL CONTAMINADO COM SENÓIDE Nesta seção do trabalho os sinais de eletrocardiograma são contaminados com uma senóide de 60 Hz simulando uma possível interferência da rede elétrica em que o aparelho de aquisição do ECG possa estar ligado. As etapas do processo de descontaminação permanecerão as mesmas que foram utilizadas para o sinal com ruído branco aditivo, ou seja, poderá utilizar-se todos os parâmetros e o programa já citados alterando apenas a forma de ruído. A senóide que contamina o sinal terá uma freqüência de 60 Hz e é definido conforme expressão: Rsen [n] = σ 2 cos(2π ( 60 256 ) n) (36) Em que Rsen é a senóide que contamina o sinal, σ é o desvio padrão do ruído e n é o ponto de amostra do sinal original de ECG. O primeiro teste será feito fixando a relação sinal-ruído de entrada em 0dB e variando o nível de decomposição de 1 até 5. As famílias wavelets utilizadas permanecem as mesmas. O gráfico 12 mostra que se obtém ganhos de até 40 dB utilizando a wavelet db9 o que é um valor considerável quando se compara com a wavelet de haar em que seu ganho não ultrapassa 15dB. Pode-se perceber também que todas as wavelets apresentam os seus maiores 36 ganhos utilizando 2 níveis de decomposição e que a wavelet db9 é superior as demais para qualquer quantidade de níveis utilizados. b) 1.4 1.2 1.2 1 1 0.8 0.8 Amplitude (mV) Amplitude (mV) a) 1.4 0.6 0.4 0.2 0.6 0.4 0.2 0 0 -0.2 -0.2 -0.4 -0.4 0 0.5 1 1.5 2 2.5 tempo (s) 3 3.5 4 0 0.5 1 1.5 1.4 1.2 1.2 1 1 0.8 0.8 0.6 0.4 0.2 0 -0.4 -0.4 1.5 2 2.5 tempo (s) 3 3.5 0 4 0.5 1 1.5 1.2 1.2 1 1 0.8 0.8 0.6 0.4 0.2 0 -0.4 -0.4 2 2.5 tempo (s) 3 3.5 4 0.2 -0.2 1.5 4 0.4 -0.2 1 3.5 0.6 0 0.5 2 2.5 tempo (s) f) 1.4 Amplitude (mV) Amplitude (mV) e) 1.4 0 3 0.2 -0.2 1 4 0.4 -0.2 0.5 3.5 0.6 0 0 3 d) 1.4 Amplitude (mV) Amplitude (mV) c) 2 2.5 tempo (s) 3 3.5 4 0 0.5 1 1.5 2 2.5 tempo (s) Gráfico 11 - a) sinal original, b) sinal contaminado com SNRin = 10dB , c) sinal recuperado com db9, d) Gráfico 5 – Comparação entre o sinal original a), sinal contaminado b) e sinal recuperado c). sinal recuperado com haar, e) sinal recuperado com sym2 e f) sinal recuperado com coif2 37 Gráfico 12 - Variação do ganho de cada wavelet variando-se o número de níveis de decomposição Seguindo o mesmo raciocínio da seção 4.2, o número de níveis de decomposição será fixado no que apresentou os melhores resultados e a relação sinal ruído de entrada irá variar de -10dB a 10dB. Pode-se perceber que novamente a wavelet db9 apresenta os melhores resultados para qualquer situação e que a wavelet haar apresenta resultado inferior para todas as aplicações aqui mostradas. É interessante perceber que todas as wavelets decaem de forma similar com o aumento da relação sinal ruído de entrada. Essas informações são mostradas no Gráfico 13. 45 40 35 Ganho 30 25 20 15 haar db9 coif2 sym2 10 5 0 -10 -8 -6 -4 -2 0 2 SNR in dB 4 6 8 10 Gráfico 13 - Variação do ganho de cada wavelet variando-se a relação sinal ruído de entrada 38 Para a visualização dos resultados apresentados, o gráfico 14 apresenta uma comparação entre o sinal original, o sinal contaminado e o sinal recuperado. Para a obtenção desses gráficos, fixa-se a relação sinal ruído em 0dB, o número de níveis de decomposição em 2 e utiliza-se todas as famílias de wavelets estudadas. b) 1.5 1 1 Amplitude (mV) Amplitude (mV) a) 1.5 0.5 0 -0.5 -1 0 0.5 0 -0.5 0.5 1 1.5 2 2.5 tempo (s) 3 3.5 -1 0 4 0.5 1 1.5 1 1 Amplitude (mV) Amplitude (mV) 1.5 0.5 0 -0.5 4 0 -0.5 0.5 1 1.5 2 2.5 tempo (s) 3 3.5 -1 0 4 0.5 1 1.5 2 2.5 tempo (s) 3 3.5 4 3 3.5 4 f) e) 1.5 1 1 Amplitude (mV) Amplitude (mV) 3.5 0.5 1.5 0.5 0 -0.5 -1 0 3 d) c) 1.5 -1 0 2 2.5 tempo (s) 0.5 0 -0.5 0.5 1 1.5 2 2.5 tempo (s) 3 3.5 4 Gráfico 14 - a) sinal original, b) sinal contaminado -1 0 0.5 1 1.5 2 2.5 tempo (s) SNRin = 0dB , c) sinal recuperado com db9, d) sinal recuperado com haar, e) sinal recuperado com sym2 e f) sinal recuperado com coif2 O gráfico 15 apresenta uma comparação entre o erro do sinal contaminado com ruído branco gaussiano e do sinal recuperado em relação ao original, fixando a decomposição em 2 níveis, utilizando a wavelet db9 e uma SNRin de 10dB. 39 a) 1.5 s(t) 1 0.5 0 -0.5 0 0.5 1 1.5 2 tempo (s) 2.5 3 3.5 4 0.5 1 1.5 2 tempo (s) 2.5 3 3.5 4 0.5 1 1.5 2 tempo (s) 2.5 3 3.5 4 0.5 1 1.5 2 tempo (s) 2.5 3 3.5 4 0.5 1 1.5 2 tempo (s) 2.5 3 3.5 4 b) 1.5 s'(t) 1 0.5 0 -0.5 0 c) 1.5 s r(t) 1 0.5 0 -0.5 0 d) 1.5 s'(t)-s(t) 1 0.5 0 -0.5 0 e) 1.5 s r(t)-s(t) 1 0.5 0 -0.5 0 Gráfico 15 - Sinais de eletrocardiograma: a) sinal original; b) Sinal contaminado; c) sinal recuperado; d) erro entre o sinal original e o contaminado; e) erro entre o sinal original e o recuperado. Com os dados obtidos em todas as simulações, pode-se verificar que a descontaminação por meio de transformadas wavelets é eficiente em boa parte dos casos, ou seja, sempre parte do ruído que contaminava o sinal é retirado melhorando na qualidade do sinal recuperado. Essa característica não é verificada apenas para sinais contaminados com ruído branco gaussiano e descontaminado com wavelet da família haar para relações sinal ruído de entrada maiores que 8 dB. 40 Dentre as famílias de wavelets utilizadas verifica-se que tanto no ganho como visualmente a wavelet db9 apresenta os melhores resultados nas condições apresentadas. 41 5 CONCLUSÕES Neste trabalho é utilizado o método de descontaminação via wavelet shrinkage para retirada de ruído de sinais de eletrocardiograma. Obteve-se resultados satisfatórios tanto para sinais contaminados com ruído branco gaussiano quanto para os contaminados com senoide de 60 Hz. Para os sinais com ruído branco gaussiano as wavelets que obtiveram melhores resultados foram as da família de Daubechies de ordem 9 que apresentaram para 3 níveis de decomposição ganhos de até 8dB. Observou-se que para apenas um nível de decomposição todos os tipos de wavelets apresentam praticamente o mesmo ganho e que conforme o número de níveis de decomposição vai aumentando a partir de 3 níveis, o ganho do sistema vai diminuindo para qualquer wavelet analisada. Com relação ao ganho em função da SNRin os maiores ganhos são obtidos para valores entre -4 dB e 0dB para todas as wavelets. Os sinais contaminados com senóide apresentam resultados ainda mais interessantes do que os que foram contaminados com ruído branco gaussiano. Ganhos de até 40 dB foram obtidos para a wavelet db9 com uma SNRin de -2 dB. Neste caso os melhores resultados foram obtidos para 2 níveis de decomposição para todas as wavelest utilizadas. O comportamento do ganho em relação a SNR de entrada do sistema, possui a mesma forma dos sinais contaminados com ruído branco gaussiano, ou seja, decaem com a SNRin . Esta técnica é uma alternativa aos filtros utilizados para retirar a senóide de 60 Hz. Estudos complementares devem ser realizados com o objetivo de comparar estes 2 métodos em relação em alguns fatores, como por exemplo,o ganho obtido por cada e processamento. Apesar dos bons resultados obtidos nestes testes, mais simulações devem ser feitas utilizando diferentes tipos de wavelets, outros tipos de limiares suaves e abruptos, principalmente para sinais contaminados com ruído branco gaussiano. Além da descontaminação pode-se também estudar a compressão dos sinais de ECG por meio de wavelets visando a redução de seu tamanho para transmissão e armazenamento. O desenvolvimento deste trabalho propiciou a participação no XXVI Simpósio Brasileiro de Telecomunicações onde o autor o apresentou em forma de pôster, recebendo sugestões de pessoas ligadas à área para novos estudos e de novas técnicas desenvolvidas para o objetivo deste trabalho. 42 REFERÊNCIAS BRUCE, E. N. Biomedical signal processing and signal modeling. New York: John Wiley, 2001. DAUBECHIES, I. Ten Lectures on Wavelet,s Mass: SIAM, 1992 DONOHO, D. L.; JOHNSTONE, I.M. Threshold Selection for Wavelet Shrinkage of Noisy Data, Engineering in Medicine and Biology Society, IEEE, vol. 1, p. A24-A25, Nov 1994 ERÇELEBI, E. Electrocardiogram signals de-noising using lifting-based discrete wavelet transform, Computers in Biology and Medicine, n. 6 Vol. 34, p. 479 - 493 GESELOWITZ, D. B. On the Theory of the Electrocardiogram. Proceedings of the IEEE. IEEE, n. 6 vol. 77, p. 857-876, Jun 1989 GONÇALVES FILHO, J. G. Simulador de Sinais Cardíacos. 1999. 226 f. Dissertação (Mestrado em Engenharia Elétrica)-Universidade de São Paulo, São Paulo, 1999 GOPINATH, R.A.; BURRUS, C.S. A Tutorial Overview Of Filter Banks, Wavelets And Interrelations.Circuits and Systems, 1993., ISCAS '93, 1993 IEEE International Symposium, p. 104 – 107 Mai. 1993 GOSWAMI, J. C.; CHAN, A. K. Fundamentals of wavelets: theory, algorithms, and applications. New York: John Wiley, c1999. HERNÁNDEZ, E.; WEISS, G.. A first course on wavelets. New york: CRC Press, 1996. KAISER, G.. A friendly guide to wavelets. Woodbine: Birkhauser. 2004 KILPATRICK, D.; JOHNSTON, P. Origin of the Electrocardiogram. IEEE Engeineering in Medicine and Biology. Piscataway: IEEE, vol 1, p. 479-486, Aug. 1994 MALLAT, S. A Wavelet Tour of Signal Processing, San Diego:Academic Press, 1999 MCSAHRRY, P.E.; CLIFFORD, G. D.; TERASSENKO, L.; SMITH, L. A. A Dynamical Model For Generating Synthetic Electrocardiogram Signals, IEEE Transactions on Biomedical Engineering, IEEE n.3 vol.50 p.289-294, Mar 2003 NORTHROP, R. B. Signals and systems analysis in biomedical engineering. Boca Raton: CRC Press, 2003. OLIVEIRA, H. M.. Análise de Sinais para Engenheiros: Uma Abordagem via Wavelets. Recife: Brasport. 2007. OPPENHEIM, A. V.; WILLSKY, A. S.; NAWAB, S. H.. Signals & systems. 9 ed. Upper Saddle River: Prentice-Hall, 1997. 43 POORNACHANDRA S. Wavelet Based Denoising Using Subband Dependent Threshold for ECG Signals, Digital Signal Processing, Elsevier n. 18, 2008 RANGAYYAN,R. M. Biomedical signal analysis: A case-study approach. Piscataway: IEEE Press / John Wiley & Sons, 2002 RAO, R. M.; BOPARDIKAR, A. S. Wavelet transforms: introduction to theory and applications. São Paulo: Addison-Wesley, 1998. RIOUL, O.; VETTERLI, M.; Wavelets and signal processing Signal Processing Magazine, IEEE v. 8, n. 4, p.14 - 38 Out. 1991 SILIPO, R.; MARCHESI,C. Artificial Neural Networks for automatic ECG analysis. IEEE Transactions on Signal Processing. Piscataway: IEEE, n. 5, vol. 46 p. 1417-1425 May 1998 STRANG, G.; NGUYEN T.. Wavelets and filter banks. Wellesley : Wellesley Cambridge Press. 1996. TASWELL, C. The What, How and Why of the Wavelet Shrinkage Denoising, Computing in Science & Engineering. IEEE, n.3, vol. 2, p. 12 – 19 May 2000 44 APÊNDICE A – LISTAGEM DOS PROGRAMAS IMPLEMENTADOS Os programas desenvolvidos para Matlab utilizados neste trabalho são descritos nessa seção. O programa recuperasinalseno.m tem como objetivo descontaminar os sinais de eletrocardiograma contaminados com senóide e o programa recuperasinalruido.m que retira ruído branco gaussiano do sinal. A descrição do programa bem como suas entrada e comentários de operação são precedidas pelo símbolo %. • Descontaminação de sinais Nome: recuperasinalseno.m % Esta função foi desenvolvida com o objetivo de descontaminar sinais de eletrocardiograma % contaminados com ruído branco gaussiano ou senóides. % Suas variáveis de entrada são as seguintes: % - pontos: determina o comprimento do sinal a ser analisado. % - SNRindB: é a relação sinal ruído de entrada dada em dB % - m: é o número de decomposições wavelets utilizadas % - wavelet: é o tipo de wavelet utilizada e seu nome deve ser dado entre aspas (‘__’) % O programa retorna as seguintes variáveis de saída: % - SNRoutdB: representa a relação sinal ruído do sinal recuperado % - srecdesn: é o sinal de ECG recuperado e desnormalizado clear all % limpa todas as variáveis close all % fecha todas os gráficos SNRin = 10.^(SNRindB/10);% transforma a SNR em um número adimensional [sinalecg, ipeaks] = ecgsyn(256,pontos/256);% sinal de ECG com 65536 pontos sinal=sinalecg(1:pontos);%limita o número de pontos do sinal escolhido for m=1:5 % variação do número de níveis de decomposição for j=1:length(SNRin),%varia a relação sinal ruído N= length(sinal); % calcula o comprimento do sinal potsinal=(1/N)*sum(sinal.^2); % calcula a potencia do sinal original potruido=potsinal/SNRin(j); % potencia do %ruido sigma = sqrt(potruido);%calcula a potencia rms do ruido n=(0:N-1)';% vetor de pontos para a senóide interf = sigma*sqrt(2)*cos(2*pi*(60/256)*n);%senoide de contaminação sinalcontaminado=sinal+interf; % sinal contaminado com senóide 45 km=N/(2^m); % fator de normalização no número de níveis escolhidos sinalnormalizado=sinalcontaminado/sqrt(km);% sinal contaminado normalizado [C,L]=wavedec(sinalnormalizado,m,wavelet); % decomposição wavelet for p=1:m % varre todos os niveis escolhidos pelo usuário d(:,p)= wrcoef('d',C,L,wavelet,p); % coeficientes de detalhe k=length(sinalnormalizado)/(2^p); % comprimento do nivel m T=sqrt(2*log10(k)*sigma)/sqrt(k); % Calcula o limiar de corte indice=find(abs(d(:,p))<T); % índices abaixo do limiar d(indice,p)=0; % zera todos valores abaixo do limiar end % fim do comando for dos níveis de decomposição sinalrecuperado=wrcoef('a',C,L,wavelet,m); % retorna a aproximação for p=1:m % varre todos os niveis escolhidos pelo usuário sinalrecuperado=sinalrecuperado+d(:,p);% retorna o sinal recuperado end % fim do comando for dos níveis de decomposição srecdesn=sinalrecuperado*sqrt(km);%desnormaliza o sinal recuperado ruidosrecdesn=sinal-srecdesn;%calcula o ruido do sinal recuperado potsrecdesn= (1/N)*sum(srecdesn.^2);% potencia do sinal recuperado potruidosrecdesn= (1/N)*sum(ruidosrecdesn.^2);% potencia do ruido snrout(j)=potsinal/potruidosrecdesn;% SNR do sinal recuperado SNRoutdB(j) = 10*log10(snrout(j));%calcula o ganho em dB de snrout G(j) = SNRoutdB(j) - SNRindB(j);%calcula o ganho total to sistema End Nome: recuperasinalruido.m % Esta função foi desenvolvida com o objetivo de descontaminar sinais de eletrocardiograma % contaminados com ruído branco gaussiano ou senóides. % Suas variáveis de entrada são as seguintes: % - pontos: determina o comprimento do sinal a ser analisado. % - SNRindB: é a relação sinal ruído de entrada dada em dB % - m: é o número de decomposições wavelets utilizadas % - wavelet: é o tipo de wavelet utilizada e seu nome deve ser dado entre aspas (‘__’) % O programa retorna as seguintes variáveis de saída: % - SNRoutdB: representa a relação sinal ruído do sinal recuperado % - srecdesn: é o sinal de ECG recuperado e desnormalizado clear all % limpa todas as variáveis close all % fecha todas os gráficos SNRin = 10.^(SNRindB/10);% transforma a SNR em um número adimensional [sinalecg, ipeaks] = ecgsyn(256,pontos/256);% sinal de ECG com 65536 pontos 46 sinal=sinalecg(1:pontos);%limita o número de pontos do sinal escolhido for m=1:5 % variação do número de níveis de decomposição for j=1:length(SNRin),%varia a relação sinal ruído for c=1:10% repetição para média N= length(sinal); % calcula o comprimento do sinal potsinal=(1/N)*sum(sinal.^2); % calcula a potencia do sinal original potruido=potsinal/SNRin(j); % potencia do %ruido sigma = sqrt(potruido);%calcula a potencia rms do ruido ruido=sigma*randn(N,1); % gera ruído sinalcontaminado=sinal+ruído; km=N/(2^m); % fator de normalização no número de níveis escolhidos sinalnormalizado=sinalcontaminado/sqrt(km);% sinal contaminado normalizado [C,L]=wavedec(sinalnormalizado,m,wavelet); % decomposição wavelet for p=1:m % varre todos os niveis escolhidos pelo usuário d(:,p)= wrcoef('d',C,L,wavelet,p); % coeficientes de detalhe k=length(sinalnormalizado)/(2^p); % comprimento do nivel m T=sqrt(2*log10(k)*sigma)/sqrt(k); % Calcula o limiar de corte indice=find(abs(d(:,p))<T); % índices abaixo do limiar d(indice,p)=0; % zera todos valores abaixo do limiar end % fim do comando for dos níveis de decomposição sinalrecuperado=wrcoef('a',C,L,wavelet,m); % retorna a aproximação for p=1:m % varre todos os niveis escolhidos pelo usuário sinalrecuperado=sinalrecuperado+d(:,p);% retorna o sinal recuperado end % fim do comando for dos níveis de decomposição srecdesn=sinalrecuperado*sqrt(km);%desnormaliza o sinal recuperado ruidosrecdesn=sinal-srecdesn;%calcula o ruido do sinal recuperado potsrecdesn= (1/N)*sum(srecdesn.^2);% potencia do sinal recuperado potruidosrecdesn= (1/N)*sum(ruidosrecdesn.^2);% potencia do ruido snrout(j)=potsinal/potruidosrecdesn;% SNR do sinal recuperado SNRoutdB(j) = 10*log10(snrout(j));%calcula o ganho em dB de snrout end end for d=1:lenght(SNRin) % calculo da média G(d)=sum(G(d,:/10) End 47 APÊNDICE B – ARTIGO PUBLICADO NOS ANAIS DO XXV SIMPÓSIO BRASILEIRO DE TELECOMUNICAÇÕES (SBrT 2007) Artigo publicado nos anais do XXVI Simpósio Brasileiro de Telecomunicações, Rio de Janeiro, 02 a 05 de Setembro de 2008