TTC ENGENHARIA DE COMPUTAÇÃO

download TTC ENGENHARIA DE COMPUTAÇÃO

of 52

Transcript of TTC ENGENHARIA DE COMPUTAÇÃO

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    1/52

    UNIVERSIDADE DO VALE DO ITAJACENTRO DE CINCIAS TECNOLGICAS DA TERRA E DO MAR

    CURSO DE ENGENHARIA DE COMPUTAO

    IMPLEMENTAO EM VHDL DE UM ALGORITMO PARACANCELAMENTO DE ECO

    por

    Guilherme Garcia da Rosa

    Itaja (SC), dezembro de 2015

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    2/52

    UNIVERSIDADE DO VALE DO ITAJACENTRO DE CINCIAS TECNOLGICAS DA TERRA E DO MAR

    CURSO DE ENGENHARIA DE COMPUTAO

    IMPLEMENTAO EM VHDL DE UM ALGORITMO PARACANCELAMENTO DE ECO

    rea de Processamento Digital de Sinais

    por

    Guilherme Garcia da Rosa

    Relatrio apresentado Banca Examinadora doTrabalho Tcnico-cientfico de Concluso de Cursode Engenharia de Computao para anlise eaprovao.

    Orientador(a): Walter Gontijo, M. Eng.

    Itaja (SC), dezembro de 2015

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    3/52

    RESUMO

    ROSA, Guilherme Garcia da. Implementao em VHDL de um algoritmo paracancelamento de eco. Itaja, 2015. 52f. Trabalho Tcnico-cientfico de Concluso de Curso(Graduao em Engenharia de Computao)Centro de Cincias Tecnolgicas da Terra e doMar, Universidade do Vale do Itaja, Itaja, 2015.

    Por definio eco a repetio de um som que se d pela reflexo de uma onda sonora por umasuperfcie ou um objeto. Em redes telefnicas o eco de linha causado pelo descasamento deimpedncias ao longo da rede, sendo um problema para a comunicao entre usurios.

    Normalmente, nessas redes o eco de linha atenuado via um cancelador de eco. Neste trabalho

    implementado em FPGA um algoritmo para cancelamento de eco. Inicialmente, so avaliadose implementados em Matlab os algoritmos mais utilizados na aplicao de cancelamento deeco, por exemplo, LMS, NLMS, RLS e APA. Na sequncia escolhido para implementaoem FPGA o algoritmo NLMS, devido a sua baixa complexidade computacional e desempenho.

    Nessa implementao obtido um total de 20 canais de cancelamento de eco e uma atenuaoda ordem de 25dB, considerando o dispositivo FPGA, EP2C35F672C6 da ALTERA.

    Palavras-chave: FPGA. Cancelamento de eco. Algoritmos adaptativos. VHDL.

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    4/52

    ABSTRACT

    Echo is the repetition of a sound that is given by the reflection of a sound wave from a surfaceor an object. In telephone networks the line echo is caused by impedance mismatch along the

    network, a problem for communication between users. Normally, such a line of eco networking

    is mitigated via an echo canceller. This paper implements in FPGA an algorithm for echo

    cancellation. Initially they are evaluated and implemented in Matlab using algorithms most

    widely used for the echo cancellation application, for example, LMS, NLMS, RLS and APA. In

    the sequence is chosen the NLMS algorithm for implementation in the FPGA, since it has a low

    computational complexity and suitable performance. In this implementation is obtained a total

    of 20 channels of echo cancellation and an attenuation around 25dB, considering the FPGA

    device, EP2C35F672C6 of ALTERA.

    Keywords: FPGA. Echo cancelling. Adaptive algorithms. VHDL.

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    5/52

    LISTA DE FIGURAS

    Figura 1. Gerao de eco na linha entre hibridas. .................................................................... 15

    Figura 2. Sistema de cancelamento de eco. .............................................................................. 16

    Figura 3. Representao de um filtro adaptativo. ..................................................................... 17

    Figura 4. Diagrama de blocos de um filtro FIR. ....................................................................... 19

    Figura 5. Diagrama de blocos do sistema proposto. ................................................................. 34

    Figura 6. Sistema de identificao de uma planta. ................................................................... 35

    Figura 7. Comparao entre LMS, NLMS e RLS. ................................................................... 36

    Figura 8. Resultado do LEC em MATLAB. ............................................................................ 37

    Figura 9. Comparao do nearcom o erro. .............................................................................. 37

    Figura 10. Diagrama de estados do Filtro FIR. ........................................................................ 39

    Figura 11. Entrada e sada do Filtro FIR. ................................................................................. 40

    Figura 12. Pseudocdigo da diviso. ........................................................................................ 41

    Figura 13. Mquina de estados do NLMS. ............................................................................... 42

    Figura 14. Erro resultante do NLMS. ....................................................................................... 42

    Figura 15. Simulao do LEC. ................................................................................................. 44

    Figura 16. Diagrama RLT do LEC em FPGA. ......................................................................... 44

    Figura 17. Comparao do near com o erro do LEC. .............................................................. 47

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    6/52

    LISTA DE TABELAS

    Tabela 1.

    Comparao entre os algoritmos ................................................................. 27

    Tabela 2. Comparao dos resultados obtidos em MATLAB .................................... 36

    Tabela 3. Relatrio de compilao do Filtro FIR. ....................................................... 40

    Tabela 4.

    Relatrio de compilao do Filtro Adaptativo com NLMS. ....................... 43

    Tabela 5. Relatrio de compilao do LEC com NLMS. ........................................... 43

    Tabela 6. Relatrios dos recursos para um canal do LEC na placa DE2-C35. ........... 46

    Tabela 7.

    Relatrios dos recursos para 20 canais do LEC na placa DE2-C35. ........... 46

    Tabela 8. Comparao dos resultados. ........................................................................ 48

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    7/52

    LISTA DE EQUAES

    Equao 1 ................................................................................................................................. 18

    Equao 2 ................................................................................................................................. 21

    Equao 3 ................................................................................................................................. 21

    Equao 4 ................................................................................................................................. 22

    Equao 5 ................................................................................................................................. 23

    Equao 6 ................................................................................................................................. 23

    Equao 7 ................................................................................................................................. 23

    Equao 8 ................................................................................................................................. 25

    Equao 9 ................................................................................................................................. 25

    Equao 10 ............................................................................................................................... 25

    Equao 11 ............................................................................................................................... 25

    Equao 12 ............................................................................................................................... 25

    Equao 13 ............................................................................................................................... 25

    Equao 14 ............................................................................................................................... 27

    Equao 15 ............................................................................................................................... 27

    Equao 16 ............................................................................................................................... 27

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    8/52

    LISTA DE ABREVIATURAS E SIGLAS

    ASIC Circuito de Aplicao EspecificaDSP Digital Signal ProcessorFIR Finite Impulse ResponseFPGA Field Programmable Gate ArrayLMS Least Mean-Square

    NLMS Normalized Least Mean-SquareRLS Recursive Least SquareTTC Trabalho Tcnico-cientfico de Concluso de CursoUNIVALI Universidade do Vale do ItajaMSE Erro quadrtico mdioVHDL VHSIC Hardware Description Language

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    9/52

    9

    SUMRIO

    1 I NTRODUO ..................................................................................................................... 11

    1.1 Pr oblematizao ................................................................................................................. 12

    1.1.1 Formulao do Problema ................................................................................................ 12

    1.1.2 Soluo Proposta ............................................................................................................. 12

    1.2 Objeti vos ............................................................................................................................. 13

    1.2.1 Objetivo Geral ................................................................................................................. 13

    1.2.2 Objetivos Especficos ....................................................................................................... 13

    1.3 Metodologia ....................................................................................................................... 13

    1.4 Estrutur a do Trabalho ....................................................................................................... 14

    2 FUNDAM ENTAO TERI CA ........................................................................................ 15

    2.1 Cancelamento de eco ......................................................................................................... 15

    2.2 F i ltr agem adaptativa .......................................................................................................... 16

    2.3 F i ltr os FIR ......................................................................................................................... 18

    2.4 Al gori tmos adaptat ivos ...................................................................................................... 19

    2.4.1 Algoritmo LMS ................................................................................................................ 21

    2.4.2 Algoritmo NLMS .............................................................................................................. 22

    2.4.3 Algoritmo RLS ................................................................................................................. 24

    2.4.4 Algoritmo APA ................................................................................................................. 26

    2.4.5 Comparao dos Algoritmos Analisados ........................................................................ 27

    2.5 FPGA ................................................................................................................................. 28

    2.6 VHDL ................................................................................................................................. 29

    2.7 Placa de Desenvolvimento ................................................................................................. 30

    2.8 Ferramentas de Desenvolvimento ..................................................................................... 30

    2.8.1 Matlab .............................................................................................................................. 31

    2.8.2 Quartus II ........................................................................................................................ 31

    2.8.3 ModelSim ......................................................................................................................... 32

    2.8.4 Ocenaudio ........................................................................................................................ 32

    2.9 Tr abalhos relacionados ..................................................................................................... 32

    3 DESENVOLVI MENTO ....................................................................................................... 34

    3.1 VI SO GERAL DO SI STEMA ......................................................................................... 34

    3.2 Impl ementao dos algor i tmos ......................................................................................... 35

    3.2.1 Implementaes em MATLAB ......................................................................................... 35

    3.2.2 Implementaes em VHDL .............................................................................................. 38

    3.2.3 Testbench ......................................................................................................................... 38

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    10/52

    10

    3.2.4 Filtro FIR em VHDL ....................................................................................................... 38

    3.2.5 Algoritmo NLMS em VHDL ............................................................................................. 41

    3.2.6 LEC em VHDL ................................................................................................................. 43

    3.2.7 Integrao do LEC na placa DE2-C35 ........................................................................... 44

    4 RESULTADOS ALCANADOS ......................................................................................... 46

    4.1 relatrios do quar tus .......................................................................................................... 46

    4.2 Desempenho do cancelador de eco ................................................................................... 47

    5 CONSIDERAES F I NA IS ............................................................................................... 49

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    11/52

    11

    1INTRODUO

    O avano nas tcnicas digitais permitiu que sistemas que originalmente eram

    implementados com circuitos analgicos pudessem utilizar novos dispositivos digitais, tais

    como, processador digital de sinais (DSP), circuitos integrados de aplicao especfica (ASIC),

    Field Programmable Gate Array (FPGA). Um exemplo de um sistema que atualmente

    implementado em tais dispositivos o cancelador de eco (MATHEWS, 1991).

    O eco uma verso atrasada e atenuada de um sinal original que retorna fonte. Em

    sistemas de comunicao h dois tipos de eco: eltrico ou eco de linha e eco acstico. O eco

    eltrico gerado devido a uma diferena de impedncia ao longo da transmisso e, eco acstico

    resultante da reflexo de ondas sonoras e acoplamento entre um microfone e um alto-falante.

    Em algumas aplicaes (sonar, radar, ultrassom), o eco desejado, entretanto, em aplicaes

    de comunicao, o eco indesejado e deve ser eliminado (MANOLAKIS; INGLE; KOGON,

    2005).

    Normalmente, as aplicaes de cancelamento de eco utilizam um filtro adaptativo que

    uma estrutura composta por um filtro digital com coeficientes variveis e um algoritmoadaptativo para atualizar tais coeficientes. Os algoritmos adaptativos mais utilizados so o LMS

    e o LMS Normalizado (NLMS) (MANOLAKIS; INGLE; KOGON, 2005).

    Segundo Pinto, Salgado e Ferreira (2009), o algoritmo LMS a mais popular de todas

    as estimativas sugeridas por Widrow e Hoff em 1959 e consiste em substituir os valores mdios

    das variveis pelos seus valores instantneos. J o algoritmo NLMS basicamente o LMS

    normalizado em relao a energia do sinal de entrada.

    O cancelamento de eco uma tcnica essencial em aplicaes de sistemas de

    multimdia, principalmente para videoconferncias ou chamadas de voz. Visto sua importncia,

    muitos sistemas com cancelamento de eco j foram propostos (CLAESSON; DAHLS, 2002;

    SAGGIN; SEARA, 2011).

    Algoritmos de cancelamento de eco de linha normalmente so implementados em

    dispositivos conhecidos por Processadores Digital de Sinais (DSP), sendo aplicados em

    telefones digitais e GatewayIP. Devido reduo de custo e o aumento dos recursos disponveis

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    12/52

    12

    nos dispositivos programveis (FPGA) os algoritmos de processamento digital de sinais

    aplicados em telecomunicaes vm sendo implementados em dispositivos FPGA. Dentre esses

    algoritmos pode-se citar Dual-Tone Multi-Frequency (DTMF) e o cancelamento de eco(MANOLAKIS; INGLE; KOGON, 2005).

    Usualmente algoritmos de cancelamento de eco so implementados em processadores

    comerciais e DSPs, por exemplo, a famlia TMS 320 (Texas Instrument), famlia Blackfin

    (Analog Devices) e processadores ARM. Entretanto, ainda h poucas implementaes desses

    algoritmos em dispositivos FPGA quando comparado a DSPs. Desta forma este trabalho visa

    atender essa lacuna com a implementao do algoritmo de cancelamento de eco em FPGA, bem

    como avaliar o nmero de canais de cancelamento que podem ser implementados no dispositivo

    selecionado.

    1.1PROBLEMATIZAO

    1.1.1

    Formulao do Problema

    Algoritmos de cancelamento de eco so utilizados em redes telefnicas com o objetivo

    de reduzir os problemas gerados pelo eco durante uma conversa entre dois usurios.Normalmente, a implementao desses algoritmos realizada em um DSP, dado que tal

    dispositivo habitualmente utilizado por empresas fabricantes de produtos de

    telecomunicaes. Entretanto, a implementao desses algoritmos tambm vem sendo

    considerada em dispositivos FPGA, dado o aumento em sua capacidade lgica, bem como a

    incorporao de unidades especficas de processamento digital de sinais, por exemplo, a Mac

    (multiplicao com acumulao).

    Neste trabalho implementado um algoritmo de cancelamento de eco em um dispositivo

    FPGA, bem como avaliado a possibilidade de obter diversos canais de cancelamento de eco

    sintetizados em um nico dispositivo FPGA.

    1.1.2

    Soluo Proposta

    Nesse Trabalho Tcnico-cientfico de Concluso de Curso (TTC) implementado um

    algoritmo de cancelamento de eco de linha em VHDL em dispositivos FPGA. Tal

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    13/52

    13

    implementao utiliza as estruturas paralelas existentes em um FPGA para processar mltiplos

    canais de cancelamento de eco.

    1.2OBJETIVOS

    1.2.1

    Objetivo Geral

    Implementar em VHDL um algoritmo de cancelamento de eco de linha e avaliar o

    nmero mximo de canais sintetizados nessa implementao.

    1.2.2

    Objetivos Especficos

    Analisar os algoritmos usualmente aplicados em cancelamento de eco de linha.

    Implementar em Matlab os algoritmos analisados.

    Realizar testes de validao, analisar desempenho e recursos computacionais dos

    algoritmos implementados.

    Escolher o algoritmo mais adequado para a implementao em VHDL.

    Definir o hardware a ser utilizado.

    Implementar em VHDL o algoritmo selecionado.

    Avaliar a quantidade de canais de cancelamento de eco que pode ser

    implementada em um dispositivo FPGA.

    1.3METODOLOGIA

    A pesquisa bibliogrfica, segundo Marconi e Lakatos (2009, p. 43, 44) trata-se de [um]

    levantamento de toda a bibliografia j publicada, em forma de livros, revistas, publicaes

    avulsas e imprensa escrita. Trata-se de um estudo exploratrio descritivo, por buscar

    caractersticas e levantar dados sobre opinies e atitudes de um grupo, buscando [...] a

    descrio das caractersticas de determinada populao ou fenmeno ou o estabelecimento de

    relaes entre variveis (GIL, 1999, p. 43).

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    14/52

    14

    A metodologia utilizada na realizao deste trabalho , inicialmente, a anlise da

    bibliografia disponvel na literatura sobre algoritmos adaptativos que so aplicados em

    cancelamento de eco. Na sequncia, so selecionados os algoritmos mais comuns decancelamento de eco para a implementao em MATLAB. Posteriormente, selecionado um

    dos algoritmos para implementao em VHDL, considerando a complexidade computacional e

    o desempenho do algoritmo.

    1.4ESTRUTURA DO TRABALHO

    Este documento est estruturado em quatro captulos. O Capitulo 1, Introduo

    apresentou uma viso geral do trabalho. No Captulo 2, a Fundamentao Terica, apresentadauma reviso bibliogrfica sobre o principal tema abordado no trabalho que o cancelamento de

    eco, assim como uma anlise a respeito dos algoritmos adaptativos para estar realizando este

    cancelamento de eco. Neste captulo tambm feita uma comparao dentre estes algoritmos

    apontando suas vantagens e desvantagens diante a caractersticas importantes dos sistemas

    adaptativos. No Captulo 3 so apresentados os detalhes da implementao de algoritmos

    adaptativos em MATLAB e VHDL. Inicialmente, apresentado o sistema proposto e,

    posteriormente, o detalhamento de cada etapa do desenvolvimento do trabalho. Posteriormente,no Captulo 4 so apresentados os resultados alcanados, mostrando inicialmente os relatrios

    de ocupao do Quartus II e, na sequncia, so apresentados os resultados do cancelador de eco

    obtido. Finalmente, no Captulo 5 so apresentadas as consideraes finais e sugerido trabalhos

    futuros.

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    15/52

    15

    2FUNDAMENTAO TERICA

    2.1

    CANCELAMENTO DE ECO

    Um dos maiores problemas associados comunicao telefnica o eco que ocorre

    devido ao descasamento de impedncia nas redes de telecomunicaes. Normalmente, o eco

    degrada a comunicao telefnica quando o atraso entre a fala e o eco da ordem de 20

    milissegundos. O eco provavelmente uma das ocorrncias mais prejudiciais para a degradao

    de comunicaes a longa distncia (KUO; LEE, 2001).

    Os usurios de um sistema de telefonia convencional se conectam na central maisprxima utilizando um par de fios (circuito a dois fios). Nesta conexo, os sinais de voz

    trafegam simultaneamente em ambas as direes. Para a chamada ser realizada a central do

    usurio de origem precisa se conectar com a do destino. A conexo entre as centrais utiliza

    equipamentos amplificadores e dois caminhos separados (circuito a quatro fios) para os sinais

    de voz dos usurios. A converso do circuito a dois fios para o de quatro fios realizada por

    um dispositivo conhecido como hbrida. Idealmente, a hbrida deveria permitir a passagem do

    sinal de entrada diretamente para sua sada sem nenhum resduo. Entretanto, devido aodescasamento de impedncia as hbridas no operam perfeitamente, desta forma, uma

    quantidade de energia vinda da entrada do circuito, retorna para a fonte emissora como um eco.

    A Figura 1 mostra a gerao do eco entre as hibridas em uma comunicao entre dois usurios

    (MANOLAKIS; INGLE; KOGON, 2005).

    Figura 1. Gerao de eco na linha entre hibridas.

    Fonte: Adaptao de Manolakis, Ingle e Kogon (2005).

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    16/52

    16

    comum uma hibrida possuir uma atenuao na ordem de 15dB em relao ao seu sinal

    original. Considerando este valor de atenuao e um atraso de dezenas de milissegundos, a

    comunicao entre os usurios comea a ser comprometida. O atraso muito maior em ligaesinternacionais ou de longa distncia, podendo estar na ordem de 500 600ms devido a

    utilizao de satlites (MANOLAKIS; INGLE; KOGON, 2005).

    A Figura 2 mostra o diagrama de blocos de um sistema de cancelamento de eco. O bloco

    H corresponde a resposta ao impulso da hibrida. No ponto A indicado na Figura 2 tem-se a

    soma do eco resultante da hibrida com a voz do usurio near-end. O bloco W um filtro digital

    cujos coeficientes so modificados pelo algoritmo adaptativo. Este algoritmo recebe o sinal do

    usuriofar-ende o resduo do eco. O resduo a diferena dos sinais eltricos do eco pela sada

    do filtro digital (replica do eco). Este resduo mais o sinal dofar-endso usados pelo algoritmo

    adaptativo para modificar os coeficientes do filtro digital W, fazendo com que a rplica do eco

    se aproxima do eco encontrado de modo que essa diferena tenda a ser nula.

    Figura 2. Sistema de cancelamento de eco.

    Fonte: Adaptao de Linse (2007)

    2.2FILTRAGEM ADAPTATIVA

    Conforme Kuo e Lee (2001) a filtragem adaptativa consiste em duas partes distintas: O

    filtro digital para processar o sinal digital desejado e um algoritmo adaptativo para ajustar os

    coeficientes do filtro. Os algoritmos adaptativos realizam ajustes dos coeficientes do filtro

    digital com o objetivo de atender os requisitos do sistema e obter um erro o mais prximo de

    nulo.

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    17/52

    17

    O filtro adaptativo geralmente tem a forma do sistema mostrado na Figura 3, em que

    d(n) o sinal desejado, y(n) a sada do filtro resultante de um sinal de entrada de referencia

    x(n), e o erro e(n) que a diferena do sinal desejado d(n) e do sinal resultante y(n), este erro utilizado para ajustar os coeficientes do algoritmo adaptativo de forma que o sinal resultante

    y(n) se aproxime o mximo possvel do sinal desejado d(n).

    Figura 3. Representao de um filtro adaptativo.

    Fonte: Adaptao de Manolakis, Ingle e Kogon (2005).

    Conforme Widrow e Stearns (1985) os sistemas adaptativos possuem as seguintes

    caractersticas:

    1. Podem se adaptar automaticamente (auto otimizao) diante de mudanas (no

    estacionarias) no ambiente e mudanas nos requerimentos do sistema.

    2. Podem ser treinados para realizar uma filtragem ou uma deciso especifica. A

    combinao de sistemas com essas capacidades pode ser realizada

    automaticamente atravs de treino, ou seja, pode ser programado atravs de um

    processo de treinamento;

    3.

    Em virtude das condies apontadas, os sistemas adaptativos no precisam de

    procedimentos elaborados de sntese, em vez disso, os algoritmos tendem a

    executar sua programao automaticamente;

    4. Podem extrapolar o espao de conhecimento e lidar com novas situaes aps o

    treinamento com um pequeno conjunto de padres de entrada tendo um

    aprendizado automtico;

    5. At certo ponto, tendo cincia de defeitos, limites ou problemas internos, eles

    podem se auto reparar, se adaptando a esses defeitos;

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    18/52

    18

    6. Geralmente eles podem ser descritos como sistemas no lineares com

    parmetros de variao temporal;

    7.

    comum que estes sistemas sejam mais complexos de analisar do que sistemasno adaptativos, porm, estes sistemas adaptativos dispem da possibilidade de

    aumentar consideravelmente o seu desempenho quando as caractersticas dos

    sinais de entradas so desconhecidas ou variam com o tempo.

    2.3FILTROS FIR

    Filtros com resposta ao impulso finita (FIR) so filtros digitais lineares. Tambm so

    conhecidos por filtros digitais no-recursivos devido falta defeedback1. Esta ausncia de umretorno da sada garante que a resposta para um impulso seja finita (GAIKWAD; GAIKWAD;

    DEKATE, 2014).

    Conforme Samprit (2007), pode-se citar duas caractersticas principais de um filtro FIR:

    o filtro inerentemente estvel e no necessita de feedback1. Por no necessitar de feedback,

    quaisquer erros de arredondamento no so agravados na sua implementao.

    Os filtros FIR so caracterizados por uma resposta ao impulso que se torna nula apsum tempo finito. A equao que representa o comportamento do filtro FIR (MANOLAKIS;

    INGLE; KOGON, 2005):

    y(n) w x(n i)

    =

    Equao 1

    Onde

    Pindica a ordem do filtro, w os coeficientes do filtro, x(n) o sinal de entrada e

    y(n) a sada resultante.

    A estrutura de um filtro FIR pode ser representada utilizando o diagrama de blocos

    mostrado na Figura 4.

    1

    Nas reas de Engenharia, o termo feedback utilizado para referir realimentao de um sistema, ouseja, transferncia do sinal de sada para a entrada do mesmo sistema ou circuito, resultando num aumento denvel de sada (BARBOZA, 2015).

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    19/52

    19

    Figura 4. Diagrama de blocos de um filtro FIR.

    Fonte: Adaptao de Najim (2006)

    Observa-se na Figura 4 o somatrio do produto dos coeficientes pelas amostras do sinal

    de entrada e o bloco corresponde um atraso unitrio.

    2.4ALGORITMOS ADAPTATIVOS

    A filtragem de sinais utilizando algoritmos adaptativos aplicada em muitos problemas

    encontrados em processamento digital de sinais. Conforme Ruch Junior (2006) uma das

    aplicaes onde a filtragem adaptativa tem permitido resultados adequados no cancelamento

    de eco acstico, que causado pela reflexo do som. O eco acstico ocorre quando uma onda

    sonora refletida de volta a fonte, e alm deste retorno direto, tambm recebido outra verso

    do som distorcido por uma superfcie.

    Outras aplicaes dos algoritmos adaptativos so: Identificao de sistemas (COSTA;

    CASTELLO; ROCHINHA, 2001) e controle ativo de rudo e de vibraes (GONTIJO, 2006).

    Conforme Haykin (2000 apud DEMETRI, 2009) os algoritmos adaptativos possuem

    algumas caractersticas que so consideradas em sua avaliao:

    Velocidade de convergncia: o nmero de iteraes que um filtro adaptativo

    necessita para operar em regime permanente.

    Desajuste: uma medida quantitativa do erro em regime permanente, esta

    medida obtida quando comparada com uma soluo tima.

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    20/52

    20

    Rastreamento: mede a capacidade de um algoritmo de rastrear variaes

    estticas em ambientes no-estacionrios.

    Robustez: quando distrbios com pequena energia resultam em pequenos errosde estimao, o filtro considerado robusto.

    Complexidade computacional: esta complexidade est associada diretamente

    com a quantidade de operaes aritmticas e a quantidade de memria requerida

    pelo algoritmo.

    Robustez numrica: a sensibilidade do algoritmo com erros causados pela

    implementao, considerando a aritmtica de preciso finita e quantizao dos

    valores de entrada.

    De acordo com Almeida (2004) os principais algoritmos adaptativos usados na literatura

    so:Least Mean Square(LMS),Normalized-LMS(NLMS),Recursive Least Square(RLS) e

    Affine Projetion (APA). Em aplicaes prticas mais comum o uso do LMS, devido a sua

    baixa complexidade computacional e fcil implementao. Porm, dos quatro algoritmos

    citados, o que possui a convergncia mais lenta e suscetvel energia do sinal de entrada.

    J o algoritmo NLMS mais robusto que o LMS devido a normalizao da energia do sinal de

    entrada.

    Alm desses algoritmos que possuem uma baixa complexidade computacional, h

    outras alternativas, por exemplo: o algoritmo RLS e o APA. Conforme Almeida (2004), o

    algoritmo RLS apresenta uma maior robustez disperso de valores da matriz de correlao de

    entrada. O algoritmo APA apresenta uma soluo atrativa para a reduo de efeitos de

    correlao do sinal de entrada sobre o processo de adaptao. A implementao deste algoritmo

    considerando um custo computacional reduzido conhecida porfast affine projection algorithm(GAY; TAVATHIA, 1995).

    Na sequncia sero apresentados os algoritmos LMS, NLMS, RLS e APA. Tambm

    ser realizada uma comparao entre tais algoritmos considerando complexidade

    computacional e erro em regime.

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    21/52

    21

    2.4.1Algoritmo LMS

    O LMS um algoritmo originalmente proposto por Widrow e Hoff (1960). Uma de suas

    caractersticas mais importantes e que justifica a sua utilizao na maior parte das aplicaes

    prticas, a baixa complexidade computacional e facilidade de implementao (HAYKIN,

    2002).

    Conforme Haykin (2002), as principais caractersticas do LMS so:

    1. Baixa complexidade;

    2. Velocidade de convergncia lenta;

    3.

    Depende da potncia do sinal de entrada. O algoritmo ter um tempo de

    convergncia maior caso a entrada tenha uma baixa potncia;

    Conforme Farhang-Boroujeny (2013), para implementar o algoritmo LMS deve-se

    obedecer algumas condies e executar uma determinada sequncia de passos.

    Condies para implementar o algoritmo LMS:

    O filtro deve ter como entrada:o Vetor de coeficientes, dado por w(n).

    o Vetor de entrada, dado por x(n).

    o Sada desejada, dada por d(n).

    O filtro deve ter como sada:

    o Sada do filtro, dada por y(n).

    o Vetor de coeficientes atualizado, dado por w(n+1).

    Passos para implementao do algoritmo LMS:

    1. Filtragem:

    [] [] [] Equao 2

    2. Estimao do erro:

    [] [] [] Equao 3

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    22/52

    22

    3. Adaptao do vetor de coeficientes:

    [ + 1] [] + 2 [] [] Equao 4A adaptao do vetor de coeficientes dada pela Equao 4 que se origina do algoritmo

    do passo descendente, e foi adotado para o algoritmo LMS. Nesta equao o utilizado como

    passo de adaptao, que necessrio para garantir a convergncia do algoritmo (HAYKIN,

    2001 apud RUCH, 2006). Os coeficientes adaptveis do filtro so dados pelo smbolo . NasEquaes 3 e 4 o smbolo o erro estimado enquanto (Equao 2) o sinal desejado.

    Para que o algoritmo LMS convirja deve-se escolher de forma criteriosa o valor do passode adaptao , dado que este responsvel pela velocidade no qual o sistema ir convergir e

    tambm pelo erro em regime permanente. Seu valor inversamente proporcional ao nmero de

    iteraes, ou seja, quanto menor o valor de so necessrias mais iteraes para obter um

    resultado satisfatrio. Em regime permanente o erro diretamente proporcional ao passo de

    adaptao, se o passo aumenta, logo, o erro vai aumentar, assim como se o passo pequeno, o

    erro tende a diminuir (MANOLAKIS; INGLE; KOGON, 2005).

    2.4.2Algoritmo NLMS

    O algoritmo adaptativo NLMS uma forma modificada do algoritmo LMS, porm, o

    NLMS resolve a principal desvantagem existente no LMS, ser suscetvel a energia do sinal de

    entrada. A soluo consiste em normalizar o vetor de coeficientes utilizando a energia dos sinais

    de entrada (MANOLAKIS; INGLE; KOGON, 2005).

    As principais caractersticas do algoritmo NLMS so (HAYKIN, 2002):

    1. Baixa complexidade quando comparado outros algoritmos na literatura,

    porm, ligeiramente mais complexo que o LMS;

    2. Converge mais rapidamente que o algoritmo LMS;

    3. Por normalizar a entrada do sinal ele tem imunidade s alteraes da energia do

    sinal de entrada;

    4. Ao utilizar sinais de entrada correlacionados, assim como o algoritmo LMS, tem

    uma taxa de convergncia mais baixa.

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    23/52

    23

    Conforme Farhang-Boroujeny (2013), para implementar o algoritmo NLMS deve-se

    obedecer algumas condies e executar uma sequncia de passos.

    O filtro deve ter como entrada:

    o Vetor de coeficientes, dado por w(n).

    o Vetor de entrada, dado por x(n).

    o Sada desejada, dada por d(n).

    O filtro deve ter como sada:

    o Sada do filtro, dada por y(n).

    o Vetor de coeficientes atualizado, dado por w(n+1).

    Passos para implementao do algoritmo NLMS:

    1. Filtragem:

    [] [] [] Equao 5

    2. Estimao do erro:

    [] [] [] Equao 6

    3. Adaptao do vetor de coeficientes:

    [ + 1] [] + [] [] + [] []Equao 7

    Na equao 7 os termos

    e

    so constantes utilizadas no clculo do passo de adaptao.

    A principal diferena com o algoritmo LMS vista na Equao 7, em que h a normalizao

    do vetor de coeficientes utilizando a energia do sinal de entrada. Devido a esta normalizao, o

    algoritmo NLMS obtem-se um ganho considervel na velocidade de convergncia, quando

    comparado ao LMS. Como o objetivo da normalizao resolver o problema da energia do

    sinal de entrada. O passo de adaptao neste algoritmo inversamente proporcional a essa

    energia, fazendo que os coeficientes utilizados no passo de adaptao aumentem quando h

    sinais de pouca energia, o que gera um ganho na velocidade de convergncia (HAYKIN, 2002).

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    24/52

    24

    2.4.3Algoritmo RLS

    O RLS um algoritmo que calcula recursivamente os coeficientes de um filtro, de forma

    que os coeficientes encontrados sigam a abordagem dos mnimos quadrados. O algoritmo RLS

    conhecido pela sua excelente velocidade de convergncia, mas isso alcanando s custas de

    um sistema computacional mais complexo e com problemas de estabilidade (DHIMAN;

    AHMAD; GULIA, 2013).

    De acordo com Hayes (1996), a escolha de ter coeficientes que minimizem o valor

    quadrtico mnimo do erro, tem um contraste com outros algoritmos tais como o LMS, que visa

    reduzir o erro quadrado mdio. Dada esta escolha do algoritmo RLS, na sua derivao, os sinaisde entrada so considerados determinsticos2, enquanto no algoritmo LMS e similares, so

    considerados estocsticos3. Quando comparado ao LMS que provm de uma baixa

    complexidade computacional, o algoritmo RLS tem uma convergncia extremamente mais

    rpida, porm, sua complexidade superior (HAYES, 1996).

    As principais caractersticas do algoritmo RLS so (FARHANG-BOROUJENY, 2013):

    1. Alta complexidade quando comparado com uma grande parte dos algoritmos na

    literatura;

    2. Altssima velocidade de convergncia;

    3. O sinal de erro e o peso do filtro so requerimentos que levam a maiores

    exigncias de memria devido a utilizar amostras anteriores do sinal de sada;

    4. Na escolha da constante , quanto menor ela for mais ela faz com que o filtrofique mais sensvel para amostras recentes, na prtica este valor estabelecido

    entre 0.98 e 1.

    Conforme Farhang-Boroujeny (2013), para implementar o algoritmo RLS deve-se

    obedecer algumas condies e executar uma sequncia de passos.

    2Na rea de processamento de sinais, um sinal determinstico um sinal que pode ser descrito unicamente

    por uma expresso matemticas.3Diferente de sinais determinsticos, o estocstico regido pela imprevisibilidade, um sinal que varia notempo ou espao aleatoriamente.

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    25/52

    25

    O filtro deve ter como entrada:

    o Vetor de coeficientes, dado por ( 1).o

    Vetor de entrada, dado por x(n).o Sada desejada, dada por d(n).

    o Matriz dada por ( 1).o Constante lambda escolhida, dada por .

    O filtro deve ter como sada:

    o Vetor de coeficientes, dado por ().o Vetor de sada do filtro, dado por ().o

    A matriz atualizada ().Passos para implementao do algoritmo RLS:

    1. Computao do ganho do filtro:

    () ( 1)() Equao 8

    () () + ()()Equao 9

    2. Filtragem:

    () ( 1) () Equao 10

    3. Estimao do erro:

    () () () Equao 114. Adaptao do vetor de coeficientes:

    () ( 1)+ () () Equao 12

    5. Atualizao da matriz ():

    () (( 1) ()[()( 1)]) Equao 13

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    26/52

    26

    Na Equao 13, o smbolo uma constante positiva e pequena que um pouco menordo que 1. As Equaes 8 e 9 so vetores de ganho intermedirio utilizadas para calcular os pesos

    dos coeficientes do filtro. A sada do filtro calculada utilizando o peso dos coeficientes das

    iteraes acima e do vetor de entrada atual.

    2.4.4Algoritmo APA

    O algoritmo APA uma generalizao do algoritmo NLMS. Sua primeira

    implementao foi por Yamada et al (1982) para melhorar a velocidade de convergncia dosalgoritmos adaptativos. Cada atualizao dos coeficientes do algoritmo NLMS visualizada

    como uma dimenso na projeo afim. Sua dimenso diretamente proporcional velocidade

    de convergncia do vetor dos coeficientes, e tambm sua complexidade computacional, sendo

    assim quanto mais dimenses, mais rpido o sistema ir convergir, mas para isso a sua

    complexidade computacional aumenta (GAY; TAVATHIA, 2000).

    As principais caractersticas do algoritmo APA so (ALMEIDA, 2004):

    1. Reduz o tempo de convergncia descorrelacionando as amostras do sinal de

    excitao;

    2. Velocidade de convergncia independe da energia do sinal de excitao;

    3. Faz uma colinearidade de relaes entre pontos que devem estar na mesma linha.

    Conforme Farhang-Boroujeny (2013), para implementar o algoritmo APA deve-se

    obedecer algumas condies e executar uma sequncia de passos.

    O filtro deve ter como entrada:

    o Vetor de coeficientes, dado por w(n).

    o Vetor de entrada, dado por x(n) representada na equao 15.

    o Sada desejada, dada por d(n) representada na equao 17.

    O filtro deve ter como sada:

    o Sada do filtro, dada por y(n).

    o

    Vetor de coeficientes atualizado, dado por w(n+1).

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    27/52

    27

    Passos para implementao do algoritmo APA:

    6. Filtragem:

    [] [] [] Equao 14

    7. Estimao do erro:

    [] [] [] Equao 15

    8. Adaptao do vetor de coeficientes:

    [ + 1] [] + [] (() ()+ ) [] Equao 16

    Conforme foi dito anteriormente as Equaes 14, 15 e 16 demonstram a semelhana do

    algoritmo APA com o algoritmo NLMS, com suas diferenas na parte de atualizao dos

    coeficientes. Na sequncia apresentada uma comparao entre os algoritmos apresentados

    considerando o valor do erro quadrtico mdio em regime permanente, complexidadecomputacional e estabilidade.

    2.4.5Comparao dos Algoritmos Analisados

    Tabela 1. Comparao entre os algoritmos (DHIMAN; AHMAD; GULIA, 2013)

    Algoritmo MSE Complexidade Computacional

    LMS

    1.510 2N+1

    NLMS 9.0103 3N+1RLS 6.2103 4NAPA 6.0103 5N

    A Tabela 1 mostra uma comparao dos algoritmos analisados numa aplicao de

    identificao, considerando um filtro digital de ordem N (DHIMAN; AHMAD; GULIA, 2013).

    Observa-se na Tabela 1 que o algoritmo NLMS um bom candidato implementao devido

    a ter um pequeno erro quadrtico mdio (MSE), facilidade de implementao e uma

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    28/52

    28

    complexidade mdia. Deve-se comentar que o MSE equivale ao desajuste apresentado na seo

    2.4.

    2.5FPGA

    O FPGA um dispositivo lgico com hardware reconfigurvel, criado como uma matriz

    de blocos lgicos e uma interconexo programvel. Geralmente estes dispositivos so

    programados utilizando linguagens de descrio de hardware (HDL), por exemplo: Linguagem

    de descrio de hardware VHSIC (VHDL) e Verilog. Ambas as linguagens so amplamente

    utilizadas para projetar e fazer a verificao de circuitos digitais em um nvel de abstrao entre

    registradores de hardware. Apesar de sua similaridade com circuitos integrados de aplicaoespecifica (ASIC), o FPGA tem um menor custo quando produzido em pequena escala com a

    vantagem de ser reprogramadas diversas vezes (HUFFMIRE et al., 2010).

    Normalmente, a arquitetura do FPGA composta por: Blocos lgicos programveis

    (CLBs), circuitos de entrada e sada e canais de roteamento. Os CLBs contem lgica suficiente

    para criar pequenas maquinas de estados. Alm de uma grande quantidade de lgica, os blocos

    so alocados em forma de matriz e so interconectados por matrizes de interconexo (Switch

    Matrix). Estas matrizes utilizam trilhas para conectar os CLBs a blocos de entrada e sada.

    Geralmente a conexo entre as chaves dessa matriz estabelecida por programao interna das

    clulas de memria esttica (BETZ, 2015).

    As principais empresas fabricantes de FPGA so Altera e Xilinx que respondem por

    aproximadamente 80% desse mercado, conforme Bober (2008). Como exemplo de outras

    empresas fabricantes de FPGA tem-se:Lattice Semiconductors,Actel, Silicon Blue Technlogies

    eAchronix.

    As principais vantagens de se utilizar um FPGA so (HUFFMIRE et al., 2010):

    Simplicidade para projetar em nvel de portas lgicas (no h projeto em nvel

    de transistor);

    reprogramvel, o que permite corrigir erros de projeto assim como um

    software.

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    29/52

    29

    Tem um tempo para o mercado baixo sem atraso na manufatura.

    H tambm algumas desvantagens tais como: um alto preo de custo por unidade, baixo

    desempenho quando comparado a sistemas digitais feitos para aplicaes especificas e tambm

    tem um consumo eltrico alto.

    2.6VHDL

    Conforme Pereira (2008), VHDL uma linguagem de descrio de hardware que

    permite o projeto de circuitos lgicos digitais atravs de uma linguagem semelhante s de

    programao de alto nvel. Na descrio definido o comportamento do hardware e o modo

    com o qual ele deve operar. Aps descrito, o sintetizador desta linguagem ir reconhecer como

    o hardware dever operar, suas entradas e sadas, sinais internos para ligao de componentes

    e a lgica necessria para seu funcionamento.

    O VHDL tem uma grande vantagem em ser utilizado devido a sua padronizao e por

    ser uma linguagem que tem independncia de fornecedores e de tecnologias, alm disso tambm

    porttil e reutilizvel. Uma vez que o cdigo em VHDL escrito ele pode ser usado para

    implementar o circuito em dispositivos programveis, tais como FPGAs, ASICs e Complex

    Programmable Logic Devices (CPLDs) (PEDRONI, 2004).

    Para Mendona e Zelenovsky (2004 apud PEREIRA, 2008) o uso de VHDL apresenta

    as seguintes vantagens:

    1. Portabilidade: Ferramentas de desenvolvimento para FPGA e a confeco de

    VLSIs (integrao em altssima escala) utilizam VHDL.

    2. Flexibilidade: Alteraes necessrias para o projeto podem ser realizadas no

    cdigo fonte.

    3. Interface de alto nvel com a eletrnica: Ao utilizar VHDL o nvel de

    eletrnica abstrado, visto que no h contato com os elementos da eletrnica

    digital.

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    30/52

    30

    2.7PLACA DE DESENVOLVIMENTO

    A placa necessria para o projeto deste TCC requer conversores digitais para analgicos

    assim como analgicos para digitais, comunicao com o computador e um desempenho

    aceitvel para execuo em paralelo (ALTERA, 2012). Conforme disponibilidade do

    Laboratrio de Sistemas Embarcados e Distribudos (LEDS) da UNIVALI, foi escolhido a

    placa DE2-C35, que contm os requisitos necessrios para a implementao de algoritmos de

    cancelamento de eco, proposto neste trabalho. O FPGA usado nesta placa o EP2C35F672 da

    famlia Cyclone II da ALTERA que contm 2100 clulas lgicas (ALTERA, 2008). As

    principais caractersticas da placa DE2-C35 so (ALTERA, 2012):

    512-Kbyte SRAM.

    8-Mbyte SDRAM.

    4-Mbyte Flash memory (1 Mbyte on some boards).

    50-MHz oscillator and 27-MHz oscillator for clock sources.

    24-bit CD-quality audio CODEC with line-in, line-out, and microphone-in jacks.

    USB Host/Slave Controller with USB type A and type B connectors.

    RS-232 transceiver and 9-pin connector.

    PS/2 mouse/keyboard connector.

    IrDA transceiver.

    Two 40-pin Expansion Headers with diode protection.

    2.8FERRAMENTAS DE DESENVOLVIMENTO

    Na implementao dos algoritmos para cancelamento de eco sero utilizadas algumas

    ferramentas de software, por exemplo, Matlab, Quartus II, Modelsim e Ocenaudio. O Matlab

    usado para avaliao dos algoritmos considerados. As ferramentas Quartus II e Modelsim so

    usadas na implementao (VHDL) e simulao dos algoritmos selecionados. J o Ocenaudio

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    31/52

    31

    usado para avaliar a velocidade de convergncia dos algoritmos considerando sinais reais

    adquiridos durante uma conversa telefnica. Na sequncia so apresentados mais detalhes das

    ferramentas consideradas no desenvolvimento do TTC.

    2.8.1Matlab

    Matlab um software voltado para resolver clculos matemticos complexos e tem um

    timo desempenho para a execuo destes clculos. O software utiliza uma linguagem prpria

    conhecida como linguagem MATLAB que tem suas similaridades a C e Java, porm, os cdigos

    so feitos na forma de scripts. A ferramenta permite uma completa analise numrica, clculos

    com matrizes, plotagem de grficos e muitas outras partes da rea matemtica voltada aoclculo numrico (MATHWORKS, 2015).

    Em processamento digital de sinais muito utilizado o Matlab didaticamente devido

    facilidade para implementao nesta ferramenta. Por exemplo, um cdigo que em C necessitaria

    de muitas linhas pode ser feito da mesma forma em Matlab com maior facilidade e utilizando

    menos linhas de cdigo. Alm da sua baixa complexidade em implementao, o software dispe

    de outras facilidades para estar implementando filtros digitais, como facilidade para ler e

    escrever arquivos de diferentes formatos, alocao dinmica de vetores e matrizes, plotagem

    dos resultados adquiridos, entre outros (MATHWORKS, 2015).

    2.8.2Quartus II

    Quartus II um software desenvolvido pela Altera que permite a sntese e anlise de

    projetos utilizando linguagem de descrio de hardware, voltado para realizar projetos com

    dispositivos lgicos programveis. O Quartus II uma ferramenta completa, multiplataforma e

    com um ambiente para projetar sistemas em chips programveis. Esta ferramenta permite ao

    desenvolvedor fazer a anlise temporal, simular a reao do sistema e compar-la com o

    esperado, examinar diagramas RTL e realizar configuraes para o dispositivo alvo (ALTERA,

    2015).

    A linguagem principal utilizada o VHDL, porm, alm da parte de programao, o

    software tambm permite realizar o desenho esquemtico do projeto. Em verses anteriores

    permitia-se a criao de formas de ondas para anlise dos resultados, porm, agora utilizadoo ModelSim (ALTERA, 2015).

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    32/52

    32

    2.8.3ModelSim

    O ModelSim um software desenvolvido pela Mentor Graphics que vem em conjunto

    com o Quartus da Altera ou o ISE da Xilinx. Este software tem como nfase a simulao da

    descrio do hardware utilizando as linguagens disponveis como VHDL, Verilog e SystemC

    (ALTERA, 2015).

    Para realizar as simulaes, feito um arquivo testbenchque contm os estmulos para

    as entradas do circuito em teste. A simulao feita com base em um resultado esperado e

    comparado com o resultado obtido, conforme as informaes da sada so apresentadas ao

    projetista, podendo ser avaliado e corrigido o funcionamento do circuito (ALTERA, 2015).

    2.8.4Ocenaudio

    O Ocenaudio um software que surgiu de uma necessidade no laboratrio LINSE da

    Universidade Federal de Santa Catarina e, um editor de udio multiplataforma. O Ocenaudio

    possui diversas funes que podem ser utilizadas no desenvolvimento de um sistema para

    processamento digital de sinais de udio, por exemplo, gerao de sinais de udio, mudana das

    frequncias de amostragem, anlise da transformada de Fourier, entre outros. (LINSE, 2015).O Ocenaudio permite analisar os sinais de udio no domnio do tempo ou no domnio da

    frequncia. No domnio do tempo pode-se analisar a atenuao entre dois sinais, j no domnio

    da frequncia pode-se obter o espectrograma de um sinal de udio.

    2.9TRABALHOS RELACIONADOS

    Nesta seo so analisados trabalhos que utilizam algoritmos adaptativos em FPGA.

    So comparados trabalhos que so mais recentes e que tambm utilizam o algoritmo LMS esimilares.

    No primeiro trabalho Menin (2011) trata da implementao de algoritmos adaptativos

    aplicados a reduo ativa de rudo acstico. O trabalho utiliza de algoritmos tais como LMS e

    FxLMS (LMS a referncias filtradas) para atenuar rudos peridicos de frequncia

    compreendida desde 50Hz at 200 Hz. Neste trabalho Menin (2011) conseguiu implementar o

    algoritmo FxLMS com apenas 2 coeficientes, ocupando na ordem de 98% das unidades lgicas

    e menos que 1% de memria do dispositivo EP3C16F484.

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    33/52

    33

    No segundo trabalho Saggin (2011) mostra a implementao de um cancelador de eco

    em um dispositivo FPGA utilizando a linguagem VHDL. Nesse trabalho foram considerados

    os algoritmos LMS e NLMS. Foi obtido um total de 19 canais de cancelamento de eco,considerando um filtro digital de 255 coeficientes, um algoritmo NLMS e o dispositivo alvo

    um Cyclone II EP2C35F672C6.

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    34/52

    34

    3DESENVOLVIMENTO

    3.1

    VISO GERAL DO SISTEMA

    O diagrama de blocos do sistema de cancelamento de eco proposto neste TTC

    representado na Figura 5. Os principais componentes de hardware de tal sistema so: a placa

    DE2-C35 da ALTERA e um computador pessoal.

    Figura 5. Diagrama de blocos do sistema proposto.

    Observa-se na Figura 5 que o algoritmo para cancelamento de eco implementado no

    dispositivo Cyclone II - C35 e que os principais blocos do cancelador de eco so: algoritmo

    adaptativo e filtro digital (W).

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    35/52

    35

    3.2IMPLEMENTAO DOS ALGORITMOS

    Nesta seo apresentada a implementao de algoritmos adaptativos em MATLAB, e

    posteriormente em VHDL.

    3.2.1Implementaes em MATLAB

    Inicialmente, considerada a aplicao de identificao de sistemas, nessa aplicao

    possvel analisar mais facilmente o funcionamento do algoritmo. A partir disso, foi avaliado o

    funcionamento, particularidades e o desempenho dos principais algoritmos adaptativo (LMS,

    NLMS e RLS), apresentados na seo 2.4. Na aplicao de identificao, os coeficientes

    resultantes do filtro digital (W) modelam o comportamento do sistema desconhecido, aps a

    convergncia do algoritmo adaptativo. Normalmente, utiliza-se como entrada um rudo branco

    para excitar o sistema desconhecido. A Figura 6 mostra o diagrama de blocos da aplicao de

    algoritmos adaptativos na identificao de um sistema.

    Figura 6. Sistema de identificao de uma planta.

    Para avaliar o desempenho dos principais algoritmos adaptativos, apresentados na seo

    2.4, considerado como sistema desconhecido (planta) um filtro FIR passa-baixas com uma

    frequncia de corte de 1000Hz, contendo 50 coeficientes. A Figura 7 mostra o comportamento

    do sinal de erro (resduo) para uma entrada do tipo rudo branco com 4000 amostras.

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    36/52

    36

    Figura 7. Comparao entre LMS, NLMS e RLS.

    A tabela 2 mostra os resultados obtidos do nmero de iteraes e do tempo de execuo

    para a convergncia dos algoritmos considerados.

    Tabela 2. Comparao dos resultados obtidos em MATLAB

    Algoritmo Nmero de iteraes paraconvergir

    Tempo de execuo de todasiteraes

    LMS 700 0.094sNLMS 180 0.121sRLS 90 0.927sObserva-se pelos resultados mostrados na Figura 7 e Tabela 2 que o LMS o mais lento

    para convergir, o RLS o mais rpido e o NLMS o intermedirio. Entretanto, conforme

    apresentado na seo 2.4 o algoritmo RLS possui a maior complexidade computacional. Desta

    forma ser considerado para implementao em VHDL apenas o algoritmo NLMS.

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    37/52

    37

    Na sequncia implementado e avaliado o desempenho do algoritmo NLMS,

    considerando aplicao de cancelamento de eco de linha (LEC). A Figura 8 mostra o

    desempenho do LEC considerando sinais reais defar, neare erro (resduo) resultante.

    Figura 8. Resultado do LEC em MATLAB.

    A Figura 9 mostra o desempenho do LEC considerando a atenuao obtida entre o near

    e o eco:

    Figura 9. Comparao do nearcom o erro.

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    38/52

    38

    Observa-se na Figura 9 a convergncia do algoritmo e que a reduo de eco obtida entre

    os sinais neare erro da ordem de 24dB. Na sequncia apresentada a implementao do

    algoritmo do LEC em VHDL.

    3.2.2Implementaes em VHDL

    Devido a maior complexidade para implementar algoritmos em VHDL que em

    MATLAB a implementao do LEC ser realizada considerando as seguintes etapas:

    Gerar um testbenchpara ler/escrever os arquivos de entrada/sada, bem como

    chamar/instanciar o algoritmo a ser avaliado;

    Implementao de um filtro digital do tipo FIR;

    Implementao do algoritmo NLMS e, Implementao do LEC.

    3.2.3Testbench

    O testbench um arquivo que permite simular o comportamento de um sistema, atravs

    de sinais como estmulos (ALTERA, 2015). Neste arquivo foram implementados doisprocessos: Leitura e Escrita. Ambos os processos operam com nmeros inteiros que so

    lidos/escritos como STD_LOGIC_VECTOR de 16 bits.

    3.2.4Filtro FIR em VHDL

    O filtro FIR implementado em VHDL utilizando os seguintes mdulos: mquina de

    estados finita, memria RAM, ROM e o arquivo de testbenchpara testes. A mquina de estados

    controla o funcionamento do filtro, a RAM armazena o vetor de amostras e a ROM o decoeficientes.

    A mquina possui 7 estados, e seu diagrama mostrado na Figura 10:

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    39/52

    39

    Figura 10. Diagrama de estados do Filtro FIR.

    Uma breve descrio das atividades realizadas em cada estado apresentada na

    sequncia:

    1. S0: Inicializa variveis.

    2. S1: Limpa variveis utilizadas para acumuladores e zera os ponteiros, aguarda

    um estimulo de um sinal enablepara avanar para o prximo estado.

    3. S2: Escreve a amostra na memria.

    4. S3: Realiza a multiplicao da amostra pelo coeficiente e adiciona ao

    acumulador.

    5. S4: Atualiza os endereos das memrias, no caso da RAM utilizado um

    ponteiro circular. Retorna ao estado S2 caso ainda no tenha lido todos os

    coeficientes.

    6. S5: Envia o resultado do acumulador para a sada do filtro e sinaliza umaflag de

    que o dado est pronto.

    7. S6: Realiza o deslocamento do ponteiro circular utilizado para a memria RAM.

    O filtro implementado do tipo FIR passa-baixas, com frequncia de corte de 1000Hz

    e 50 coeficientes. A sada do filtro mostrada na Figura 11 considerando na entrada umsweepde 100Hz at 3400Hz. A escolha do sinal sweep justificada devido a sua amplitude

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    40/52

    40

    permanecer constante enquanto h uma variao na frequncia e, devido a isso, possvel de

    identificar melhor o sinal filtrado resultante.

    Figura 11. Entrada e sada do Filtro FIR.

    Os resultados da implementao do Filtro FIR no dispositivo EP2C35F672C6 so

    resumidos na Tabela 3:

    Tabela 3. Relatrio de compilao do Filtro FIR.

    Elementos lgicos Bits de memria utilizado Frequncia mxima de operao

    247/33.216 16.384/483.840 316/200 MHz

    Observa-se na Tabela 3 que o fator limitante para a implementao do FIR o recurso

    de memria. Portanto, pode-se obter teoricamente at 29 canais do Filtro FIR no dispositivo

    alvo. Pode-se perceber ainda que a frequncia mxima de operao maior que a suportada

    pelo dispositivo.

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    41/52

    41

    3.2.5Algoritmo NLMS em VHDL

    O algoritmo NLMS implementado em VHDL considerando a mesma estratgia do

    filtro FIR, mostrada na seo 3.3.4. Ser utilizada a mquina de estados de controle do FIR

    com algumas alteraes, por exemplo, o acrscimo das seguintes funes: clculo da energia

    das amostras, bloco de diviso, clculo do erro e atualizaes dos coeficientes. Essas alteraes

    so apresentadas na sequncia.

    O clculo da energia do vetor de amostras realizado com o somatrio dos quadrados

    das amostras armazenadas na RAM (conforme mostrado na equao 7, da seo 2.4.2,). Para

    obter um melhor desempenho do algoritmo esse clculo realizado no estado da convoluo(S3).

    A diviso implementada utilizando a tcnica de subtraes sucessivas. Tal tcnica

    detalhada no pseudocdigo mostrado na Figura 12:

    Figura 12. Pseudocdigo da diviso.

    No clculo do erro obtida a diferena do valor desejado (planta) pela sada do filtro, e

    posteriormente multiplicado pelo resultado da diviso. A atualizao dos coeficientes ocorre

    conforme a equao 7.

    A Figura 13 mostra a parte mquina de estados que controla algoritmo NLMS:

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    42/52

    42

    Figura 13. Mquina de estados do NLMS.

    1.

    O clculo da energia realizado no estado S3 do Filtro FIR.

    2. O bloco de diviso realizado nos blocos: q0, q1 e q2.

    3. O clculo do erro realizado nos blocos: q3 e q4.

    4. A atualizaes dos coeficientes realizado nos blocos: q5, q6 e q7.

    5. O estado final q8 externa o erro encontrado e sinaliza que o dado est pronto.

    O filtro adaptativo foi implementado considerando a aplicao de identificao de

    sistemas, mostrada anteriormente, na Figura 6. O sistema desconhecido (planta) utilizado para

    validar o algoritmo corresponde a 50 coeficientes de um filtro FIR. A Figura 14 mostra o sinal

    de erro resultante, considerando na entrada um rudo branco:

    Figura 14. Erro resultante do NLMS.

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    43/52

    43

    Os resultados da implementao do algoritmo NLMS no dispositivo EP2C35F672C6

    so resumidos na Tabela 4:

    Tabela 4. Relatrio de compilao do Filtro Adaptativo com NLMS.

    Elementos lgicos Bits de memria utilizado Frequncia mxima de operao

    1.116/33.216 32.768/483.840 316/200 MHz

    Observa-se na Tabela 4 que o fator limitante para a implementao do NLMS o recurso

    de memria. Portanto, pode-se obter teoricamente at 14 canais com o NLMS no dispositivo

    alvo. Pode-se perceber ainda que a frequncia mxima de operao maior que a suportada

    pelo dispositivo.

    3.2.6LEC em VHDL

    Validado o funcionamento da implementao do NLMS em VHDL na identificao de

    sistemas o prximo passo utiliz-lo na aplicao de cancelamento de eco de linha (LEC). As

    principais alteraes realizadas para atuar nessa nova aplicao so: retirar a planta utilizada e

    substituir sua sada pelo correspondente sinal de near, substituir a entrada de rudo branco pelo

    equivalente sinal defar. Os sinais defare nearso quantizados em 16 bits. Deve-se comentarainda que com a remoo do sistema desconhecido (planta com 50 coeficientes) recursos de

    memria so disponibilizados permitindo a implementao de um maior nmero de canais de

    cancelamento de eco. Os resultados da implementao do LEC com o NLMS no dispositivo

    EP2C35F672C6, so resumidos na Tabela 5:

    Tabela 5. Relatrio de compilao do LEC com NLMS.

    Elementos lgicos Bits de memria utilizado Frequncia mxima de operao

    870/33.216 16.384/483.840 316/200 MHz

    Observa-se na Tabela 5 que o fator limitante para a implementao do LEC o tamanho

    da memria. Portanto, pode-se obter teoricamente at 29 canais do LEC no dispositivo alvo.

    Pode-se perceber ainda que a frequncia mxima de operao maior que a suportada pelo

    dispositivo. O resultado da simulao do LEC mostrado na Figura 15, considerando 20

    coeficientes do filtro adaptativo e sinais reais defar/near, com 8000 amostras.

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    44/52

    44

    Figura 15. Simulao do LEC.

    3.2.7

    Integrao do LEC na placa DE2-C35

    Inicialmente, para realizar a integrao do LEC na placa DE2-C35 utiliza-se um

    programa de loopback, definido como audio_codec. Tal programa executa as seguintes

    funes: configura os parmetros (frequncia de amostragem, ganho, etc) do Codec WM8731,

    l uma amostra do conversor AD e a envia de volta para o DA. Desta forma pode-se avaliar o

    funcionamento desse programa lendo na sada DA o sinal injetado no AD. De posse de tal

    programa adiciona-se o algoritmo do LEC para receber as entradas neare fare enviar para a

    sada o sinal de erro. Deve-se ainda gerar os sinais de clocknecessrios a integrao do LEC

    via mdulos PLL (Phase-locked loop). A Figura 16 mostra o diagrama de blocos da integrao

    do LEC na placa DE2-C35.

    Figura 16. Diagrama RLT do LEC em FPGA.

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    45/52

    45

    Observa-se na Figura 16 o bloco intitulado de FIRADAPTATIVO:DUT2 que

    representa o filtro adaptativo, nele realizado os clculos descritos na seo 3.2.5. Este bloco

    utiliza de duas entradas de 16 bits que so processadas gerando uma sada onde representadoo erro do filtro adaptativo.

    Alm do filtro adaptativo, observa-se o bloco responsvel pela converso AD e DA,

    intitulado de audio_codec_controller. Este bloco recebe como entradas: a sada do filtro

    adaptativo e uma realimentao de um dos seus canais de sada. Observa-se ainda os mdulos

    PLL para os sinais de clockdo LEC, que so responsveis por fazer divises ou multiplicaes

    do sinal do clock, de modo que os blocos operem em diferentes frequncias.

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    46/52

    46

    4RESULTADOS ALCANADOS

    Neste capitulo so apresentados os resultados da implementao do cancelador de eco

    em FPGA. Inicialmente, so mostrados os resultados alcanados conforme os relatrios do

    Quartus II e, na sequncia, so apresentados os resultados do cancelador de eco obtido.

    4.1RELATRIOS DO QUARTUS

    O software QUARTUS II gera um relatrio de ocupao dos recursos do dispositivo

    alvo (EP2C35F672C6), ao se compilar um projeto. A Tabela 6 mostra o resultado obtido para

    um canal de cancelamento de eco (LEC) integrado a placa DE2-C35. J a Tabela 7 mostra os

    resultados considerando o nmero mximo de canais (20) de LEC sintetizados na placa DE2-

    C35.

    Tabela 6. Relatrios dos recursos usados para um canal do LEC na placa DE2-C35.

    Famlia Cyclone II

    Dispositivo EP2C35F672C6

    Total de elementos lgicos 1,172/33,216 (4%)

    Total de funes combinacionais 1,129/33,216 (4%)

    Registradores lgicos dedicados 177/33,216 (< 1%)

    Total de registradores 177

    Total de pinos 62/475 (14 %)

    Total de bits de memria 16,384/483,840 (3%)

    Multiplicador embarcado de 9-bit 8/70 (11%)

    Tabela 7. Relatrios dos recursos usados para 20 canais do LEC na placa DE2-C35.

    Famlia Cyclone II

    Dispositivo EP2C35F672C6

    Total de elementos lgicos 32,314/33,216 (97%)

    Total de funes combinacionais 32,232/33,216 (97%)

    Registradores lgicos dedicados 500/33,216 ( 2%)

    Total de registradores 500

    Total de pinos 366/475 (77 %)

    Total de bits de memria 327,680/483,840 (68%)

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    47/52

    47

    Multiplicador embarcado de 9-bit 70/70 (100%)

    Observa-se na Tabelas 6 que um canal do LEC ocupou 4% dos elementos lgicos, 3%

    da memria disponvel e 11% dos multiplicadores embarcados no dispositivo. J a Tabela 7

    mostra que para sintetizar os 20 canais de LEC foram utilizados 97% dos elementos lgicos,

    68% da memria disponvel e 100% dos multiplicadores embarcados.

    4.2

    DESEMPENHO DO CANCELADOR DE ECO

    A atenuao obtida com o LEC integrado a placa DE2-C35 avaliada considerando

    sinais reais de far/near e o erro resultante. Comparando os sinais near e erro pode-se obter a

    atenuao na implementao do LEC. A Figura 17 mostra tais sinais (near na parte superior e

    erro na inferior) indicando a atuao do LEC na reduo do eco. Os parmetros de ajustes

    utilizados no LEC so passo ( = 1), tamanho do filtro (N = 255) e os sinais far/near com um

    total de 60000 amostras.

    Figura 17. Comparao do near com o erro do LEC.

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    48/52

    48

    A atenuao obtida com o software Ocenaudio destacada na Figura 17 e, da ordem

    de 25dB. Esta atenuao um resultado adequado conforme a recomendao G. 165 da ITU-T

    (1993). Tal resultado comparado com o trabalho de Saggin (2011) na Tabela 8:

    Tabela 8. Comparao dos resultados do Saggin (2011).

    Trabalho Total de canais alcanadoscom LEC NLMS

    Nmero decoeficientes

    Atenuao comsinais reais

    Rosa (2015) 20 canais 255 coeficientes ~25dB

    Saggin (2011) 19 canais 255 coeficientes ~9dB

    Observa-se na Tabela 8 que os resultados obtidos neste trabalho so relevantes (25dB

    comparado a 9dB) considerando uma implementao semelhante e, que utiliza do mesmo

    dispositivo alvo.

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    49/52

    49

    5CONSIDERAES FINAIS

    Neste trabalho apresentada a implementao de um algoritmo de cancelamento de eco

    de linha em um dispositivo FPGA. Inicialmente, so apresentados os conceitos de eco, filtragem

    adaptativa e os principais algoritmos adaptativos aplicados em cancelamento de eco, por

    exemplo, LMS, NLMS, RLS e APA. Na sequncia, esses algoritmos so implementados em

    MATLAB para a avaliao do desempenho e recursos computacionais de cada algoritmo.

    Posteriormente, escolhido o algoritmo NLMS para implementao do LEC em VHDL, no

    dispositivo FPGA EP2C35F672C6. Os principais fatores que justificam a escolha do algoritmo

    NLMS so seu desempenho e complexidade computacional. A implementao simulada noambiente MODELSIM e seu funcionamento validado na placa DE2-C35, da ALTERA. Os

    resultados apresentados mostram a possibilidade de at 20 canais de cancelamento de eco no

    dispositivo escolhido e que a atenuao obtida para o eco da ordem de 25dB.

    Como sugestes de trabalhos futuros tm-se:

    Aumentar a preciso numrica nos clculos do algoritmo adaptativo visando

    aumentar a atenuao obtida.

    Realizar otimizaes no cdigo para aumentar o nmero de canais alcanados.

    Avaliar a quantidade de canais considerando a implementao do algoritmo

    RLS.

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    50/52

    REFERNCIAS

    ALMEIDA, S. J. M. de. Anlise estatstica do comportamento de uma classe de algoritmosde projees afins. 2004. Tese (Doutorado em Cincia da Computao) - Programa de Ps-graduao em Engenharia Eltrica - UFSC, Florianpolis, SC, 2004.

    ALTERA. DE2 Development and Education Board. 2012. Disponvel em:.Acesso em: 03 jun. 2015.

    ALTERA. Quartus II Handbook Volume 1: Design and Synthesis. Disponvel em:. Acesso em:04 jun. 2015.

    ALTERA. Cyclone II Device Handbook Volume 1. 2008. Disponvel em: . Acesso em: 06 jun. 2015.

    BARBOZA, Anderson. Feedback em diversas reas do conhecimento. Disponvel em:. Acessoem: 07 dez. 2015.

    BOBER, Brian. Altera and Xilinx Report: The Battle Continues. 2008. Disponvel em:. Acesso

    em: 03 jun. 2015.

    BETZ, Vaughn. FPGA Architecture for the Challenge. Disponvel em:. Acesso em: 03 jun. 2015.

    COSTA, C. H. O.; CASTELLO, D.; ROCHINHA, F. A. Aplicao de filtros digitais emidentificao de sistemas mecnicos. VIII Congresso Nacional dos Estudantes deEngenharia Mecnica. Salvador, p. 1-2. ago. 2001.

    DAHL, M.; CLAESSON, I. Acoustic noise and echo cancelling with microphone array .Vehicular Technology, IEEE Transactions. Sucia, p. 1518-1526. ago. 2002.

    DHIMAN, Jyoti; AHMAD, Shadab; GULIA, Kuldeep. Comparison between Adaptive filterAlgorithms (LMS, NLMS and RLS). International Journal Of Science, Engineering AndTechnology Research, v. 2, n. 5, p.1100-1103, maio 2013.

    DINIZ, Paulo S. R. Adaptive filtering: algorithms and practical implementation.New Jersey:Springer Science & Business Media, 2012.

    DYBA, Roman A.; HE, Perry P.; PESSOA, Lcio F. C.. Network Echo Cancellers andFreescale Solutions Using the StarCore SC140 Core. 2004. Disponvel em:. Acesso em: 06 jul. 2015.

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    51/52

    SAGGIN, Fabrcio. Implementao de Canceladores de Eco em FPGA. Florianpolis:LINSE - UFSC, 2011.

    FARHANG-BOROUJENY, Behrouz.Adaptive filters: theory and applications. 2.ed. ReinoUnido: John Wiley & Sons, 2013.

    GAIKWAD, Suraj R.; GAIKWAD, Snehal R.; DEKATE, Kunal N. Design of FIR Filter forAudio Application. International Journal Of Emerging Trends In Engineering AndDevelopment. India, p. 126-133. out-nov. 2014. Disponvel em:. Acesso em: 01 jun. 2015.

    GAY, S. L.; TAVATHIA, S. The Fast Affine Projection Algorithm. In: Proc IEEE Int. Conf.Acoust., Speech, Signal Process. Detroit: [s.n.]. maio 1995. p. 30233026

    GAY, Steven L.; TAVATHIA, Sanjeev. The Fast Affine Projection Algorithm. Springer:Acoustics Research Department. Estados Unidos, p. 23-45. out. 2000.

    GIL, Antonio Carlos. Mtodos e tcnicas de pesquisa social. 5.ed. So Paulo: Atlas, 1999.

    GONTIJO, Walter Antnio. Implementao e avaliao de desempenho de algoritmosadaptativos aplicados em controle ativo de vibraes. 2006. 65 f. Dissertao (Mestrado emEngenharia Eltrica) - Curso de Engenharia Eltrica, Universidade Federal de Santa Catarina,Florianpolis, 2006.

    HAYES, Monson H. Statistical digital signal processing and modeling. Wiley, 1996.

    HAYKIN, S. Adaptive filter theory. 4.ed. Nova Jersey: Prentice-Hall, 2002.

    HUFFMIRE, Ted; IRVINE, Cynthia; NGUYEN, Thuy D.; LEVIN, Timothy; KASTNER,Ryan; SHERWOOD, Timothy. Handbook of FPGA Design Security. Londres: SpringerScience & Business Media, 2010.

    INTERNATIONAL TELECOMMUNICATION UNION. G.165: Echo cancellers. Paris,1993.

    KUO, Sen M.; LEE, Bob H. Real-time digital signal processing. China: John Wiley & Sons,2001.

    LINSE. Adaptive filtering and echo cancellation. 2007. Disponvel em: . Acesso em: 29 abr. 2015.

    LINSE. Sobre o Ocenaudio. Disponvel em: . Acessoem: 04 jun. 2015.

    MATHEWS, V. J. Adaptive Polynomial Filters. IEEE Signal Processing Mag. 1991.

    MATHWORKS. MATLAB Product Description. Disponvel em:

    . Acessoem: 04 jun. 2015.

  • 7/25/2019 TTC ENGENHARIA DE COMPUTAO

    52/52

    MANOLAKIS, Dimitris G.; INGLE, Vinay K.; KOGON, Stephen M. Statical and adaptivesignal processing.Norwood: Artech House, 2005.

    MARCONI, Marina de Andrade; LAKATOS, Eva Maria. Fundamentos de metodologiacientfica. 6. ed. So Paulo: Atlas, 2009.

    MENIN, Lucas Dambros. Reduo ativa do rudo acstico. 2011. 71 f. Monografia(Graduao) - Curso de Engenharia Eltrica, Universidade Federal do Rio Grande do Sul, PortoAlegre, 2011.

    NAJIM, Mohamed. Digital Filters Design for Signal and Image Processing. Estados Unidos:John Wiley & Sons, 2006.

    NIKOLIC, Jelena. Implementing a Line- Echo Canceller Using the Block Update andNLMS Algorithms on the TMS320C54x DSP. 1997. Disponvel em:. Acesso em: 06 jul. 2015.

    PEDRONI, Volnei A..Circuit design with VHDL. Londres: TLFeBOOK, 2004.

    PEREIRA, Maicon Carlos. BIP: microcontrolador bsico para o ensino de sistemasembarcados. 161 f. Trabalho de Concluso de Curso (Graduao) - Curso de Cincia daComputao, Universidade do Vale do Itaja, Itaja, 2008.

    PINTO, Nuno Jos de Moura; SALGADO, Henrique; FERREIRA, Joo Canas.Implementao de Algoritmos em FPGA para Estimao de Sinal em Sistemas pticosCoerentes. 2009. 92 f. Dissertao (Mestrado) - Curso de Mestrado Integrado em EngenhariaEletrotcnica e de Computadores, Faculdade de Engenharia da Universidade do Porto, Portugal,2009.

    RUCH JUNIOR, Conrado. Implementao de filtros adaptativos em FPGA. 2006. 64 f.Monografia (Mestrado) - Curso de Ps-graduao em Informtica, Escola de Informtica,Pelotas, 2006.

    SAMPRIT, Mohanty. Finite Impulse Response Filter Implementation Using LMSAlgorithm. 2007. 61 f. Trabalho de Concluso de Curso (Graduao) - Curso de ElectricalEngineering, Department Of Electrical Engineering National Institute Of Technology Rourkela,India, 2007.

    WIDROW, Bernard; STEARNS, Samuel D. Adaptive signal processing. Estados Unidos:Prentice-hall, 1985.

    WIDROW, Bernard; HOFF, M.E, Adaptive switching circuits. Proc. Of WESCON Conv.Rec., p. 96-140, 1960

    ZHANG, Zhaohong; SCHMER, Gunter. Performance Analysis of Line Echo CancellationImplementation Using TMS320C6201. 1998. Disponvel em: