aceleração de algoritmos para estimativa da frequência...

58
Universidade de Brasília - UnB Faculdade UnB Gama - FGA Engenharia Eletrônica Aceleração de Algoritmos para Estimativa da Frequência Cardíaca Fetal Utilizando FPGA Autor: Igor Josafa Torres Barbosa Orientador: Prof. Dr. Gilmar Silva Beserra Brasília, DF 2015

Upload: others

Post on 03-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

Universidade de Brasília - UnB

Faculdade UnB Gama - FGA

Engenharia Eletrônica

Aceleração de Algoritmos para Estimativa daFrequência Cardíaca Fetal Utilizando FPGA

Autor: Igor Josafa Torres Barbosa

Orientador: Prof. Dr. Gilmar Silva Beserra

Brasília, DF

2015

Page 2: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade
Page 3: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

Igor Josafa Torres Barbosa

Aceleração de Algoritmos para Estimativa da Frequência

Cardíaca Fetal Utilizando FPGA

Monografia submetida ao curso de graduaçãoem (Engenharia Eletrônica) da Universidadede Brasília, como requisito parcial para ob-tenção do Título de Bacharel em (EngenhariaEletrônica).

Universidade de Brasília - UnB

Faculdade UnB Gama - FGA

Orientador: Prof. Dr. Gilmar Silva Beserra

Coorientador: Prof. Dr. Daniel Muñoz Arboleda

Brasília, DF

2015

Page 4: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

Igor Josafa Torres BarbosaAceleração de Algoritmos para Estimativa da Frequência Cardíaca Fetal Uti-

lizando FPGA/ Igor Josafa Torres Barbosa. – Brasília, DF, 2015-56 p. : il. (algumas color.) ; 30 cm.

Orientador: Prof. Dr. Gilmar Silva Beserra

Trabalho de Conclusão de Curso – Universidade de Brasília - UnBFaculdade UnB Gama - FGA , 2015.

1. Palavra-chave01. 2. Palavra-chave02. I. Prof. Dr. Gilmar Silva Beserra. II.Universidade de Brasília. III. Faculdade UnB Gama. IV. Aceleração de Algoritmospara Estimativa da Frequência Cardíaca Fetal Utilizando FPGA

CDU 02:141:005.6

Page 5: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

Igor Josafa Torres Barbosa

Aceleração de Algoritmos para Estimativa da FrequênciaCardíaca Fetal Utilizando FPGA

Monografia submetida ao curso de graduaçãoem (Engenharia Eletrônica) da Universidadede Brasília, como requisito parcial para ob-tenção do Título de Bacharel em (EngenhariaEletrônica).

Prof. Dr. Gilmar Silva Beserra

Orientador

Prof. Dr. Daniel Muñoz Arboleda

Coorientador

Prof. Dr. Sandro Augusto Pavlik

Haddad

Convidado

Brasília, DF2015

Page 6: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade
Page 7: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

Resumo

A utilização de FPGAs tem se mostrado uma alternativa eficiente para várias aplicações

de sistemas embarcados, tanto em termos de desempenho quanto de consumo. Na área

de biomédica, o monitoramento da frequência cardíaca fetal ou, em inglês, fetal heart

rate (FHR) tem sido determinante para a avaliação das reais condições do bebê durante

a gestação. A FHR pode ser medida a partir da aplicação de algoritmos de estimação

em sinais obtidos do abdômen materno através de sensores de ECG. Considerando esse

contexto, a proposta é identificar as partes críticas desses algoritmos e utilizar um FPGA

para aceleração dos mesmos a partir da exploração das possibilidades de paralelismo ofe-

recidas pela implementação em software e em hardware. Será utilizado um kits de FPGA

da empresa Altera e o processador softcore microAptiv como plataforma de software. A

validação do sistema será feita através de simulações no MatLab.

Palavras-chaves: ECG. ECG fetal. Engenharia Biomédica. Processamento de Sinais.

FPGA. Filtro Adaptativo. MIPS.

Page 8: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade
Page 9: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

Abstract

FPGAs has shown to be an efficient alternative to numerous embedded system applica-

tions in terms of performance and consumption. In the field of Biomedics, monitoring the

fetal heart rate (FHR) has been of great importance to evaluate the real health status

of the baby during pregnancy. The FHR can be measured using estimation algorithms to

process the signals obtained from the maternal abdomen through electrodes. Considering

these facts, this project’s goal is to identify and use an algorithm acceleration technique,

e.g the parallelism provided by the use of FPGA and a combined implementation of hard-

ware and software on the critical parts of the process. An Altera FPGA board and a

microAptiv softcore processor will be used. The system will be validated with MatLab

simulation.

Key-words: ECG. fetal ECG. Biomedic. Signal Processing. FPGA. Adaptive Filtering.

MIPS.

Page 10: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade
Page 11: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

Lista de ilustrações

Figura 1 – Ciclo de ativação do coração fetal . . . . . . . . . . . . . . . . . . . . . 23

Figura 2 – Ondas do tipo R na Análise Direta . . . . . . . . . . . . . . . . . . . . 25

Figura 3 – Exemplo de uma LUT . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Figura 4 – Sistema do processador Nios II . . . . . . . . . . . . . . . . . . . . . . 30

Figura 5 – Núcleo do processador Nios II . . . . . . . . . . . . . . . . . . . . . . . 30

Figura 6 – Core do MIPSfpga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Figura 7 – Sistema adaptativo de identificação . . . . . . . . . . . . . . . . . . . . 32

Figura 8 – Cancelamento adaptativo de ruído . . . . . . . . . . . . . . . . . . . . 33

Figura 9 – Predição linear adaptativa . . . . . . . . . . . . . . . . . . . . . . . . . 33

Figura 10 – Sistema adaptativo inverso . . . . . . . . . . . . . . . . . . . . . . . . . 33

Figura 11 – Fluxo de projeto do software Quartus II . . . . . . . . . . . . . . . . . 39

Figura 12 – Kit de desenvolvimento DE1-SoC . . . . . . . . . . . . . . . . . . . . . 40

Figura 13 – Arquitetura usada para medir a frequência cardíaca fetal . . . . . . . . 45

Figura 14 – Top-Level do MIPSfpga . . . . . . . . . . . . . . . . . . . . . . . . . . 46

Figura 15 – Exemplo com 1 switch acionado e 1 LED aceso . . . . . . . . . . . . . 47

Figura 16 – Exemplo com 2 switches acionados e 2 LEDs acesos . . . . . . . . . . . 47

Figura 17 – Informações de roteamento do MIPSfpga na placa FPGA . . . . . . . . 47

Figura 18 – Código em C: 3 LEDs acesos . . . . . . . . . . . . . . . . . . . . . . . 49

Figura 19 – Código em C: 8 LEDs acesos . . . . . . . . . . . . . . . . . . . . . . . 49

Page 12: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade
Page 13: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

Lista de tabelas

Tabela 1 – Comparação entre os sistemas apresentados para análise da FHR . . . 26

Page 14: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade
Page 15: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

Sumário

I INTRODUÇÃO 15

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.1 Contextualização e Problematização . . . . . . . . . . . . . . . . . . . 17

1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1.2.1 Objetivo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1.2.2 Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1.3 Estrutura do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

II FUNDAMENTAÇÃO TEÓRICA 21

2 FUNDAMENTAÇÃO TEÓRICA . . . . . . . . . . . . . . . . . . . . 23

2.1 O Coração Fetal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.1.1 Formação Cardíaca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.1.2 Funcionamento e Atividade Elétrica Cardíaca do Feto . . . . . . . . . . . . 23

2.1.3 Situações de Risco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.2 Sistemas para Estimativa da FHR . . . . . . . . . . . . . . . . . . . . 24

2.2.1 Análise Direta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.2.2 Filtro Adaptativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.2.3 Decomposição Linear e Não-Linear . . . . . . . . . . . . . . . . . . . . . . 25

2.2.4 Comparação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.3 FPGAs e Aceleração de Hardware . . . . . . . . . . . . . . . . . . . . 26

2.4 Processadores Embarcados . . . . . . . . . . . . . . . . . . . . . . . . 28

2.4.1 Nios II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.4.2 MIPSfpga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.4.2.1 Arquitetura MIPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.4.2.2 MIPSfpga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2.4.3 Escolha do Processador . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2.5 Filtros Adaptativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2.5.1 LMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

2.5.2 Filtro de Kalman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

2.5.3 Escolha do Tipo de Filtragem . . . . . . . . . . . . . . . . . . . . . . . . 36

III ASPECTOS METODOLÓGICOS E FERRAMENTAS 37

3 ASPECTOS METODOLÓGICOS E FERRAMENTAS . . . . . . . . 39

Page 16: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

3.1 Ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

3.1.1 Quartus II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

3.1.2 DE1-SoC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.1.3 MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.2 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

IV RESULTADOS PARCIAIS 43

4 RESULTADOS PARCIAIS . . . . . . . . . . . . . . . . . . . . . . . . 45

4.1 Arquitetura Proposta . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.2 Implementação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.2.1 Implementação do MIPSfpga . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.2.2 Execução de Códigos C no MIPSfpga . . . . . . . . . . . . . . . . . . . . 47

V CONCLUSÃO 51

5 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

5.1 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Referências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

Page 17: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

Parte I

Introdução

Page 18: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade
Page 19: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

17

1 Introdução

1.1 Contextualização e Problematização

A má formação cardíaca está entre os defeitos de nascença mais comuns, sendo a

principal causa de morte relacionada a um tipo de má formação. Em todo o mundo, 1 a

cada 125 recém nascidos apresentam alguma forma de má formação cardíaca congênita,

que pode representar um maior ou menor risco à vida do bebê (ASSOCIATION, 2008). A

fim de se obter uma minimização das taxas de mortalidade de recém nascidos por motivos

de má formação ou de outros problemas como a hipóxia1, que podem ser detectados através

de um monitoramento da frequência cardíaca fetal ou, em inglês, fetal heart rate (FHR)

e de sua variação, uma alternativa que pode se tornar viável com o melhoramento de

técncias de processamento de sinais é o fECG (eletrocardiograma fetal).

Nos primeiros trabalhos relacionados à eletrocardiografia fetal eram utilizados gal-

vanômetros, sendo que o primeiro cientista a observar esses sinais foi M. Cremer, ainda em

1906 (CREMER, 1906). O principal problema encontrado na época, e que ainda não foi

totalmente solucionado até hoje, é a falta de uma técnica totalmente eficaz de observação

dos sinais do feto sem a interferência dos sinais vitais maternos, visto que o coração do

feto é bem pequeno e gera uma relação sinal ruído (SNR) muito baixa.

Uma das maneiras de se contornar o problema do baixo SNR é a utilização de

métodos invasivos, nos quais o eletrodo é posicionado de modo a obter a maior proximi-

dade possível do feto. No princípio utilizava-se um método onde introduzia-se o eletrodo

através da mãe e o mesmo era colocado em contato com as membranas que envolvem o

feto (SUREAU, 1960). Este método foi entrando em desuso pela possibilidade de ruptura

prematura dessas membranas, ocasionando assim um parto prematuro. Na medida em

que os riscos desta abordagem eram percebidos e a mesma deixava de ser recomendada,

outro método invasivo surgia (HON, 1960): durante o parto, quando as membranas já

se romperam, um eletrodo era colocado em contato com o couro cabeludo do bebê e ele

tinha seus sinais vitais monitorados. Até o presente momento, este método é o que produz

os melhores resultados do ponto de vista sinal/ruído, tendo sido o primeiro a colocar um

eletrodo em contato direto com o feto. Já que para a realização desta técnica é necessá-

rio que tenha havido a ruptura das membranas que envolvem o bebê, ela só é utilizada

durante o parto.

Encontrar um método acessível e eficaz de análise da atividade cardíaca fetal que

1 Diminuição do teor de oxigênio no sangue que pode causar morte ou lesões cerebrais caso não sejapercebido a tempo.

Page 20: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

18 Capítulo 1. Introdução

pode ser usado durante a gestação e que não ofereça riscos à mãe e ao feto se tornou

um desafio do ponto de vista da engenharia biomédica e de processamento de sinais.

Com o avanço da tecnologia pode-se utilizar métodos de processamento automático de

sinais e filtros adaptativos para detecção das ondas do tipo R geradas pelo feto (esse

tipo de onda é mostrado na figura 1) (FARVET, 1968) e cancelamento da interferência

da atividade cardíaca materna nos eletrodos abdominais (WIDROW et al., 1975), porém,

apesar de todo o avanço alcançado, o máximo que se consegue são aproximações, não

obtendo resultados totalmente precisos.

1.2 Objetivos

1.2.1 Objetivo Geral

Dada a importância do monitoramento da atividade do coração fetal, este trabalho

tem a proposta de implementar um eletrocardiógrafo fetal que receberá os sinais obtidos

pelos eletrodos abdominais, podendo ser sinais reais ou provindos de bancos de dados,

fará o processamento do sinal obtido utilizando-se de filtro adaptativo para a estimação

da frequência cardíaca do feto em um primeiro momento e, em um segundo momento, a

otimização do algoritmo utilizado.

1.2.2 Objetivos Específicos

Para atingir o objetivo proposto, os seguintes passos deverão ser cumpridos:

• Implementação do microprocessador MIPS de 32-bits em uma placa FPGA;

• Adaptação do sistema implementado para executação de códigos escritos em lingua-

gem C;

• Definição e implementação que será usado para a estimação da FHR, que será

simulado em MatLab e codificado em linguagem C para rodar no microprocessador

MIPS;

• Análise do desempenho do sistema implementado e avaliação de qual bloco do sis-

tema poderá ser executado em hardware dedicado;

• Implementação do sistema parte no microprocessador MIPS e parte codificado em

VHDL na placa FPGA;

• Comparação de resultados obtidos com a utilização de cada uma dos dois modos de

implementação.

Page 21: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

1.3. Estrutura do Trabalho 19

1.3 Estrutura do Trabalho

Este trabalho está dividido em 5 sessões:

1. Introdução;

2. Fundamentação Teórica;

3. Aspectos Metodológicos e Ferramentas;

4. Resultados Parciais;

5. Conclusão.

A Introdução, na qual está inserida esta subsessão referente à estruturação do

trabalho, também apresenta a contextualização do problema, que mostra a relevância do

tema para a Engenharia Eletrônica Biomédica e a necessidade de avanços nas técnicas

utilizadas para a obtenção do eletrocardiograma fetal. Além disso, também encontra-se

nesta sessão os objetivos geral e específico, onde, após a contextualização do tema a ser

trabalhado, são descritas as metas a serem atingidas ao final do trabalho e as etapas que

serão percorridas para atingir com êxito a proposta apresentada.

A Fundamentação Teórica, sessão que vem a seguir, apresena os conhecimentos

técnicos que precisam ser dominados para a execução do trabalho. Será composto pelas

seguintes sessões:

• Coração Fetal: sessão que descreve a formação, funcionamento correto e funciona-

mento que apresenta sinais de risco do coração fetal;

• Sistemas usados na estimativa da FHR: descreve abordagens comuns utilizadas na

estimação da frequência cardíaca fetal, comparação entre as mesmas e justitificativa

do porque da utilização de filtros adaptativos;

• FPGA e Aceleração de Hardware: introdução sobre FPGAs, os principais motivos

que levam à sua utilização e como elas podem ser utilizadas para a aceleração de

um algoritmo;

• Processadores Embarcados: introdução sobre processadores embarcados, apresen-

tando ao final a vantagem da utilização do microprocessador MIPSfpga para este

projeto. Este item será dividido em duas subsessões que vão falar sobre os micro-

processadores Nios II e MIPSfpga;

• Filtros Adaptativos: descrição de filtros adaptativos e suas utilizações.

Page 22: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

20 Capítulo 1. Introdução

A terceira sessão, Aspectos Metodológicos e Ferramentas, descreve em mais deta-

lhes os itens apresentados no Objetivo Específico do trabalho, se tratando da explicação

dos passos que serão realizados para o cumprimento do objetivo final do trabalho e, além

disso, como as ferramentas apresentadas na Fundamentação Teórica serão utilizadas nes-

ses passos.

A penúltima sessão deste documento mostra os resultados parciais atingidos nesta

primeira etapa do trabalho. Ele é composto de duas subsessões, onde a primeira trata

da arquitetura escolhida para ser utilizada no projeto para a estimação da frequência

cardíaca do feto e a segunda explica como se dá a implementação do MIPSfpga em uma

placa FPGA e a execução de códigos em linguagem C na mesma.

Por fim, a Conclusão trará uma visão do que foi definido e atingido até o momento

e explicitará o que deverá ser trabalhado na próxima etapa para a finalização do projeto.

Page 23: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

Parte II

Fundamentação Teórica

Page 24: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade
Page 25: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

23

2 Fundamentação Teórica

2.1 O Coração Fetal

2.1.1 Formação Cardíaca

O coração está entre os primeiros órgãos a serem formados no desenvolvimento do

feto, tendo o seu período mais crítico de desenvolvimento entre a 3a e 7a semana, quando

as 4 cavidades do coração são formadas (JANA, 2004). A partir da 3a semana de gestação,

o coração já começa a exercer sua função de bombear o sangue pelo sistema circulatório

do feto, que é um sistema fechado sem nenhum contato com o sistema circulatório da

mãe.

A faixa de frequência cardíaca considerada normal para o feto vai de 110 BPM a

160 BPM (batimentos por minuto) e, a partir da 20a semana, esses batimentos podem ser

auscultados sem a necessidade de amplificação. Entretanto, devido à alta frequência dos

batimentos, o diagnóstico por meio deste método se torna inviável e o uso de equipamentos

como o Eletrocardiógrafo torna-se altamente desejável (SAMENI; CLIFFORD, 2011).

2.1.2 Funcionamento e Atividade Elétrica Cardíaca do Feto

A anatomia e funcionamento do coração de um feto são diferente dos encontrados

no coração de um adulto. Podemos citar o fato de que o oxigênio do feto vem da placenta,

tirando a responsabilidade do coração de bombear sangue venoso pelo ventrículo direito

para os pulmões, onde as trocas gasosas de CO2 para O2 deveriam acontecer para só então

o sangue ir para o ventrículo esquerdo e ser bombeado para o corpo. Por este motivo, o

sangue é bombeado sempre para todo o corpo (STINSTRA, 2001).

Apesar das funções mecânicas do coração de um feto e de um adulto serem diferen-

tes, sua atividade elétrica é bem similar. O estímulo do miocárdio começa no nó sinoatrial,

um marca-passo natural do coração. Este estímulo é responsável por cada batimento car-

díaco. Em seguida, o nó artrioventricular é ativado. Podemos chamar a contração do

miocárdio de ciclo de despolarização (sístole), que é seguido pelo ciclo de repolarização

(diástole) (SAMENI; CLIFFORD, 2011).

A Figura 1 mostra uma onda comum encontrada em um fECG. A onda P acontece

pelo processo de despolarização que corre o átrio. Em seguida, entre a onda P e Q, é o

tempo em que a despolarização corre através do nó atrioventricular. As ondas Q, R e

S representam a despolarização dos ventrículos e, enquanto isso ocorre, os átrios são

repolarizados. Por último, encontra-se a onda T que corresponde à repolarização dos

Page 26: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

24 Capítulo 2. Fundamentação Teórica

Figura 1 – Ciclo de ativação do coração fetal. (STINSTRA, 2001)

ventrículos.

2.1.3 Situações de Risco

Em situações normais, como dito anteriormente, o coração do feto bate em frequên-

cias que variam de 110 BPM a 160 BPM. Esta frequência deve ser observada cuidado-

samente, pois pode ser um forte indicador de que existe algum risco à saúde do feto. As

situações normais em que os batimentos podem estar fora deste intervalo de normalidade

são quando o feto se movimenta, o que faz a frequência dos batimentos subir, ou quando

existe uma contração do últero, onde a frequência cardíaca pode tanto subir como descer.

Já nas situações anormais, onde os batimentos estão acima ou abaixo dos limites

sem que o feto se movimente ou que o útero sofra contrações ou onde o feto se movimenta

e a frequência de seus batimentos não aumente ou até abaixe, têm-se um fator de risco.

2.2 Sistemas para Estimativa da FHR

Existem alguns métodos para a a estimativa da frequência cardíaca do feto. Nesta

sessão serão abordados os seguintes métodos: Análise Direta, Filtro Adaptativo, Decom-

posição Linear e Não-Linear.

2.2.1 Análise Direta

Em algumas condições bem específicas, sendo uma delas a posição onde o feto fica

em uma posição onde sua cabeça está em direção oposta à cabeça da mãe - como na

posição do parto, o pico das suas ondas do tipo R é positivo, estando assim com sinal

contrário aos picos apresentados pela mãe (LARKS, 1968). A figura 2 exemplifica este

caso, onde nota-se a frequência cardíaca materna negativa e em torno de 90 BPM e a do

feto positiva, mais fraca e em torno de 138 BPM.

Neste caso, a análise do intervalo de tempo entre um batimento do feto e outro

pode ser feito diretamente pela detecção dos picos e não há necessidade de nenhum tipo

de processamento mais avançado dos sinais obtidos pelo eletrocardiógrafo. A grande van-

tagem deste método é a sua simplicidade e a sua grande desvantagem é a necessidade de

Page 27: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

2.2. Sistemas para Estimativa da FHR 25

condições epecíficas, que nem sempre são atendidas, para que a estimativa seja aceitável.

Portanto, métodos de processamento de sinais mais avançados são comumente utilizados.

Figura 2 – Ondas do tipo R com pico positivo para o feto e negativo para a mãe.(SAMENI; CLIFFORD, 2011)

2.2.2 Filtro Adaptativo

Os filtros adaptativos podem aprender determinados comportamentos. Sabendo

disso, existem duas abordagens mais comuns para a utilização deste método na análise

da frequência cardíaca fetal, sendo elas:

• Treinamento do filtro adaptativo para reconhecimento e filtragem dos sinais mater-

nos através do uso de canais de referência (WIDROW et al., 1975);

• Treinamento do filtro adaptativo para identificação direta dos sinais QRS geral pela

atividade cardíaca do feto (FARVET, 1968).

Um tipo de filtro adaptativo comumente utilizado neste propósito é o baseado no

Método dos Mínimos Quadrados, como o usado por (HATAI; CHAKRABARTI; BANERJEE,

2013).

Para o Método dos Mínimos Quadrados, nestas duas abordagens é necessário que

o filtro tenha uma referência similar à onda que contamina o sinal obtido pelos eletrodos

abdominais ou possua canais linearmente independentes que possam ser combinados e

gerar a onda de referência requerida.

Estas necessidades podem fazer com que este método de difícil execução, visto

que a onda que precisa ser usada como referência é altamente dependente da posição

dos eletrodos de referência e nem sempre pode ser contruída através de uma combinação

linear dos mesmos (SAMENI; CLIFFORD, 2011).

O Filtro de Kalman, que é considerado um tipo de filtro adaptativo, se mos-

tra promissor nesta abordagem, pois o sinal de referência materno pode ser arbitrário

e, a partir disso, consegue cancelar os sinais maternos e um melhoramento do fECG.

(SAMENI; CLIFFORD, 2011).

Page 28: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

26 Capítulo 2. Fundamentação Teórica

2.2.3 Decomposição Linear e Não-Linear

Métodos de decomposição são os métodos mais utilizados e eficazes para a remoção

de ruído do fECG. Nestes métodos os sinais são decompostos em diferentes componentes

através do uso de funções de base que estão de acordo com o tempo, frequencia ou escala

dos sinais obtidos através dos eletrodos abdominais.

Na execução de decomposições lineares deve-se assumir que os componentes de

onda do feto e da mãe estão misturados de uma maneira estacionária e independente.

Entretanto, devido a movimentação ou até mesmo a respiração, estes sinais são variá-

veis e a assunção de que eles são estacionários nem sempre é uma boa aproximação

(SAMENI; CLIFFORD, 2011).

A fim de se eliminar o problema dos sinais não serem sempre linearmente inde-

pendentes usa-se a decomposição não-linear. Este sistema utiliza o próprio sinal e a sua

versão atrasada para a construção de uma trajetória no espaço de estados, onde este sinal

é processado e a amostra volta ao domínio do tempo (KOTAS, 2004). Por só precisar do

próprio sinal para a realização do processamento, esta técnica é bastante atrativa, pois

só necessita de um único canal materno. A grande desvantagem deste método é a sua

complexidade.

2.2.4 Comparação

A tabela 1 fornece uma comparação entre os diferentes tipos sistemas para análise

da FHR.

Método PerformanceMelhoria

SNR

Custo

Computacional

Complexidade

de Imple-

mentaçãoFiltragem FIR/IIR Baixa Baixa Baixo SimplesFiltro Adaptativo Média Média Médio MédiaDecomp. Linear Média Média Baixo Média

Decomp. Não-Linear Média Média/Alta Alto AltaFiltro de Kalman Alta Alta Médio Alta

Tabela 1 – Comparação entre os sistemas apresentados para análise da FHR. Adap-tado de (SAMENI; CLIFFORD, 2011).

Como pode ser percebido, os resultados obtidos com a utilização de filtros adap-

tativos e de decomposição linear e não-linear são semelhantes. Seguindo a proposta do

trabalho de aceleração de algoritmo, o sistema escolhido será o Filtro de Kalman, que é

considerado um tipo de filtro adaptativo, mas que, como mostrado na tabela 1, possui

um desempenho melhor que os outros métodos, o que proporciona a oportunidade de um

algoritmo de alto desempenho e rápida execução.

Page 29: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

2.3. FPGAs e Aceleração de Hardware 27

2.3 FPGAs e Aceleração de Hardware

Uma FPGA (Field Programmable Gate Array) é um dispositivo de hardware re-

configurável, o que significa que ela pode ser programada pelo usuário, usualmente por

meio de uma linguagem de descrição de hardware, para ter o comportamento e realizar

as operações desejadas.

Quando as FPGAs começaram a ser utilizadas, nos anos 80, elas eram de difí-

cil configuração. Com o passar dos anos e o aumento de seus usuários, ela foi ganhando

funcionalidades e sua utilização se tornando mais simples. Seus desenvolvedores foram adi-

cionando funcionalidades mais complexas como geradores de clock, memórias randômicas

de acesso remoto (DRAMs), controladores e até processadores de múltiplos núcleos ao sis-

tema interno das FPGAs como IPs (Propriedades Intelectuais) que são de fácil utilização

para que o usuário comum possa adicioná-los aos seus projetos (ALTERA, 2014).

Em geral, as FPGAs apresentam uma alta performance, pois pode realizar suas

funções através de Unidades Lógicas Aritméticas (ULAs), como um microprocessador

comum, ou de LUTs (Look Up Tables) que tem os valores de uma tabela-verdade definidos

no sistema e, dada as entradas, uma saída é apontada (GARCIA et al., 2006), como

mostrado na figura 3.

Figura 3 – Exemplo de uma (a) Tabela Verdade e (b) LUT de uma função booleana.(SASS; SHMIDT, 2010)

Uma grande vantagem desse tipo de dispositivo é a possibilidade da execução em

paralelo. Para entender o conceito de paralelismo, vamos começar analisando o compor-

tamento de um programa escrito em linguagem C, que por sua característica de execução

é considerada uma linguagem imperativa. Neste tipo de linguagem a execução é feita de

modo sequencial, onde uma operação só é executada quando a operação anterior terminou

de ser executada. Outro tipo de execução existente é a que usa concorrência. Neste se-

gundo tipo, trechos do código são executados conceitualmente de modo simultâneo - isso

significa que o programa executa diferentes partes do código que não obedecem a uma

Page 30: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

28 Capítulo 2. Fundamentação Teórica

linha sequencial e que ele usa um sistema de escalonamento para alternar entre as partes

que serão executadas. Já no paralelismo, onde se alcança o melhor desempenho, diferentes

partes do código são executadas simultaneamente em núcleos fisicamente distintos. Isso

pode ser alcançado com o uso de processadores de múltiplos núcleos ou até mesmo usando

diferentes processadores para a execuçao de um único código (LEE; SESHIA, 2011).

O recurso de paralelismo pode ser usado na aceleração de hardware. No contexto

do projeto, parte da arquitetura pode ser implementada em software e outra parte em

hardware dedicado, ambas sendo executadas ao mesmo tempo.

2.4 Processadores Embarcados

Devido a grande quantidade de aplicações embarcadas, pode-se encontrar uma

grande variedade de processadores para as mesmas, indo desde pequenos, lentos, baratos

e de baixo consumo até os de alta performance e altamente específicos (LEE; SESHIA,

2011).

Pode-se descrever como principal característica dos processadores embarcados o

fato deles serem projetados para operações específicas, levando em consideração as funci-

onalidades que precisam ter para as suas devidas aplicações. Por isso, podemos dizer que

processadores embarcados não podem ser caracterizados como processadores de propósito

geral (COTOFANA; WONG; VASSILIADIS, ).

As grandes vantagens de se ter um processador embarcado em uma FPGA são as

seguintes (FLETCHER, 2005):

1. Customização: o desenvolvedor que usa um processador embarcado em uma FPGA

tem total flexibilidade para selecionar os controladores e periféricos que deseja uti-

lizar em seu projeto. Essa flexibilidade cria oportunidades como, por exemplo, fazer

todos os pinos de propósito geral da FPGA poderem realizar comunicação UART;

2. Atraso de obsolescencia: através do uso de processadores embarcados pode-se al-

cançar um tempo de vida útil maior do que o tempo de vida útil normalmente

encontrado em produtos eletrônicos. Com o uso de processadores codificados (soft-

processors) em HDL, como é o caso dos disponíveis para FPGA, o código pode ser

melhorado;

3. Redução de componentes e custo: as FPGAs são versáteis, podendo substituir sis-

temas que precisavam de vários componentes para serem implementados. O uso do

processador embarcado juntamente com os pinos de entrada e saída presentes na

FPGA substituem a combinação de um co-processador e um chip auxiliar com pinos

de entrada e saída, o que diminui tempo e custo de projeto.

Page 31: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

2.4. Processadores Embarcados 29

4. Aceleração de Hardware: caso um gargalo no software seja identificado, pode-se usar

um co-processamento específico para o algoritmo, onde parte será executada pelo

processador embarcado e parte será executada em hardware dedicado.

Dois exemplos de processadores embarcados serão apresentados a seguir: o Nios

II, processador embarcado nas FPGAs da marca Altera, e MIPSfpga, um processador

desenvolvido pela empresa Imagination Technologies, que possui os direitos do micropro-

cessador MIPS.

2.4.1 Nios II

O Nios II Classic é o processador disponível nas FPGAs Quartus II de versão 14.0

ou inferior, da empresa Altera. Ele possui uma arquitetura RISC (Computadores com

Conjunto de Instruções Reduzido, em português) e algumas de suas características são

(ALTERA, 2015):

• Conjunto de instruções de 32-bits, caminho de dados e espaço de endereços;

• 32 registradores de propósito geral;

• 32 fontes de interrupção;

• interface externa de controle de interrupções;

• instruções opcionais com ponto flutuante;

• acesso a uma variedade de periféricos da FPGA;

• módulo de depuração assistido pelo hardware, com funções de start, stop, step e

trace;

• Unidade de Gerenciamento de Memória (MMU) opcional;

• Unidade de Proteção de Memória (MPU) opcional;

• ambiente de desenvolvimento de software baseado no GNU C/C++ tool chain.

Na prática, algumas funcionalidades podem ser adicionadas ao Nios II ou, caso

exista alguma função padrão ou periférico que não precisa ser utilizado, ele pode ser

retirado a fim de se desenvolver um dispositivo menor, mais barato e com menor consumo.

As imagens 4 e 5 mostram exemplos de um processador Nios II e de seu núcleo,

respectivamente.

Page 32: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

30 Capítulo 2. Fundamentação Teórica

Figura 4 – Sistema do processador Nios II. (ALTERA, 2015)

Figura 5 – Núcleo do processador Nios II. (ALTERA, 2015)

2.4.2 MIPSfpga

2.4.2.1 Arquitetura MIPS

A arquitetura MIPS (Microprocessor without Interlocked Pipeline Stages) é uma

das arquiteturas RISC originais, sendo baseada em registradores, contando com 32 deles.

Foi desenvolvida com o objetivo de revolucionar a eficiência das arquiteturas de compu-

tador por meio de pesquisas na Stanford University, em 1981, tendo sua comercialização

iniciada em 1984 pela empresa MIPS Computer Systems e, posteriormente, comprada

pela Imagination Technologies, em 2013.

Seu primeiro sucesso de comercialização foi o MIPS R3000, baseado em um pipeline

de 5 estágios e, em seguida, o R4000, que já contava com instruções de 64 bits.

Page 33: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

2.4. Processadores Embarcados 31

Por ser um microprocessador simples, ele possui vantagens como confiabilidade e

velocidade, tendo como variações mais simples o MIPS M4K, M14K e microAptiv. Por

esse motivo, o MIPS ganhou espaço em projetos de baixo custo e baixa potência.

2.4.2.2 MIPSfpga

O MIPSfpga é um MIPS de 32-bits baseado na família microAptiv, o qual pode ser

encontrado em diversas aplicações de diferentes áreas, como automotiva, comunicação wi-

reles, etc. Por ter sua codificação em Verilog, é considerado um soft core (IMAGINATION,

2015).

A figura 10 mostra um diagrama de funcionamento do processador. As unidades

centrais do processador são:

• Execution Unit: realiza as operações indicadas pela instrução;

• MDU (multiply/divide unit): extensão da Execution Unit para realizar multiplicação

e divisão;

• Instruction Decoder: recebe instruções e o sinal adequado para a execução da ins-

trução;

• System Co-Processor: cria os sinais usados internamente no processador, como o

clock;

• GPR: detem os registradores de propósito geral.

Figura 6 – Core do MIPSfpga. (IMAGINATION, 2015)

Page 34: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

32 Capítulo 2. Fundamentação Teórica

2.4.3 Escolha do Processador

Nos itens anteriores foram destacadas as características dos processadores Nios

II, da Altera, e MIPSfpga, da Imagination Technologies. Para a execução do projeto, o

processador MIPSfpga foi o escolhido, pois pode ser portado para FPGAs de diferentes

marcas, como as Nexys da empresa Xilinx, enquanto o Nios II é limitado aos modelos

fabricados pela Altera.

2.5 Filtros Adaptativos

Processamentos digitais de sinais são usualmente utilizados para aplicações como

filtragem de ruídos, identificação de sistemas e predições. Entretanto, os modelos con-

vencionais de processamentos digitais, por vezes, não apresentam um resultado rápido e

acurado. Os filtros adaptativos podem ser uma alternativa nesses casos.

Filtros adaptativos são filtros que mudam e atualizam suas especificações automa-

ticamente a partir da aplicação à qual estão sendo usados, não precisando de nenhuma

intervenção do projetista ou usuário. Isso significa que um filtro adaptativo pode mudar

sua própria resposta ao impulso. Existem diversos algoritmos que servem para atualizar

os parâmetros do filtro e um dos mais usados e que será apresentado na sessão 2.5.1 é o

algoritmo dos Mínimos Quadrados (HATAI; CHAKRABARTI; BANERJEE, 2013).

Pode-se dividir os filtros adaptativos em quatro categorias que apresentarem al-

goritmos de implementação similares, porém suas configurações diferem. As partes gerais

desses sitemas são: uma entrada x(n), um resultado desejado d(n), uma saída y(n), uma

função de transferência w(n) e um sinal de erro e(n), que vem da diferença entre uma pri-

meira saída u(n) e a saída real do sistema y(n) (DRUMRIGHT, 1998). As categorias são

explicadas a seguir e cada item possui uma figura do esquema de blocos de sua respectiva

configuração:

• Sistema adaptativo de identificação: este sistema pode ser usado para determinar

uma estimativa discreta da função de transferência de um sistema que pode ser tanto

digital quanto analógico. A mesma entrada x(n) é aplicada ao filtro adaptativo e

ao sistema que se deseja identificar e suas saídas (y(n) para o filtro adaptativo e

d(n) para o sistema desconhecido) são subtraídas, gerando o sinal e(n). Este sinal

é utilizado na manipulação dos coeficientes do sistema adaptativo e, após um dado

número de iterações, o erro diminui e, idealmente, chega a zero. O número de coe-

ficientes do filtro adaptativo influi na magnitude de e(n) e no tempo que se demora

para atingir uma magnitude pequena deste sinal.

• Cancelamento adaptativo de ruído: neste sistema um sinal x(n) composto de um

ruído é comparado com o sinal d(n) composto pelo sinal s(n) que contem ruído. Os

Page 35: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

2.5. Filtros Adaptativos 33

Figura 7 – Sistema adaptativo de identificação. (DRUMRIGHT, 1998)

coeficientes do filtro adaptativo se adaptam para que o sinal de erro se torne uma

versão sem ruído de s(n).

Figura 8 – Cancelamento adaptativo de ruído. (DRUMRIGHT, 1998)

• Predição linear adaptativa: nesta configuração duas operações são realizadas. Usando

o sinal e(n) é feita uma predição linear onde os coeficientes do sistema adaptativo

são treinados para predizer, usando as estatísticas do sinal de entrada x(n), qual

será o próximo sinal de entrada. Já usando o sinal y(n) é realizado um cancelamento

adaptativo de ruídos, explicado no item anterior.

Figura 9 – Predição linear adaptativa. (DRUMRIGHT, 1998)

• Sistema adaptativo inverso: nesta configuração o objetivo é modelar o inverso do

sistema desconhecido u(n). Um sinal x(n) é aplicado a um filtro adaptativo, gerando

assim uma saída y(n). O mesmo sinal é aplicado a um sistema cuja única função

é gerar um atraso ao sinal x(n) e possui a saída d(n). Os sinais y(n) e d(n) são

subtraídos, gerando o sinal e(n) que é usado na determinação dos coeficientes do

sistema adaptativo. À medida em que e(n) converge para zero, os coeficientes de

w(n) convergem para o inverso de u(n).

Alguns tipos de filtragem adaptativa que se mostram viáveis para o projeto são o

Filtro de Kalman, que tem seu desempenho mostrado na tabela 1, e o algoritmo adapta-

Page 36: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

34 Capítulo 2. Fundamentação Teórica

Figura 10 – Sistema adaptativo inverso. (DRUMRIGHT, 1998)

tivo dos Mínimos Quadrados (LMS), usado por (HATAI; CHAKRABARTI; BANERJEE,

2013). Estes métodos serão apresentados nos itens subsequentes.

2.5.1 LMS

O algoritmo adaptativo dos Mínimos Quadrados (LMS) é o mais utilizado dentre os

filtros adaptativos. Os principais motivos da sua vasta utilização são: baixa complexidade

computacional, prova de convergência em ambiente estacionário e comportamento estável

quando implementado com aritmética de precisão finita (DINIZ, 2008).

Segundo (JR.; NETTO, 2009), para a construção do algoritmo adaptativo dos

Mínimos Quadrados é necessária a determinação da solução de Wiener para o problema

do erro quadrático (MSE). Devido a esta ser uma solução complexa, sua implementação

em tempo real se torna difícil.

A fim de tornar o processo mais rápido, é possível a estimação desta solução

de maneira computacional e isso faz com que, por meio de ajustes iterativos do vetor

coeficiente w nos instantes k, a sequência w(k) converge para a solução w0 . Isso resulta,

simplificadamente, nas equações 2.1 e 2.2, onde µ representa o fator de convergência.

w(k) = w(k − 1) + µe(k)x(k) (2.1)

e(k) = d(k) − wT(k − 1)x(k) (2.2)

2.5.2 Filtro de Kalman

O Filtro de Kalman é um algoritmo estimador otimizado, pois encontra parâmetros

de interesse a partir de medidas indiretas, incertas e inacuradas e é recursivo, onde as

novas medidas são processadas assim que recebidas. Por levar em conta apenas a média

e desvio padrão do ruído, seu funcionamento é melhor para sistemas lineares e é muito

utilizado devido aos seus bons resultados, aplicabilidade em sistemas de tempo real, fácil

formulação e implementação dado um entendimento básico e a não necessidade de inversão

das equações de medição (KLEEMAN, ).

Page 37: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

2.5. Filtros Adaptativos 35

Este filtro é muito utilizado em aplicações de rastreamento como GPS e determi-

nação de órbita de planetas em que suas órbitas são dificilmente observadas a partir da

Terra, e em outras aplicações como jogos eletrônicos.

Em (FARAGHER, 2012) é mostrado que em um tempo t o estado do sistema que

leva em conta t - 1 é dado pela equação 2.3.

xt = Ftxt-1 + Btut + wt (2.3)

onde

• xt é o vetor de estados que contem os termos de interesse para o sistema no tempo

t;

• ut é o vetor que contém os controles de entrada do sistema;

• Ft é a matriz do estado de transição que aplica o efeito dos parâmetros do tempo t

- 1 no tempo t;

• Bt é a matriz de controle de entradas que aplica o efeito de cada parâmetro de

controle de entrada do vetor ut no vetor de estados xt ;

• wt é o vetor que contém os componentes de ruído de cada parâmetro do vetor de

estados xt .

As medidas do sistema são feitas seguindo a equação 2.4.

zt = Htxt + vt (2.4)

onde

• zt é o vetor de medidas;

• Ht é a matriz de transformação que mapeia os parâmetros do vetor de estados no

domínio das medidas;

• vt é o vetor que contém os componentes de ruído das medidas.

O algoritmo do Filtro de Kalman envolve dois estágios: estimação e atualização

de medidas. A estimação é feita a partir das equações 2.5 e 2.6, onde Qt é a matriz de

covariância do processo associada com entradas ruidosas, e a atualização de medidas pelas

equações 2.7 e 2.9.

x̂t|t-1 = Ftx̂t-1|t-1 + Btut (2.5)

Page 38: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

36 Capítulo 2. Fundamentação Teórica

Pt|t-1 = FtPt-1|t-1FT

t+ Qt (2.6)

x̂t|t = x̂t|t-1 + Kt(zt − Htx̂t|t-1) (2.7)

Pt|t = Pt|t-1 − KtHtPt|t-1 (2.8)

onde

Kt = Pt|t-1HT

t(HtPt|t-1H

T

t+ Rt)-1 (2.9)

2.5.3 Escolha do Tipo de Filtragem

Dadas as informações apresentadas nas sessões anteriores, percebe-se que a aborda-

gem dos filtros LMS é mais simples de ser implementada. Entretanto, como apresentado

na tabela 1 o Filtro de Kalman é a abordagem que possui o melhor resultado para a

aplicação que é proposta neste projeto e, a princípio, foi a abordagem escolhida.

Page 39: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

Parte III

Aspectos Metodológicos e Ferramentas

Page 40: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade
Page 41: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

39

3 Aspectos Metodológicos e Ferramentas

3.1 Ferramentas

Em ordem cronológica do desenvolvimento do projeto, as seguintes ferramentas

foram e serão utilizadas:

• Software Quartus II 15.0 (64-bit) Web Edition: ambiente utilizado para programar

a placa com FPGA;

• Kit de desenvolvimento DE1-SoC: placa com FPGA na qual o sistema será imple-

mentado;

• MIPSfpga, citado na seção 2.4.2: plataforma de software onde o código em C será

executado;

• MATLAB: software em que será feita a validação, através de simulações, do sistema

que estimará a FHR.

3.1.1 Quartus II

O programa Quartus II é um software de design da empresa Altera que é usado

na programação das placas com FPGAs produzidas por esta empresa. Esta programação

pode se dar por códigos em VHDL ou Verilog, por diagramas esquemáticos ou até mesmo

por uma união destes diferentes métodos, se mostrando uma ferramenta poderosa e que

facilmente se adapta a este projeto.

Em qualquer fase do seu fluxo de projeto, mostrado na figura 11, pode-se usar

interface gráfica ou uma interface de linhas de comando, o que permite ao usuário escolher

quando usar o método que melhor se enquadra em uma determinada etapa de seu projeto

(ALTERA, 2010).

Figura 11 – Fluxo de projeto do software Quartus II (ALTERA, 2010).

Page 42: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

40 Capítulo 3. Aspectos Metodológicos e Ferramentas

3.1.2 DE1-SoC

O kit de desenvolvimento DE1-SoC é uma plataforma construída a partir de uma

Altera System-on-Chip (SoC1) FPGA, que contém um processador ARM Cortex-A9 dual-

core, sendo um sistema reconfigurável com processador de alta performance e baixo con-

sumo. (TERASIC, 2014)

A figura 12 mostra alguns de seus principais componentes.

Figura 12 – Kit de desenvolvimento DE1-SoC e seus principais componentes. (TERASIC,2014)

3.1.3 MATLAB

O MATLAB é uma linguagem de alto nível que possui um ambiente interativo para

computação numérica, visualização e programação, a qual pode ser usada para análise de

dados, criação de algoritmos e modelos, entre outras aplicações complexas. A lista a seguir

mostra algumas de suas características, presentes em (MATHWORKS, 2015).

• Ambiente interativo para exploração iterativa, projetos e solução de problemas;

• Funções matemáticas para álgebra linear, estatísticas, análise de Fourier, filtragem,

otimização, integração numérica e solução de equações diferenciais ordinárias;

• Ferramentas para criação de gráficos;

• Ferramentas de desenvolvimento para melhoria da qualidade de códigos e maximi-

zação de performance;

• Ferramentas para criação de aplicações com interface gráfica customizável.1 Circuito integrado que reúne todos os componentes de um computador ou sistema eletrônico em um

único chip.

Page 43: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

3.2. Metodologia 41

Pelas características citadas acima, a ferramenta MATLAB se torna uma alterna-

tiva viável para as simulações do sistema de estimação da FHR.

3.2 Metodologia

O desenvolvimento do trabalho começarou com o levantamento bibliográfico e

familiarização com o fluxo de projetos do software Quartus II. Alguns pequenos projetos

de menor complexidade foram feitos a fim de se compreender como o software funciona.

Após a familiarização, o processador MIPSfpga foi estudado e através do docu-

mento e arquivos fornecidos pela (IMAGINATION, 2015), foi implementado utilizando

o kit de desenvolvimento DE1-SoC e, em seguida, o sistema foi adaptado a fim de se

conseguir a execução de algoritmos escritos em linguagem C, a qual será utilizada para a

execução do sistema inteiro em um primeiro momento e da parte em software do algoritmo

final.

Através das referências bibliográficas foi definido o método de filtragem de sinal

e redução de ruídos que resultará em um algoritmo de estimação de FHR de melhor

desempenho.

O sistema deverá ser implementado e testado utilizando a ferramenta MATLAB,

o código será transcrito para a linguagem C e executado no MIPSfpga que foi embarcado

na placa com FPGA para ter seu desempenho analisado a partir dos dados fornecidos

pelo software Quartus II.

Após a análise de desempenho, um dos blocos do sistema será descrito em lingua-

gem de descrição de hardware e será executado em paralelo ao sistema em software a fim

de se obter uma melhor performance.

Page 44: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade
Page 45: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

Parte IV

Resultados Parciais

Page 46: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade
Page 47: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

45

4 Resultados Parciais

4.1 Arquitetura Proposta

Os sistemas de extração de estimação da frequência cardíaca fetal que usam filtros

adaptativos, como os modelos mostrados em (HATAI; CHAKRABARTI; BANERJEE,

2013) e (K.; PAUL; BALAKRISHNAN, 2013), onde ambos se baseiam em algoritmos

adaptativos de Mínimos Quadrados, apresentam uma arquitetura semelhante. A arquite-

tura é mostrada na figura 13 e consiste dos seguintes blocos:

• Filtro LMS (LMS Filter): Como citado na sessão 2.5.1 é um filtro adaptativo que

se baseia no algoritmo dos Mínimos Quadrados para atualizar seus parâmetros.

• Filtro Digital Passa-Baixas (Digital LPF ): Recebe o error signal, que representa o

sinal do fECG, e dá formato ao sinal do ECG fetal, tirando ruídos de frequência

mais alta.

• Unidade de detecção de limites (Threshold Detection Unit): Também recebe o error

signal e define um limite máximo e um limite mínimo.

• Detector de Bordas (Edge Detector): Compara a saída do filtro passa-baixas com

os limites. O primeiro detector de bordas define que o que passar do limite máximo

é um pico positivo e o segundo detector de bordas define que o que estiver abaixo

do limite mínimo é um pico positivo.

• Contador da Frequência Cardíaca Fetal (Fetal Hearte Rate Counter): Soma o nú-

mero de picos positivos ou negativos obtidos pelo detector de bordas durante um

período de 60 segundos. O resultado será a frequência cardíaca fetal.

Figura 13 – Arquitetura usada para medir a frequência cardíaca fetal.(HATAI; CHAKRABARTI; BANERJEE, 2013)

Visto que esta arquitetura é comumente encontrara em sistemas de medição de

frequência cardíaca fetal que usam filtros adaptativos, ela será utilizada no projeto. A

principal alteração é a substituição do Filtro LMS por um Filtro de Kalman.

Page 48: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

46 Capítulo 4. Resultados Parciais

4.2 Implementação

4.2.1 Implementação do MIPSfpga

Após a familiarização com o software Quartus II e seu fluxo de projetos, o MIPSfpga

pôde ser implementado na placa FPGA seguindo o tutorial (IMAGINATION, 2015). Este

tutorial é voltado para a implementação nos kits de desenvolvimento Nexys4 DDR e

DE2-115. Por estar usando o kit DE1-SoC, as seguintes alterações nos códigos fornecidos

precisaram ser feitas:

• Criar um arquivo Top-Level que conecte o núcleo do MIPSfpga à placa FPGA.

O arquivo criado é mostrado na imagem 14, onde pode ser visto que o MIPSfpga

poderá utilizar os 10 switches, os 4 botões, os 10 LEDs e 7 pinos de entrada e saída

da placa.

Figura 14 – Top-Level do MIPSfpga.

• As linhas 24 e 25 do arquivo mipsfpga_ahb_const.vh, que indicam o tamanho da

memória RAM de reset e da usada nos programas do MIPSfpga, respectivamente,

precisam ser diminuídas. O parâmetro da memória de reset é diminuído de 15 para

14, o que significa que 214 palavras, ou 64KB, agora serão usadas. Já o parâmetro

da memória usadas nos programas é diminuído de 16 para 15, ou seja, 215 palavras

que representam 128KB.

• Após a criação do projeto, um arquivo *.qsf é gerado. Este arquivo mapeia os sinais

do programa que roda na FPGA aos seus pinos. Utilizando o endereçamento dos

pinos apresentado no manual do kit (TERASIC, 2014), o arquivo foi editado e os

pinos corretamente endereçados.

Depois das alterações terem sido feitas, um arquivo ram_reset_init.txt, que é

fornecido, foi adicionado à pasta de arquivos do MIPSfpga. Este programa, depois de

compilado, faz com que cada switch acione seu LED correspondente. Por exemplo, ao

Page 49: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

4.2. Implementação 47

colocar o SW0 em nível alto, o LED LEDR1 acende. O código completo foi compilado

e as imagens 15 e 16 mostram o programa em funcionamento na placa. Já a figura 17

mostra as informações sobre o roteamento do MIPSfpga na placa FPGA.

Figura 15 – Exemplo com 1 switch acionado e 1 LED aceso.

Figura 16 – Exemplo com 2 switches acionado e 2 LEDs acesos.

Figura 17 – Informações de roteamento do MIPSfpga na placa FPGA.

4.2.2 Execução de Códigos C no MIPSfpga

Os arquivos que ditam o programa que será executado no MIPSfpga são ram_reset_init.txt

e ram_program_init.txt, que no caso do exemplo dos switches e LEDS foram fornecidos

pela Imagination Technologies. Para a execução de arquivos escritos em C no processador,

precisamos gerar estes dois arquivos. Para cumprir esta tarefa, é necessário um sistema

operacional Windows com os programas OpenOCD e Codescape instalados. Como o sis-

tema operacional em que o Quartus II está sendo executado é um Ubuntu 14.04, foi

Page 50: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

48 Capítulo 4. Resultados Parciais

configurada no mesmo uma máquina virtual com Windows 7 em que estão instalados o

OpenOCD-0.9.2 e o CodescapeMIPSSDK-1.2.1.16.

A fim de se compilar o código em C usando o software Codescape é necessário que

se nomeie o arquivo com o código como main.c e o coloque em uma pasta com os arquivos

boot.h, boot.S, boot-uhi32.ld, fpga.h, FPGA_Ram.ld, init_caches.S, init_cp0.S, init_gpr.S,

init_tlb.S e Makefile que são fornecidos. Em seguida abrir um terminal (cmd.exe no

menu Iniciar), navegar até a pasta com estes arquivos e dar um comando make. Diversos

arquivos serão criados. Em seguida o script createMemfiles, também fornecido, deve ser

executado e receber como parâmetro a pasta onde se encontra o arquivo main.c. Este script

irá gerar uma pasta chamada MemoryFiles contendo os arquivos ram_reset_init.txt e

ram_program_init.txt que farão com que o MIPSfpga execute o programa em C desejado.

O código em C utilizado para demonstrar esta funcionalidade foi o seguinte:

Listing 4.1 – Código em C executado no MIPSfpga.

void delay ( ) {

volat i le unsigned int j ;

for ( j = 0 ; j < (1000000 ) ; j ++);

}

int main ( ) {

volat i le int ∗IO_LEDR = ( int ∗)0 xbf800000 ;

volat i le int ∗IO_SWITCHES = ( int ∗)0 xbf800008 ;

volat i le unsigned int switches , count = 0 ;

while ( 1 ) {

sw i t che s = ∗IO_SWITCHES;

switch ( sw i t che s ) {

case 0x1 : count = 1 ; break ;

case 0x2 : count = 3 ; break ;

case 0x4 : count = 7 ; break ;

case 0x8 : count = 15 ; break ;

case 0x10 : count = 31 ; break ;

case 0x20 : count = 63 ; break ;

case 0x40 : count = 127 ; break ;

case 0x80 : count = 255 ; break ;

case 0x100 : count = 511 ; break ;

case 0x200 : count = 1023 ; break ;

Page 51: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

4.2. Implementação 49

default : count = count << 1 ;

}

∗IO_LEDR = count ;

delay ( ) ;

}

return 0 ;

}

Neste código os endereços virtuais dos LEDs e switches são usados para acessá-

los. Uma estrutura case avalia o estados dos switches e, caso só um switch esteja ativado,

o LED correspondente a esta chave será ligado e todos os LEDs menos significantes

também. Em qualquer outra circunstâncea os LEDs que estão acesos serão deslocados

para a esquerda, até que nenhum LED esteja aceso. As imagens 18 e 19 mostram o código

rodando na placa FPGA.

Figura 18 – Exemplo de execução do código em C: 3 LEDs acesos.

Figura 19 – Exemplo de execução do código em C: 8 LEDs acesos.

Page 52: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade
Page 53: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

Parte V

Conclusão

Page 54: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade
Page 55: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

53

5 Conclusão

5.1 Conclusão

A medição da frequência cardíaca fetal (FHR) e de sua variação pode ser uma

aliada importante na diminuição de mortalidade fetal por problemas como má formações,

que fazem com que o coração do feto não trabalhe como deveria, ou problemas como a

hipóxia.

Neste trabalho foi definida uma arquitetura que pode ser usada nessa medição,

que consiste em um Filtro de Kalman, um filtro passa-baixas, um detector de limites,

dois detectores de bordas e um contador de frequência cardíaca fetal. A plataforma de

hardware onde o algoritmo será executado foi definido como o kit de desenvolvimento

DE1-SoC e a plataforma de software será o MIPSfpga, que já foi implementado no kit de

desenvolvimento.

Para os projetos futuros pretende-se simular a arquitetura proposta com o software

MATLAB e analisar seu desempenho através de testes e informações de implementação

fornecidas pelo software Quartus II. Depois desta análise, será analisado qual parte da

arquitetura pode ser implementada em hardware dedicado, diretamente na placa FPGA,

a fim de se acelerar o algoritmo.

Page 56: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade
Page 57: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

55

Referências

ALTERA. Introduction to the Quartus II Software. San Jose, CA, 2010. Citado napágina 39.

ALTERA. FPGAs for dummies. 2014. Disponível em: <https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/misc/fpgas_for_dummies_ebook.pdf>. Citado na página 27.

ALTERA. Nios II Classic Processor Reference Guide. San Jose, California, 2015. Citado2 vezes nas páginas 29 e 30.

ASSOCIATION, A. H. Congenital Heart Defects in Children Fact Sheet. 2008. Disponívelem: <http://www.americanheart.org/children>. Citado na página 17.

COTOFANA, S.; WONG, S.; VASSILIADIS, S. Embedded Processors: Characteristicsand Trends. Delt University of Technology, Delt, Holanda. Citado na página 28.

CREMER, M. Über die direkte Ableitung der Aktionströme des menschlichen Herzensvom Oesophagus und über das Elektrokardiogramm des Fötus. [S.l.], 1906. v. 53. Citadona página 17.

DINIZ, P. S. R. Adaptive Filtering - Algorithms and Practical Implementation. Third ed.Rio de Janeiro, Brazil, 2008. Citado na página 34.

DRUMRIGHT, T. Adaptive Filtering. [S.l.], 1998. Citado 2 vezes nas páginas 32 e 33.

FARAGHER, R. Understanding the Basis of the Kalman Filter Via a Simple andIntuitive Derivation. [S.l.], 2012. Citado na página 34.

FARVET, A. G. Computer Matched Filter Location of Fetal R-Waves. [S.l.], 1968. v. 6,n. 5. Citado 2 vezes nas páginas 18 e 25.

FLETCHER, B. H. FPGA Embedded Processors - Revealing True System Performance.San Diego, California, 2005. Citado na página 28.

GARCIA, P. et al. An Overview of Reconfigurable Hardware in Embedded Systems. [S.l.],2006. Citado na página 27.

HATAI, I.; CHAKRABARTI, I.; BANERJEE, S. FPGA Implementation of a Fetal HeartRate Measuring System. [S.l.], 2013. Citado 4 vezes nas páginas 25, 32, 33 e 45.

HON, E. H. The instrumentation of fetal heart rate and fetal electrocardiography i. afetal heart rate monitor. [S.l.], 1960. v. 24. Citado na página 17.

IMAGINATION. Getting Started Guide. [S.l.], 2015. 138 p. Citado 4 vezes nas páginas30, 31, 41 e 46.

JANA, L. Early Fetal Heart Development: 0-9 Weeks. [S.l.], 2004. Disponível em:<http://www.drspock.com/article/0,1510,5827,00.html>. Citado na página 23.

Page 58: Aceleração de Algoritmos para Estimativa da Frequência ...fga.unb.br/tcc/eletronica/tcc-2015.2-engenharia-eletronica/igor-josafa... · Trabalho de Conclusão de Curso – Universidade

56 Referências

JR., J. A. A.; NETTO, S. L. QRD-RLS Adaptive Filtering. Rio de Janeiro, Brazil, 2009.Citado na página 34.

K., P.; PAUL, B.; BALAKRISHNAN, A. A. Fetal ECG Extraction Using AdaptiveFilters. [S.l.], 2013. v. 2. Citado na página 45.

KLEEMAN, L. Understanding and Applying Kalman Filtering. Monash University,Clayton. Citado na página 34.

KOTAS, M. Project filtering of time-aligned ECG beats. [S.l.], 2004. v. 51, n. 7. Citadona página 26.

LARKS, S. D. Present status of fetal electrocardiography. [S.l.], 1968. v. 9, n. 3. Citadona página 24.

LEE, E. A.; SESHIA, S. A. Introduction to Embedded Systems - A Cyber-PhysicalSystems Approach. First edition. UC Berkeley, 2011. Citado 2 vezes nas páginas 27 e 28.

MATHWORKS. MATLAB Primer. [S.l.], 2015. Citado na página 40.

SAMENI, R.; CLIFFORD, G. D. A Review of Fetal ECG Signal Processing; Issues andPromising Directions. Boston, USA, 2011. 30 p. Citado 3 vezes nas páginas 23, 25 e 26.

SASS, R.; SHMIDT, A. G. Embedded Systems Design with Plataform FPGAs Principlesand Practices. [S.l.], 2010. Citado na página 27.

STINSTRA, J. Reliability of the fetal magnetocardiogram. Enschede, Holanda, 2001.Disponível em: <http://www.doc.utwente.nl/35964/>. Citado na página 23.

SUREAU, C. Electrocardiographie foetale humaine normale. [S.l.: s.n.], 1960. Citado napágina 17.

TERASIC. DE1-SoC User Manual. [S.l.], 2014. Citado 2 vezes nas páginas 40 e 46.

WIDROW, B. et al. Adaptive noise cancelling: principles and applications. [S.l.], 1975.v. 63, n. 12. Citado 2 vezes nas páginas 18 e 25.