Sie sind auf Seite 1von 52

UNIVERSIDADE DO VALE DO ITAJA

CENTRO DE CINCIAS TECNOLGICAS DA TERRA E DO MAR


CURSO DE ENGENHARIA DE COMPUTAO

IMPLEMENTAO EM VHDL DE UM ALGORITMO PARA


CANCELAMENTO DE ECO

por
Guilherme Garcia da Rosa

Itaja (SC), dezembro de 2015

UNIVERSIDADE DO VALE DO ITAJA


CENTRO DE CINCIAS TECNOLGICAS DA TERRA E DO MAR
CURSO DE ENGENHARIA DE COMPUTAO

IMPLEMENTAO EM VHDL DE UM ALGORITMO PARA


CANCELAMENTO DE ECO

rea de Processamento Digital de Sinais


por
Guilherme Garcia da Rosa

Relatrio apresentado Banca Examinadora do


Trabalho Tcnico-cientfico de Concluso de Curso
de Engenharia de Computao para anlise e
aprovao.
Orientador(a): Walter Gontijo, M. Eng.

Itaja (SC), dezembro de 2015

RESUMO
ROSA, Guilherme Garcia da. Implementao em VHDL de um algoritmo para
cancelamento de eco. Itaja, 2015. 52f. Trabalho Tcnico-cientfico de Concluso de Curso
(Graduao em Engenharia de Computao) Centro de Cincias Tecnolgicas da Terra e do
Mar, 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 uma
superfcie ou um objeto. Em redes telefnicas o eco de linha causado pelo descasamento de
impedncias 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 avaliados
e implementados em Matlab os algoritmos mais utilizados na aplicao de cancelamento de
eco, por exemplo, LMS, NLMS, RLS e APA. Na sequncia escolhido para implementao
em 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 atenuao
da ordem de 25dB, considerando o dispositivo FPGA, EP2C35F672C6 da ALTERA.
Palavras-chave: FPGA. Cancelamento de eco. Algoritmos adaptativos. VHDL.

ABSTRACT
Echo is the repetition of a sound that is given by the reflection of a sound wave from a surface
or 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.

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 near com 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

LISTA DE TABELAS
Tabela 1.
Tabela 2.
Tabela 3.
Tabela 4.
Tabela 5.
Tabela 6.
Tabela 7.
Tabela 8.

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


Comparao dos resultados obtidos em MATLAB .................................... 36
Relatrio de compilao do Filtro FIR. ....................................................... 40
Relatrio de compilao do Filtro Adaptativo com NLMS. ....................... 43
Relatrio de compilao do LEC com NLMS. ........................................... 43
Relatrios dos recursos para um canal do LEC na placa DE2-C35. ........... 46
Relatrios dos recursos para 20 canais do LEC na placa DE2-C35............ 46
Comparao dos resultados. ........................................................................ 48

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

LISTA DE ABREVIATURAS E SIGLAS


ASIC
DSP
FIR
FPGA
LMS
NLMS
RLS
TTC
UNIVALI
MSE
VHDL

Circuito de Aplicao Especifica


Digital Signal Processor
Finite Impulse Response
Field Programmable Gate Array
Least Mean-Square
Normalized Least Mean-Square
Recursive Least Square
Trabalho Tcnico-cientfico de Concluso de Curso
Universidade do Vale do Itaja
Erro quadrtico mdio
VHSIC Hardware Description Language

SUMRIO
1 INTRODUO ..................................................................................................................... 11
1.1 Problematizao................................................................................................................. 12
1.1.1 Formulao do Problema ................................................................................................ 12
1.1.2 Soluo Proposta............................................................................................................. 12
1.2 Objetivos ............................................................................................................................. 13
1.2.1 Objetivo Geral ................................................................................................................. 13
1.2.2 Objetivos Especficos....................................................................................................... 13
1.3 Metodologia ....................................................................................................................... 13
1.4 Estrutura do Trabalho ....................................................................................................... 14
2 FUNDAMENTAO TERICA ........................................................................................ 15
2.1 Cancelamento de eco ......................................................................................................... 15
2.2 Filtragem adaptativa.......................................................................................................... 16
2.3 Filtros FIR ......................................................................................................................... 18
2.4 Algoritmos adaptativos ...................................................................................................... 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 Trabalhos relacionados ..................................................................................................... 32
3 DESENVOLVIMENTO ....................................................................................................... 34
3.1 VISO GERAL DO SISTEMA ......................................................................................... 34
3.2 Implementao dos algoritmos ......................................................................................... 35
3.2.1 Implementaes em MATLAB ......................................................................................... 35
3.2.2 Implementaes em VHDL .............................................................................................. 38
3.2.3 Testbench ......................................................................................................................... 38

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 quartus .......................................................................................................... 46
4.2 Desempenho do cancelador de eco ................................................................................... 47
5 CONSIDERAES FINAIS ............................................................................................... 49

11

1 INTRODUO
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 algoritmo
adaptativo 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 Gateway IP. Devido reduo de custo e o aumento dos recursos disponveis

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.1 PROBLEMATIZAO
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

13

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


canais de cancelamento de eco.

1.2 OBJETIVOS
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.3 METODOLOGIA
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).

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 de
cancelamento 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.4 ESTRUTURA 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, apresentada
uma 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.

15

2 FUNDAMENTAO 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 mais
prxima 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 ao
descasamento 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).

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 ligaes
internacionais 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
usurio far-end e 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 do far-end so 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.2 FILTRAGEM 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.

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;

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 sistemas
no 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.3 FILTROS FIR


Filtros com resposta ao impulso finita (FIR) so filtros digitais lineares. Tambm so
conhecidos por filtros digitais no-recursivos devido falta de feedback1. Esta ausncia de um
retorno 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 aps
um tempo finito. A equao que representa o comportamento do filtro FIR (MANOLAKIS;
INGLE; KOGON, 2005):

y(n) = wi x(n i)

Equao 1

i=0

Onde P indica 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.

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

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 1 corresponde um atraso unitrio.

2.4 ALGORITMOS 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.

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 erros


de 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 por fast 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.

21

2.4.1 Algoritmo 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

22

3. Adaptao do vetor de coeficientes:

[ + 1] = [] + 2 [] []

Equao 4

A 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 . Nas
Equaes 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 passo
de 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.2 Algoritmo 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.

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).

24

2.4.3 Algoritmo 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 sinais
de 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 filtro
fique 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.

2
Na rea de processamento de sinais, um sinal determinstico um sinal que pode ser descrito unicamente
por uma expresso matemticas.
3
Diferente de sinais determinsticos, o estocstico regido pela imprevisibilidade, um sinal que varia no
tempo ou espao aleatoriamente.

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 ( 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 1 ().
o A matriz atualizada 1 ().

Passos para implementao do algoritmo RLS:


1. Computao do ganho do filtro:

() = 1 ( 1)()
() =

()
+ ()()

Equao 8
Equao 9

2. Filtragem:

1 () =
( 1) ()

Equao 10

3. Estimao do erro:

1 () = () 1 ()

Equao 11

4. Adaptao do vetor de coeficientes:

() =
( 1) + () 1 ()

Equao 12

5. Atualizao da matriz 1 ():


1 () = 1 (1 ( 1) ()[ ()1 ( 1)])

Equao 13

26

Na Equao 13, o smbolo uma constante positiva e pequena que um pouco menor
do 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.4 Algoritmo APA


O algoritmo APA uma generalizao do algoritmo NLMS. Sua primeira
implementao foi por Yamada et al (1982) para melhorar a velocidade de convergncia dos
algoritmos 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).

27

Passos para implementao do algoritmo APA:


6. Filtragem:
Equao 14

[] = [] []
7. Estimao do erro:

Equao 15

[] = [] []
8. Adaptao do vetor de coeficientes:

[ + 1] = [] + [] ( () () + )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, complexidade
computacional e estabilidade.

2.4.5 Comparao dos Algoritmos Analisados


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

MSE

Complexidade Computacional

LMS

1.5 102

2N+1

NLMS

9.0 103

3N+1

RLS

6.2 103

4N

APA

6.0 103

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

28

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

2.5 FPGA
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 aplicao
especifica (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
e Achronix.
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.

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.6 VHDL
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.

30

2.7 PLACA 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.8 FERRAMENTAS 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

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.1 Matlab
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 ao
clculo 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.2 Quartus 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 utilizado
o ModelSim (ALTERA, 2015).

32

2.8.3 ModelSim
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 testbench que 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.4 Ocenaudio
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.9 TRABALHOS 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 e
similares.
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.

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.

34

3 DESENVOLVIMENTO
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).

35

3.2 IMPLEMENTAO DOS ALGORITMOS


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

3.2.1 Implementaes 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.

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 para


convergir

Tempo de execuo de todas


iteraes

LMS

700

0.094s

NLMS

180

0.121s

RLS

90

0.927s

Observa-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.

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 de far, near e 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 near com o erro.

38

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


os sinais near e erro da ordem de 24dB. Na sequncia apresentada a implementao do
algoritmo do LEC em VHDL.

3.2.2 Implementaes 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 testbench para 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.3 Testbench
O testbench um arquivo que permite simular o comportamento de um sistema, atravs
de sinais como estmulos (ALTERA, 2015). Neste arquivo foram implementados dois
processos: Leitura e Escrita. Ambos os processos operam com nmeros inteiros que so
lidos/escritos como STD_LOGIC_VECTOR de 16 bits.

3.2.4 Filtro FIR em VHDL


O filtro FIR implementado em VHDL utilizando os seguintes mdulos: mquina de
estados finita, memria RAM, ROM e o arquivo de testbench para testes. A mquina de estados
controla o funcionamento do filtro, a RAM armazena o vetor de amostras e a ROM o de
coeficientes.
A mquina possui 7 estados, e seu diagrama mostrado na Figura 10:

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 enable para 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 uma flag 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 um sweep
de 100Hz at 3400Hz. A escolha do sinal sweep justificada devido a sua amplitude

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.

41

3.2.5 Algoritmo 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:

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.

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.6 LEC 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 de far. Os sinais de far e near so quantizados em 16 bits. Deve-se comentar
ainda 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 de far/near, com 8000 amostras.

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 near e far e enviar para a
sada o sinal de erro. Deve-se ainda gerar os sinais de clock necessrios 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.

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 representado
o 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 clock do LEC, que so responsveis por fazer divises ou multiplicaes
do sinal do clock, de modo que os blocos operem em diferentes frequncias.

46

4 RESULTADOS 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.1 RELATRIOS 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 DE2C35.
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%)

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.

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 alcanados


com LEC NLMS

Nmero de
coeficientes

Atenuao com
sinais 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.

49

5 CONSIDERAES 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 no
ambiente 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.

REFERNCIAS
ALMEIDA, S. J. M. de. Anlise estatstica do comportamento de uma classe de algoritmos
de projees afins. 2004. Tese (Doutorado em Cincia da Computao) - Programa de Psgraduao em Engenharia Eltrica - UFSC, Florianpolis, SC, 2004.
ALTERA. DE2 Development and Education Board. 2012. Disponvel em:
<ftp://ftp.altera.com/up/pub/Altera_Material/12.1/Boards/DE2/DE2_User_Manual.pdf>.
Acesso em: 03 jun. 2015.
ALTERA. Quartus II Handbook Volume 1: Design and Synthesis. Disponvel em:
<https://www.altera.com/en_US/pdfs/literature/hb/qts/quartusii_handbook.pdf>. Acesso em:
04 jun. 2015.
ALTERA. Cyclone II Device Handbook Volume 1. 2008. Disponvel em: <
https://www.altera.com/content/dam/alterawww/global/en_US/pdfs/literature/hb/cyc2/cyc2_cii5v1.pdf>. Acesso em: 06 jun. 2015.
BARBOZA, Anderson. Feedback em diversas reas do conhecimento. Disponvel em:
<http://www.feedbackmag.com.br/feedback-em-diversas-areas-do-conhecimento/>. Acesso
em: 07 dez. 2015.
BOBER, Brian. Altera and Xilinx Report: The Battle Continues. 2008. Disponvel em:
<http://seekingalpha.com/article/85478-altera-and-xilinx-report-the-battle-continues>. Acesso
em: 03 jun. 2015.
BETZ, Vaughn. FPGA Architecture for the Challenge. Disponvel em:
<http://www.eecg.toronto.edu/~vaughn/challenge/fpga_arch.html>. Acesso em: 03 jun. 2015.
COSTA, C. H. O.; CASTELLO, D.; ROCHINHA, F. A. Aplicao de filtros digitais em
identificao de sistemas mecnicos. VIII Congresso Nacional dos Estudantes de
Engenharia 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 filter
Algorithms (LMS, NLMS and RLS). International Journal Of Science, Engineering And
Technology 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 and
Freescale Solutions Using the StarCore SC140 Core. 2004. Disponvel em:
<http://cache.freescale.com/files/dsp/doc/app_note/AN2598.pdf>. Acesso em: 06 jul. 2015.

SAGGIN, Fabrcio. Implementao de Canceladores de Eco em FPGA. Florianpolis:


LINSE - UFSC, 2011.
FARHANG-BOROUJENY, Behrouz. Adaptive filters: theory and applications. 2.ed. Reino
Unido: John Wiley & Sons, 2013.
GAIKWAD, Suraj R.; GAIKWAD, Snehal R.; DEKATE, Kunal N. Design of FIR Filter for
Audio Application. International Journal Of Emerging Trends In Engineering And
Development.
India,
p.
126-133.
out-nov.
2014.
Disponvel
em:
<http://www.rspublication.com/ijeted/ijeted_index.htm>. 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 algoritmos
adaptativos aplicados em controle ativo de vibraes. 2006. 65 f. Dissertao (Mestrado em
Engenharia 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: Springer
Science & 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: <
https://www.linse.ufsc.br/skel1.php?parent=desenvolvimento&section_id=59&language=enUS>. Acesso em: 29 abr. 2015.
LINSE. Sobre o Ocenaudio. Disponvel em: <http://www.ocenaudio.com.br/whatis>. Acesso
em: 04 jun. 2015.
MATHEWS, V. J. Adaptive Polynomial Filters. IEEE Signal Processing Mag. 1991.
MATHWORKS.
MATLAB
Product
Description.
Disponvel
<http://www.mathworks.com/help/matlab/learn_matlab/product-description.html>.
em: 04 jun. 2015.

em:
Acesso

MANOLAKIS, Dimitris G.; INGLE, Vinay K.; KOGON, Stephen M. Statical and adaptive
signal processing. Norwood: Artech House, 2005.
MARCONI, Marina de Andrade; LAKATOS, Eva Maria. Fundamentos de metodologia
cientfica. 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, Porto
Alegre, 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 and
NLMS Algorithms on the TMS320C54x DSP. 1997. Disponvel em:
<http://www.ti.com.cn/cn/lit/an/spra188/spra188.pdf>. 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 sistemas
embarcados. 161 f. Trabalho de Concluso de Curso (Graduao) - Curso de Cincia da
Computao, 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 pticos
Coerentes. 2009. 92 f. Dissertao (Mestrado) - Curso de Mestrado Integrado em Engenharia
Eletrotcnica 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 LMS
Algorithm. 2007. 61 f. Trabalho de Concluso de Curso (Graduao) - Curso de Electrical
Engineering, 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 Cancellation
Implementation
Using
TMS320C6201.
1998.
Disponvel
em:
<http://www.tij.co.jp/jp/lit/an/spra421/spra421.pdf>. Acesso em: 06 jul. 2015.