UNIVERSIDADE CAT ´ OLICA DE PELOTAS ESCOLA DE INFORM ´ ATICA PROGRAMA DE P ´ OS-GRADUAC ¸ ˜ AO EM INFORM ´ ATICA Implementac ¸˜ ao de Filtros Adaptativos em FPGA por Conrado Ruch Jr. Trabalho Individual I TI-2006/2-02 Orientador: Prof. Dr. S´ ergio Jos´ e Melo de Almeida Co-orientador: Prof. Dr. Eduardo Antˆ onio C´ esar da Costa Pelotas, dezembro de 2006
64
Embed
Implementac¸ao de Filtros Adaptativos em˜ FPGAppginf.ucpel.tche.br/TI-arquivos/2006/ConradoRuchJr/PPGINF-UCPel... · MAC Multiplicador-Somador-Acumulador NLMS Normalized Least Mean-Square
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
UNIVERSIDADE CATOLICA DE PELOTAS
ESCOLA DE INFORMATICA
PROGRAMA DE POS-GRADUACAO EM INFORMATICA
Implementacao de Filtros Adaptativos emFPGA
porConrado Ruch Jr.
Trabalho Individual ITI-2006/2-02
Orientador: Prof. Dr. Sergio Jose Melo de AlmeidaCo-orientador: Prof. Dr. Eduardo Antonio Cesar da Costa
Pelotas, dezembro de 2006
AGRADECIMENTOS
Ao completar esta etapa, presto meus agradecimentos a todosque de alguma formacontribuiram de forma direta ou indireta para este trabalho. Como forma de reconheci-mento, quero citar aqui ao Programa de Pos-Graduacao em Informatica, que acreditouem minhas capacidades, e concedeu-me a possibilidade de serum aluno deste programa.Tambem quero agrader a CAPES, atraves de seu programa PROSUP, que me beneficioucom uma bolsa integral, proporcionando-me tranquilidade para a realizacao de minhasatividades. Aos meus colegas de mestrado, meu sincero obrigado, por sua companhia eauxılio, e aos professores e funcionarios do PPGINF, que tanto se dedicaram em nossofavor.
Agradeco tambem a meus familiares, que mesmo distantes, me apoiaram naexecucao deste trabalho. E a Lısia, minha namorada, por seu auxılio e compreensao,tao fundamentais quanto seu amor.
Um especial agradecimento a meus professores orientador Prof. Sergio Jose Melode Almeida e co-orientador prof. Eduardo Antonio Cesar daCosta, por sua coragem emme acolher, por sua compreensao nos momentos difıceis, e por nunca desistir de mim,mesmo quando isso parecia iminente ou necessario, conduzindo-me assim ate este mo-mento, na conclusao deste trabalho. Saibam todos que vossaamizade, apoio e compan-heirismo foram fundamentais para o desenrolar de minhas atividades.
IEEE Institute of Electrical and Electronic Engineers
LAMIPSLaboratorio de Microeletronica e Processamento de Sinais
LMS Least Mean-Square
MAC Multiplicador-Somador-Acumulador
NLMS Normalized Least Mean-Square
RLS Recursive Least Square
SSI Small Scale Integration
ULSI Ultra large scale integration
VHDL VHSIC Hardware Description Language
VHSIC Very High Speed Integrated Circuit
RESUMO
Este trabalho apresenta a implementacao do algoritmo NLMS em uma arquiteturadedicada de um filtro adaptativo em FPGA. A filtragem adaptativa e uma estrategia uti-lizada para o tratamento de sinais. Esta solucao e empregada com sucesso em diversasareas e sua utilizacao, associada a utilizacao de filtros adaptativos, permitindo uma amplagama de aplicacoes, apesar destes filtros variarem em sua forma de atuacao bem como oambiente a ser empregado.
Dentre dos algoritmos existentes, o algoritmo LMS tem provado sua versatili-dade desde sua proposicao, mesmo sujeito a comportamentos indesejados em situacoesde flutuacao no valor da potencia do sinal de entrada, e possuindo como caracterısticasbasicas a baixa velocidade de convergencia. Ja o algoritmo LMS Normalizado procuraatender a estas caracterısticas, em detrimento de um aumento da computacao e da com-plexidade algoritmica.
O objetivo principal proposto neste trabalho sera contribuir e promover a con-tinuidade do trabalho desenvolvido pelo LAMIPS, avancando a partir da arquitetura ja ex-istente ate a implementacao do algoritmo LMS normalizado (NLMS), dentro da estruturade um filtro adaptativo puramente sequencial. Atraves desta implementacao do circuitode 16 bits 8 taps em uma arquitetura dedicada serao demonstradas as etapas necessariaspara a implementacao do algoritmo e a utilizacao do circuito.
Palavras-chave:Filtros adaptativos, fpga, nlms.
ABSTRACT
TITLE: “ADAPTIVE FILTER IMPLEMENTATION ON FPGA”
This work presents an implementation of NLMS algorithm in a dedicated architec-ture of FPGA adaptive filter. The adaptive filter is a strategyused for the signal processing.This solution is successfully used in many areas and its use,associated the use of adaptivefilters, allowing an ample gamma of applications, despite these filters varying in its formof performance as well as the environment to be used.
Amongst of the existing algorithms, algorithm LMS has proven its versatility sinceits proposal, exactly subject to the behaviors undesired insituations of fluctuation in thevalue of the power of the input signal, and possessing as characteristic basic low thespeed of convergence. Already Normalized algorithm LMS search to take care of tothese characteristics, in detriment of an increase of the computation and the algoritmicacomplexity.
The considered main objective in this work will be to contribute and to promotethe continuity of the work developed for the LAMIPS, advancing from the existing archi-tecture already until the implementation of normalized algorithm LMS (NLMS), insideof the structure of purely sequential a adaptativo filter. Through this implementation ofthe circuit of 16 bits and 8 taps in a dedicated architecture the implementation of thealgorithm and the use of the circuit will be demonstrated to the necessary stages for.
Keywords: adaptive filter, fpga, nlms.
11
1 INTRODUCAO
1.1 Introducao
A teoria de sistemas lineares nos permite utilizar grande n´umero de ferramentase modelos matematicos. Apesar de nosso mundo real ser determinıstico, as variaveisnecessarias para realizar o modelamento real de todo um ambiente sao praticamente in-finitas, e atualmente impossıveis de serem modeladas e/ou manipuladas. Contudo temosmodelos nao lineares capazes de descrever de forma simpleso comportamento de umapartes destes fenomenos e atividades. Estes modelos sao extremamente importantes emdiversas areas da engenharia e computacao, como cancelamento de eco acustico; reducao,identificacao ou eliminacao de fontes de ruıdo e distorcoes, e equalizacao de canais decomunicacao (MATHEWS, 1991).
Dentro do campo da nao-lineariedade, duas tecnicas sao utilizadas com sucessopara analise de diversos problemas: Filtragem Adaptativae Redes Neurais. Em particulara filtragem adaptativa, um campo de grande importancia na area de Processamento deSinais, pode oferecer uma maior confiabilidade a uma gama maior de problemas, atravesda utilizacao de filtros adaptativos fundamentais para a resolucao de problemas em ambi-entes nao estacionarios (HAYKIN, 2001).
Os filtros adaptativos sao formados por estruturas dispostas para a analise de umsinal de entrada, e a partir da comparacao deste com o sinaldesejado pelo filtro, produziro valor resultante desta diferenca. Este valor da diferenc¸a, chamado de erro, influenciaos coeficientes de ajuste do filtro, que permitem aproximar o resultado do filtro do sinaldesejado, aproximando o valor do erro a 0. Um dos fatores que influenciam o compor-tamento do filtro e o algoritmo adaptativo presente nele. Dentre eles estacamos dois: oLMS (Least Mean Square) e o NLMS (Normalized Least Mean Square), caracterizadospor sua baixa complexidade computacional e amplamente estudados, analisados e imple-mentados na literatura (HAYKIN, 2001). A implementacao destes filtros adaptativos erealizada atraves da associacao de sistemas adaptativos e estruturas dedicadas em hard-ware (circuitos digitais).
Nos ultimos anos e observado um constante avanco da eletronica digital, atravesda utilizacao de circuitos dedicados em novas aplicacoes e o aumento da complexidadedos mesmos, com a agregacao de um numero cada vez maior de funcionalidades. Um sis-tema digial e constituıdo de dispositivos construıdos para a manipulacao de informacoesdiscretas, atraves de pontos obtidos por amostras de grandezas fısicas.
O aparecimento dos atuais sistemas de informacao, que manipulam dados digitais(discretos), viabilizou o surgimento de sub-areas como controle e automacao de processos
12
e processamento e transmissao de dados e sinais. Estas sub-areas foram as principaisresponsaveis por tamanha evolucao da eletronica digital. No entanto, ao mesmo tempoem que esse avanco tecnologico traz benefıcios, simplificando a vida dos usuarios dosprodutos, os projetistas e profissionais da area necessitam estar em constante atualizacaopara as novidades tecnologicas (TOCCI, 2000).
Segundo (TOCCI, 2000) dentre as causas da superacao dos sistemas digitais sobreos sistemas analogicos, nos aspectos de utilizacao, tecnologia, dentre outros, podemoscitar:
• facilidade de projeto, uma vez que sao circuitos de chaveamento;
• facilidade de armazenamento de informacoes, sendo que circuitos de chaveamentoespeciais podem
• reter informacoes por um tempo indeterminado;
• precisao e exatidao da saıda do circuito (resposta) saomaiores, podendo haver tan-tos dıgitos de precisao quantos forem
• necessarios, com a simples adicao de mais circuitos de chaveamento;
• facilidade de programacao das operacoes, sendo relativamente facil o desenvolvi-mento de sistemas
• cujo comportamento segue um conjunto de instrucoes previamente armazenadas;
• baixa susceptibilidade a ruıdos, pois trabalham com valores aproximados;
• facilidade de encapsulamento (circuitos integrados).
A tecnologia de integracao de circuitos digitais tem evoluıdo bastante desde aintegracao em pequena escala (SSI - Small scale integration), com menos de 12 portaspor circuito integrado, ate os dias atuais como alguns microprocessadores contendo al-guns milhoes de portas logicas (ULSI - Ultra large scale integration) (TOCCI, 2000).Nos ultimos anos, circuitos integrados capazes de implementar em hardware circuitos de-scritos em forma desoftware, podendo ser reconfigurados, vem ganhando espaco no mer-cado. Atualmente existem varios tipos de circuitos integrados com essa caracterıstica,como podemos citar: EPLD (Eraseable Programmable Logic Device), EEPLD (Elec-trically Eraseable Programmable Logic Device), CPLD (Complex Programmable LogicDevice), FPGA (Field Programmable Gate Array). Dentre os citados, os FPGAs saoos que possuem uma tecnologia mais avancada, capazes de implementar circuitos maiscomplexos e podendo ser reconfigurado parcial ou totalmente, estatica ou dinamicamente,dependendo da sua arquitetura.
A exploracao destas caracterısticas na implementacao de um sistema adaptativoem estruturas dedicadas em FPGAS sera o foco desta monografia, buscando trabalhar aspossibilidades oferecidas pela associacao das duas areas na computacao.
13
1.2 Objetivos desta MonografiaO objetivo geral desta monografia e conhecer e implementar arquiteturas ded-
icadas em em VHDL (VHSIC Hardware Description Language), formadas por filtrosadaptativos utilizando os algoritmos LMS (Least Mean-Square) e NLMS (NormalizedLeast Mean-Square). Para a execucao das tarefas sera utilizada a ferramenta Quartus II6.0 SP1 da Altera para realizar a modelagem, sıntese e simulacao do circuito (ALTERA,2006).
1.3 Contribuicoes da MonografiaNesta monografia e realizada a comparacao entre filtros adaptativos que utilizam
os algoritmos LMS e o NLMS, implementados em circuitos dedicados, dentro de uma es-trutura transversal de um filtro FIR (Finite Impulse Response), implementado em VHDL.Com base nas simulacoes apresentadas, serao comparadasas metricas obtidas em umaimplementacao anteriormente realizada (FOSTER et al., 2006), com os valores extraıdosa partir da implementacao deste algoritmo agora implementado. Alem disso e impor-tante ressaltar a importancia da contribuicao deste trabalho para o desenvolvimento dasatividades do LAMIPS (Laboratorio de Microeletronica e Processamento de Sinais), etambem para o desenvolvimento futuro da dissertacao final de Mestrado.
1.4 Organizacao da MonografiaEsta organizacao desta monografia divide seu conteudo em6 capıtulos. Este
capıtulo 1 apresentou uma instrucao sobre o trabalho, nocapıtulo 2 sao abordados ostopicos teoricos referentes a filtragem adaptativa e seuscomponentes: sistema adapta-tivo, algoritmos adaptativos, solucao otima de Wiener eos algoritmos LMS e NLMSabordados neste trabalho. Durante o terceiro capıtulo sao apresentados os conceitos so-bre arquiteturas dedicadas, FPGA, VHDL e caracterısticasinerentes as implementacoes.No capıtulo 4 sao discutidas as proposicoes para a realizacao do trabalho e apresentadasas etapas realizadas para o desenvolvimento da solucao. Efinalmente no capıtulo 5 saoreportados os resultados obtidos e finalizadas as conclusoes.
14
2 FILTRAGEM ADAPTATIVA, O “ESTADO-DA-ARTE” E SEUS CONCEITOS
2.1 Introducao
Neste capıtulo sao apresentados os conceitos basicos sobre: filtragem adaptativa,sistema adaptativo, algoritmos adaptativos, solucao otima de Wiener.
2.2 Filtragem Adaptativa
A filtragem adaptativa constitui uma ferramenta fundamental no processamento desinais digitais. Ela e aplicada atualmente em um grande numero de problemas de engen-haria. Esta tecnica tem sido explorada com sucesso em problemas de Economia, Engen-haria Biomedica, Equalizacao de Canais, Sistemas de Controle e em Telecomunicacoes.Em (HAYKIN, 2001) e apresentado um breve historico do desenvolvimento da filtragemadaptativa e aplicacoes do processamento adaptativo de sinais.
O estudo da filtragem adaptativa ganhou impulso com o desenvolvimento do algo-ritmo LMS por Widrow e Hopf em 1959, e tem recebido consideravel atencao de muitospesquisadores nas ultimas decadas. Este interesse deve-se ao fato de muitos problemaspraticos nao poderem ser resolvidos de maneira satisfat´oria atraves da utilizacao de filtrosdigitais (ALMEIDA, 2004). Assim, o uso de filtros adaptativos permite a expansao dascapacidades de processamento que nao seriam possıveis deoutra forma.
Observando a figura 2.1 percebemos que o processo de um sistema de filtragemadaptativa consiste na utilizacao de um filtro adaptativopara processar sinais resultantesde ambientes com estatısticas estocasticas, fornecendona saıda um sinal tratado queatende aos criterios do filtro adaptativo.
Figura 2.1: Sistema de Filtragem Adaptativa
15
2.3 Sistema Adaptativo
Um sistema adaptativo e aquele cuja estrutura e alteravel (atraves do ajuste dosseus coeficientes) de tal forma que seu comportamento melhore de acordo com al-gum criterio de desempenho atraves da exposicao ao ambiente no qual sera inserido(ALMEIDA, 2004). O ajuste dos coeficientes do filtro adaptativo e realizado atravesda implementacao de um algoritmo, devidamente escolhido, cujo objetivo e atender arequisitos dos sistema. Estes algoritmos sao definidos como algoritmos adaptativos.
Segundo Widrow e Stearns (WIDROW; STEARNS, 1985) os sistemas adapta-tivos possuem todas ou algumas destas caracterısticas abaixo listadas:
1. Adaptacao automatica a medida em que ocorre a modificacao do ambiente e/oumudanca das necessidades do sistema (auto-otimizacao);
2. Possibilidade de serem treinados para desenvolver uma tarefa especıfica de fil-tragem ou decisao, ou seja, podem ser programados atravesde um processo detreinamento (auto-programaveis);
3. Em virtude disso, nao precisam de procedimentos elaborados de sıntese (sao basi-camente auto-programaveis);
4. Podem extrapolar o espaco de conhecimento e lidar com novas situacoes apos otreinamento com um pequeno conjunto de padroes de entrada (auto-aprendizado);
5. Ate certo ponto podem reparar a si mesmos, ou seja, podem adaptar-se em regioesproximas da otima mesmo quando sujeitos a certos tipos de defeitos ou limitacoes;
6. Geralmente sao mais complexos e difıceis de analisar que sistemas nao adaptativos,mas oferecem a possibilidade de um desempenho substancialmente melhor quandoas caracterısticas do ambiente sao desconhecidas ou variantes no tempo.
A operacao de um sistema de filtragem adaptativa envolve dois processos basicos:o processo de filtragem com o objetivo de produzir uma saıda em resposta a umasequencia de entrada; e o processo adaptativo. O proposito e fornecer um mecanismo paraajuste de um conjunto de parametros utilizados no processode filtragem (ALMEIDA,2004).
A estrutura de um sistema adaptativo e representada pela figura 2.2. Neste sistemasua saıda e modificada de tal forma que seu comportamento sofre alteracoes de acordocom o criterio desejado. Neste exemplo observa-se um sistema em diagrama de blocosrepresentando um sistema adaptativo, com uma sequencia de entradax(n), o filtro FIR ea saıday(n): um sinald(n) que representa a resposta desejada, e que subtraindo do sinaly(n)gera o valor de erroe, que e o valor da diferenca entre o sinal desejado e a estimativado filtro. A equacao 2.1 apresenta a expressao que representa o valor de erro, dada por:
e(n) = d(n) − y(n) (2.1)
16
Figura 2.2: Sistema Adaptativo
A partir desta percepcao verifica-se que o objetivo final dofiltro e estimar seuvalor de saıda, aproximando ao maximo este resultado com ovalor desejado, ate atingiro valor de erro nulo ou proximo de zero. A realimentacao dofiltro com o sinal de erroprocura forcar o sistema a esta adaptacao.
2.4 Filtro FIRFiltros FIR sao estruturas responsaveis pelas caracter´ısticas do processo de fil-
tragem, e respondem pela duracao da resposta impulsionaldeste filtro. Sua construcaoobedece o criterio desejado, e e o responsavel pelo comportamento do sistema adapta-tivo. Na figura 2.3 e apresentada a ilustracao da estrutura de um filtro transversal, ondeo numero de elementos de atraso determina a duracao finitade sua resposta ao impulso,representados porZn.
Figura 2.3: Filtro FIR
Os filtros FIR sao utilizados no processo de filtragem no dom´ınio de uma deter-minada frequencia. Eles podem diferir na forma de atuac˜ao sobre o sinal. Sao filtrosestaveis, e de facil implementacao. Este filtro, chamado filtro de resposta ao impulso deduracao finita, e utilizado para filtragem adaptativa em tempo real. Sua ordem e baseadano numero de elementos de atraso, e sua saıday e determinada pela equacao 2.2:
17
y =N−1∑
i=0
ωix(n − i) (2.2)
E importante salientar que o desempenho do sistema adaptativo e diretamente de-pendente do algoritmo adaptativo utilizado no filtro, sendoeste topico abordado maisadiante.
2.5 Solucao otima de WienerA solucao de Wiener e proveniente de uma base estatıstica, onde os coeficientes
otimos de um filtro linear sao obtidos atraves da minimizacao do erro quadratico. Estefiltro requer informacoes adicionais a respeito do sinal original e do ruıdo; e alem dissoele considera a estacionariedade do ambiente. O objetivo dasolucao do Wiener e fornecero ω0, tambem chamado ponto otimo. Porem o ponto otimo para uma solucao em temporeal passa a ser utopico, visto que para a utilizacao da solucao de Wiener e necessarioque conhecamos antecipadamente a matriz de correlacao dos dados de entradaR e vetorde correlacao cruzada do sinal desejadop, conforme observado na equacao 2.3. Assim,diante do impasse em utilizar a solucao de Wiener, se faz necessario utilizar um algoritmoadaptativo que procure aproximar-se do valor desejado de resposta.
ω0 = R−1p (2.3)
A matriz de auto-correlacaoR dos dados de entrada para a sistema de Wiener eformada pela equacao 2.4:
R = E{
x (n) xT (n)}
(2.4)
e a equacao 2.5 representa o vetor de correlacao cruzadadado porp:
p = E {d (n) x (n)} (2.5)
A finalidade do algoritmo adaptativo e ajustar o filtro para minimizar o valor medioquadratico do erroe(n). O sistema de adaptacao ira continuamente ajustar os coeficientesdo filtro, e a cada iteracao tentar minimizar o erro. O comportamento do filtro, sua com-plexidade computacional e tempo de resposta dependem diretamente do algoritmo adap-tativo implementado no filtro. O filtro de Wiener utiliza um filtro transversal como basede sua estrutura, que apresenta baixa complexidade computacional e pequeno desajuste(HAYKIN, 2001).
2.6 Algoritmos AdaptativosEntre os diversos algoritmos existentes na literatura, pode-se citar o LMS, o
Normalized-LMS(NLMS), o Recursive Least Square(RLS) e oAffine Projection(AP)(ALMEIDA, 2004), entre outros. Cada um destes algoritmos apresenta caracterısticasbem peculiares, o que faz com que a escolha de um deles seja baseada com o tipo deproblema a que ele sera aplicado (MITRA, 2003).
Em particular, uma das aplicacoes onde a filtragem adaptativa tem permitido ex-
18
celentes resultados e no cancelamento de eco acustico. O eco acustico e um fenomenocausado pela reflexao do som. Ele ocorre quando uma fonte emissora emite e recebe devolta, alem do retorno direto, uma outra versao do som, refletido (e distorcido) por umasuperfıcie, apos um determinado intervalo de tempo, resultando em repeticao do som orig-inal. Assim, quando ocorre o evento, surge uma dificuldade emestabelecer comunicacao,em virtude deste retorno. Como exemplo classico, temos as redes de telecomunicacoes,aonde o eco vem a ser a principal fonte de deterioracao.
No processo de cancelamento de eco acustico, diversas estruturas de hardwaresao estudadas. Tais estruturas sao baseadas em processadores digitais de sinais (DSP’s)(COSTA, 2002) (MITRA, 2003). Entretanto, conforme ja mencionado, o melhor desem-penho de um sistema adaptativo esta diretamente relacionado ao algoritmo adaptativo im-plementado. Assim, alem da implementacao de variados algoritmos adaptativos, tambeme necessario ter o conhecimento das tecnicas de reducao de potencia e de aumento dedesempenho, a fim de alcancar metricas necessarias para ofuncionamento.
O desempenho de um algoritmo adaptativo pode ser avaliado por um conjunto decaracterısticas. Segundo (HAYKIN, 2001) as principais s˜ao:
1. Taxa de convergencia: define o numero de iteracoes necessarias para o algoritmolevar os coeficientes do filtro para um valor em torno da solucao otima do Wiener,no sentido medio quadratico;
2. Desajuste: e a medida quantitativa da diferenca entre oerro medio quadratico resid-ual devido ao algoritmo e o erro medio quadratico mınimo,que e produzido pelofiltro de Wiener;
3. Tracking: capacidade do algoritmo de acompanhar as variacoes das caracterısticasestatısticas dos sinais em um meio nao-estacionario. Seu desempenho e influenci-ado pela taxa de convergencia e pelas flutuacoes em regimepermanente;
4. Robutez: capacidade do algoritmo operar satisfatoriamente com sinal de entradamal condicionado;
5. Complexidade Computacional: numero de operacoes poriteracao do algoritmo.Este fator pode determinar a viabilidade de sua implementac¸ao em tempo real;
6. Estrutura: o filtro adaptativo pode ser implementado utilizando-se diversas estru-turas, tais como trelicas, forma transversal e outras;
7. Estabilidade numerica: filtros adaptativos frequentemente precisam ser implemen-tados em processadores digitais de sinais (DSP’s), os quaisoperam com aritmeticade precisao finita. Um algoritmo e considerado numericamente estavel se o vetorde erro nos coeficientes do filtro permanece limitado ao longodo processamentocom precisa finita.
2.6.1 Algoritmo LMS
O algoritmo LMS continua sendo o mais utilizado em aplicac˜oes praticas por:
1. Sua baixa complexidade e facil implementacao;
19
2. A garantia de sua convergencia desde que ocorra uma escolha correta de seu passode adaptacao.
O algoritmo e baseado no algoritmo do passo descendente (steepest-descent) cujaadaptacao do vetor de coeficientes e dada por (HAYKIN, 2001), observado pela equacao2.6:
ω (n + 1) = ω (n) + µ∇ωǫ (n) (2.6)
ondeµ e denominado o tamanho do passo de adaptacao (step-size), cujo valordeve ser criteriosamente escolhido para garantir a convergencia do algoritmo (HAYKIN,2001).
Na pratica∇ωǫ (n) e um valor que nao pode ser obtido com exatidao, tendo emvista que tanto o vetor de correlacao cruzadap quanto a matriz de autocorrelacaoR saodesconhecidos, e somente seus valores do instantek sao conhecidos no instantek. Assim,uma maneira de contornar o problema e utilizar valores estimados.
Como caracterısticas do algoritmo LMS pode-se citar:
1. Possui uma velocidade de convergencia lenta.
2. Poussui baixa complexidade.
3. E sensıvel a potencia do sinal de entrada, e isso influenciaem seus resultados.
4. Apresenta dificuldades e lentidao para convergir quandoutilizado sinais de entradacorrelacionados.
Para a implementacao do algoritmo LMS, emprega-se o algoritmo que consta natabela 2.1:
Inicializar:x(0) = ω(0) = 0escolherµ no intervalo0 < µ <
1λmax
para n = 1, 2, ...
e (n) = d (n) − ωT (n)x (n)ω (n + 1) = ω (n) + µe (n) x (n)
Tabela 2.1: Algoritmo LMS
2.6.2 Algoritmo NLMSO algoritmo LMS Normalizado surgiu como um avanco do LMS (MITRA, 2003).
O algoritmo LMS apresenta como um dos principais problemas asensibilidade a potenciado sinal de entrada. Para resolver este problema, o LMS Normalizado emprega umanormalizacao do sinal de entrada, tornando-o imune a variacao de potencia na entrada.
Como caracterısticas do algoritmo NLMS pode-se citar que ele:
1. Possui maior velocidade de convergencia que o LMS.
20
2. E um pouco mais complexo que o LMS, mas ainda assim possui baixa complexi-dade, se comparado com outros algoritmos apresentados na literatura.
3. E imune a alteracoes da potencia do sinal de entrada, poisnormaliza a entrada dosinal.
4. E assim como o LMS apresenta baixa taxa de convergencia para sinais de entradacorrelacionados.
A equacao 2.7 representa o algoritmo NLMS normalizado.
ω (n + 1) = ω (n) +µN
xT (n) x (n)e (n) x (n) (2.7)
Para a implementacao do algoritmo LMS normalizado, emprega-se o algoritmo databela 2.2:
Inicializar:x(0) = ω(0) = 0escolherµ no intervalo0 < µ <
1λmax
para n = 1, 2, ...
e (n) = d (n) − ωT (n)x (n)ω (n + 1) = ω (n) + µN
xT (n)x(n)e (n) x (n)
Tabela 2.2: Algoritmo NLMS
Na figura 2.4 e apresentada um grafico de comparacao entreo comportamentodo LMS e do NLMS. As diferentes taxas de convergencia para a mesma situacao en-tre os dois algoritmos (LMS e NLMS) podem ser observadas no grafico. Em azul estarepresentado o LMS, que demonstra a necessidade de um tempo maior de adaptacao ateconvergir para o regime permanente, quando comparado ao NLMS, representado em ver-melho. Observamos tambem que o NLMS, apesar de ser mais rapido para a convergencia,apresenta um erro maior em regime que o LMS, quando utilizamos as mesmas condicoesde operacao.
21
Figura 2.4: Erro Medio Quadratico: LMS x NLMS
O LMS e o NLMS sao algoritmos diferentes, que possuem caracterısticas de mo-dos de utilizacao diferentes. Agora durante o capıtulo tres serao discutidos os topicosreferentes as arquiteturas dedicadas de hardware.
22
3 ARQUITETURAS DEDICADAS
Neste capıtulo serao abordados os pontos teoricos sobrea utilizacao de arquite-turas dedicadas, caracterısticas e etapas para a concepcao de circuitos. Sabe-se que autilizacao de uma estrutura generica pode provocar um aumento de carga computacional,e consequentemente uma reducao de desempenho. Assim, quando e necessario satisfazerrequisitos mınimos para a modelagem do circuito, deve-se explora-la arquiteturalmente,buscando atender estes requisitos.
Para este projeto preve-se a utilizacao de arquiteturasdedicadas para a construcaodo sistema adaptativo, permitindo a exploracao de possibilidades que um sistema genericonao poderia ofertar. A propria literatura demonstra melhores resultados obtidos a partirde circuitos especialmente construıdos para esta finalidade (COSTA, 2002), e recomendaesta abordagem.
Alem disso, a prototipacao em FPGA e eficiente e rapida,permitindo a realizacaode testes e aufericao de valores, comparando-os com os valores obtidos atraves deferramentas de sıntese. Esta metodologia, estando disponıvel no Laboratorio de Mi-croeletronica e Processamento de Sinais, sera utilizada. Ainda poderao ser consideradasdurante as atividades posteriores, durante a dissertacao, outras possibilidades, como aprototipacao em ASIC (Circuitos de Aplicacoes Especıficas).
A prototipacao em FPGA e um passo anterior antes da finalizacao dos circuitosdedicados. Essa possibilidade permite testar diferentes abordagens antes de efetivar aconstrucao do chip. A complexidade computacional do circuito pode gerar um aumentoda carga computacional. Provocado por este aumento computacional pode-se ter um au-mento no consumo de potencia do circuito (COSTA, 2002). Assim, circuitos dedicadospodem ser construıdos visando obter maior desempenho frente a sistemas genericos, eassim possibilitar o estabelecimento de metricas favoraveis ao desenvolvimento do prob-lema a ser solucionado (WESTE; HARRIS, 1993) (RABAEY, 1996).
Um dos requisitos dos circuitos e o atendimento da demanda de potencia, ondepodem ser desenvolvidas solucoes em diferentes nıveis de abstracao: sistema, algoritmo,arquitetura, logico, circuito e tecnologia, sendo que as maiores oportunidades para umareducao significativa encontra-se nos primeiros tres n´ıveis (COSTA, 2002).E importanteressaltar que a reducao do consumo de potencia e crucialem determinadas aplicacoes,especialmente em dispositivos moveis, onde o tempo de funcionamento do circuito de-pende do tempo de duracao da carga da bateria do dispositivo. Assim pode-se dizer queem detrimento de um mediano desempenho pode-se obter um maior rendimento da cargadas baterias para o dispositivo (RABAEY, 1996), especialmente quando se tratam dedispositivos especialmente projetados para o fim a que se destinam.
23
Para permitir a construcao destes circuitos, sao realizadas etapas para o projeto econcepcao destes elementos. O passo inicial e a escolha de uma linguagem de descricaode hardware (HDL). Na proxima secao trataremos do VHDL, uma das mais conhecidas eutilizadas linguagens.
3.1 Trabalhos RelacionadosSendo o LMS um algoritmo bastante estudado, nao faltam implementacoes real-
izadas com ele. Citamos em nosso trabalho duas pesquisas quemerecem destaque, e queserviram como base nossa implementacao, onde sao implementados filtros adaptativosutilizando NLMS a partir de uma estrutura utilizando LMS. Em(GOEL; SHANBHAG,1996) vemos uma implementacao de um Arquitetura de Filtroadaptativo de BaixaPotencia, e em (C.; ZHU; F., 1998) temos um trabalho onde ocorre a implementacaode um arquitetura de um filtro FIR adaptativo com LMS e pipeline.
3.2 Projeto de uma ArquiteturaPara a construcao de uma arquitetura, sao necessarias algumas etapas para atingir
o produto final. Estas etapas sao descritas e comentadas nossub-topicos abaixo, e seguemo fluxo da figura 3.1 que corresponde as etapas de projeto de umaarquitetura:
Figura 3.1: Etapas do Projeto de uma Arquitetura
3.2.1 Especificacao de RequisitosDurante a etapa de Especificacao de Requisitos, o projetista e o usuario (em muitos
casos podem ser a mesma pessoa), fazem um estudo e levantam todos os requisitos ecaracterısticas do sistema e definem o seu funcionamento. Caracterısticas tais comoatraso maximo permitido para as saıdas, frequencia maxima de operacao, consumo depotencia, custo, temperatura de operacao, tensao de alimentacao sao relacionadas a fimde buscar projetar um circuito que atenda a estes requisitos, que podem ser desejaveis ounecessarios. Nao e necessario especificar todas estas caracterısticas, isso sempre depen-dera de cada projeto. Esta fase e de extrema importancia porque uma vez compreendidocorretamente o funcionamento do sistema, evita-se a ocorrˆencia de erros futuros. A cadaunidade de tempo avancada no ciclo de projeto, maior o custode correcao de um erro e
24
maior a dificuldade em encontra-lo. Ou seja, alem do preju´ızo ser maior, maior tambema probabilidade de que o erro passe despercebido e seja incluıdo na producao do sistema(UYEMURA, 2002) (ALTERA, 2006).
3.2.2 Modelamento da Arquitetura
Na etapa de modelamento e que o projeto propriamente dito einiciado. Baseadonas especificacoes da etapa inicial, o projetista ira escrever os modelos que representam ocircuito. E de fundamental importancia que o projetista tenha ja um previo conhecimentodas ferramentas desoftwareque utilizara no projeto e da tecnologia que ira utilizar,afim de conduzir o modelamento a fim de obter os melhores resultados futuramente. Out-ras caracterısticas importantes a serem incluıdas nos modelos sao: sempre que possıvel,de maneira a nao afetar o desempenho e a portabilidade, escrever modelos que sigam opadrao estabelecido na linguagem, e nao as extensoes oferecidas pelos desenvolvedoresdas ferramentas de sıntese; seguir um padrao de escrita decodigo uniforme para todos osmodelos do projeto; documentar adequadamente os modelos, incluindo nome do autor,datas de manutencao, e comentarios e explicacoes relevantes (UYEMURA, 2002) (AL-TERA, 2006).
3.2.3 Sıntese de Alto Nıvel
A Sıntese de Alto Nıvel esta para o hardware assim como a compilacao esta parao software. Na sıntese, o modelo descrito sera convertido para estruturas de dados rep-resentando as conexoes, blocos, componentes e portas logicas. Esta etapa e automatica edependente da ferramenta desoftwareutilizada. Em geral, certos cuidados podem sertomados durante o modelamento a fim de direcionar o algoritmoda sıntese para queobtenha os melhores resultados para o circuito. Durante a s´ıntese sao pre-avaliados osrequisitos do sistema a fim de indicar se o circuitos ira atende-los adequadamente. Aposa sıntese ainda nao esta definido o circuito a ser implementado, a especificacao inter-mediaria que e resultante e ainda bastante generica e pode ser direcionada para uma demuitas possibilidades de tecnologias de implementacao (UYEMURA, 2002) (ALTERA,2006).
3.2.4 Mapeamento Tecnologico
Somente apos o Mapeamento Tecnologico e que o circuito j´a esta definido dentroda tecnologia em que sera implementado. Fazendo uma analogia com osoftware, essaetapa corresponderia a geracao de codigo executavel que ocorre ao final da compilacaode um codigo fonte. So e possıvel entender essa etapa adequadamente conhecendo-seas diferentes tecnologias disponıveis no mercado, como full custom, gate array, FPGAs,entre outros. O projetista pouco consegue influir no mapeamento, especificando apenasos parametros de otimizacao desejados. Nesta etapa de implementacao/fabricacao saocriados os primeiros prototipos, avaliadas as condicoes finais, detalhes de producao entreoutros detalhes de implementacao final. Em seguida a fabricacao, os circuitos sao testadospara que possam ser entregues ao usuario com garantia de isencao de falhas (UYEMURA,2002) (ALTERA, 2006).
25
3.2.5 Simulacao do Circuito
A Simulacao e uma etapa auxiliar, mas de grande relevancia no ciclo de vida doprojeto. Simular consiste em avaliar o comportamento do circuito e validar o modeloproduzido ate aquele momento. Antes da simulacao, sao inseridos vetores caracterısticosnas entradas primarias do circuito, e os nos internos do circuito e as saıdas primariassao analisadas a fim de comparar com o esperado na especificac¸ao. A Simulacao gerauma realimentacao para os processos de modelamento, sıntese e mapeamento, evitandoa propagacao de erros para etapas posteriores. Muitos dosproblemas encontrados nasimulacao nao estao necessariamente ligados a erros noprojeto, mas ao nao preenchi-mento dos requisitos necessarios, principalmente no que se refere aos tempos do circuito(atraso, setup/hold, frequencia de operacao) (UYEMURA, 2002) (ALTERA, 2006).
Na simulacao, um recurso muito interessante a ser utilizado sao ostestbenches.O testebenche um algoritmo responsavel por gerar automaticamente os sinais que estim-ularao as entradas do modelo que sera simulado. Dentro dotestebenchpodem tambemestar presentes rotinas que capturem os valores de saıda docircuito simulado e geremapenas resultados de comparacao dizendo se o circuito esta funcionando correto ou nao esob quais aspectos estao ocorrendo os problemas (UYEMURA,2002) (ALTERA, 2006).Como exemplo de ferramenta detestbenchtemos o ModelSim produzido pela MentorGraphics (MENTORGRAPHICS, 2006).
3.3 Ferramentas de CAD
3.3.1 VHDL
No final dos anos 70, o Departamento de Defesa dos Estados Unidos (DoD)definiu um programa chamado VHSIC (Very High Speed Integrated Circuit), que visavaa descricao tenica e projeto de uma nova linha de circuitos integrados. Com o avancoacelerado dos dispositivos eletronicos entretanto este programa apresentou-se ineficiente,principalmente na representacao de grandes e complexos projetos. Uma vez que o pro-jeto VHSIC era de alta prioridade militar, e haviam dezenas de fornecedores envolvidos,o DoD definiu que haveria prioridade com as questoes de portabilidade, documentacaoe compreensibilidade dos projetos. Cada um destes fornecedores atuava desenvolvendopartes dos projetos ou mesmo fornecendo componentes que viriam a se encaixar em out-ros sistemas maiores. Desta forma o DoD optou por buscar desenvolver uma linguagemque servisse como base para troca de informacoes sobre estes componentes e projetos.Uma linguagem que, independente do formato original do circuito, pudesse servir comouma descricao e documentacao eficientes do circuito, possibilitando os mais diferentesfornecedores e participantes a entender o funcionamento das outras partes, padronizandoa comunicacao (UYEMURA, 2002).
Em 1981, aprimorando-se as ideias do VHSIC, foi proposto o emprego de umalinguagem de descricao de hardware mais generica e flexıvel para documentar o compor-tamento de Circuitos de Aplicacoes Especıficas (ASICs) utilizados pelas Forcas Armadasamericanas. Isto significa dizer que a linguagem proposta foi desenvolvida para substituiros complexos manuais que descrevia o funcionamento dos ASICs. Ate aquele momentoa unica metodologia largamente utilizada no projeto de circuitos era a criacao atraves dediagramas esquematicos. O problema desta metodologia erao fato que o desenho possuiauma menor portabilidade, um fator de complexidade maior praa compreensao do circuito
26
e eram extremamente dependentes da ferramenta utilizada nasua producao. O desen-volvimento inicial desta linguagem serviu aos propositosde documentacao do projetoVHSIC. Entretanto naquela epoca buscava-se uma linguagemque facilitasse o projetode um circuito: ou seja, a partir de uma descricao textual,um algoritmo, desenvolvero circuito, sem necessidade de especificar explicitamente as ligacoes entre componentes(UYEMURA, 2002) .
Assim uma linguagem surgia com o nome VHDL (VHSIC Hardware DescriptionLanguage), que presta-se adequadamente a tais propositos, podendo ser utilizada para astarefas de documentacao, descricao, sıntese, simulacao, teste, verificacao formal e aindacompilacao de software, em alguns casos. Apos o sucesso inicial do uso da VHDL, a suadefinicao foi posta em domınio publico, o que levou a ser padronizada pelo IEEE (Instituteof Electrical and Electronic Engineers) em 1987. O fato de ser padronizada e de domıniopublico ampliou ainda mais a sua utilizacao, novas alteracoes foram propostas, permitindouma linguagem mais flexıvel e com novos recursos, e como e natural num processo deaprimoramento a linguagem sofreu uma revisao e um novo padrao mais atualizado foilancado em 1993 (UYEMURA, 2002) (ALTERA, 2006).
27
4 ATIVIDADES PROPOSTAS E REAL-IZADAS
4.1 Especificacao da Proposta
Considerando a proposta do Trabalho Individual apresentada no inicio de agostode 2006, esta monografia deve ser constituıda de um estudo sobre o ”estado da arte´´ sobreFiltragem adaptativa, seus conceito e aplicacoes, e a implementacao do filtro adaptativo,e um estudo sobre os conceitos de arquiteturas dedicadas e implementacao das mesmas.Neste ponto, a proposta consiste no desenvolvimento do filtra adaptativo a partir de umaarquitetura base previamente implementada.
Observando a arquitetura ja desenvolvida do filtro FIR sequencial utilizando o al-goritmo LMS, deve-se alterar e implementar esta mesma arquitetura utilizando o NLMS.A arquitetura em questao e o filtro LMS 8 taps e 16 bits, um circuito ja consagrado, desen-volvida pelo LAMIPS (Laboratorio de Microeletronica e Processamento de Sinais), e ap-resentado em eventos de Microeletronica (FOSTER et al., 2006). Conforme a figura 4.1observamos no circuito a entradaX(n)e os coeficientesω nas entradas do filtro. Tambeme constatada que a estrutura do filtro FIR e composta pelo multiplicador e o somadoracumulador, sendo a saıda do sinal desejadod e o passo de adaptacaoµ.
28
Figura 4.1: Filtro FIR LMS
4.2 Desenvolvimento da Proposta
Para que a arquitetura referenciada na figura 4.1 seja implementadaconforme aespecificacao da proposta, ela necessita sofrer algumas modificacoes, conforme constamem destaque (vermelho) na figura 4.2:
29
Figura 4.2: Filtro FIR NLMS
Da figura 4.2 observa-se a necessidade de incorporar alguns elementos: umaunidade MAC (Multiplicador-Somador-Acumulador) e um circuito divisor, que ira efetuara operacao de divisao entre o valor do passo de adaptacao µ pelo valor resultante do MACa estrutura original LMS 4.1, conforme a equacao 4.1, querepresenta o algoritmo NLMS.
ω (n + 1) = ω (n) +µN
xT (n) x (n)e (n) x (n) (4.1)
4.2.1 Circuito MAC
A unidade MAC e formada por tres circuitos menores: um multiplicador, um so-mador e um acumulador. Ele e responsavel por realizar as multiplicacoes dos dois termosque entram em sua unidadex (k) e xT (k) sendo quek representa o passo de execucaodentro da unidade do filtro.
4.2.2 Circuito Multiplicador
Esta etapa consiste na implementacao do multiplicador deduas entradas ’R’ e ’T’que representa a saıda da entradax. Este multiplicador, do tipo array binario, foi ger-ado atraves da ferramenta GMP (Gerador de Multiplicador Parametrizavel) (FONSECA,2004). Na tabela 4.1 sao citados os valores extraıdos atraves da ferramenta de sıntese:
30
Multiplicador Array Bin arioUnidade Atraso Elementos LogicosMultiplicador gerado por GMP 25.696 ns 155
Tabela 4.1: Metricas do Multiplicador Array Binario
Na figura 4.3 temos um exemplo de uma simulacao do multiplicador, onde saoobservadas as entradas R e T, e a saıda P do circuito.
Figura 4.3: Simulacao do circuito multiplicador
4.2.3 Circuito Somador
A segunda etapa foi o desenvolvimento do circuito somador de16 bits. Nesta etapafoi utilizado apenas a biblioteca deStandard Logic Arithmeticexistente na ferramentaQuartus, possibilitando um rapido avanco nesta etapa.
Na figura 4.4 temos um exemplo de uma simulacao do somador, onde sao obser-vadas as entradas A e B, e a saıda S do circuito.
Figura 4.4: Simulacao do circuito somador
E importante ressaltar que a entrada A recebe o valor vindo domultiplicador,e tanto a entrada B como a saıda S sao conectados ao circuitoacumulador, que seraexplanado abaixo.
4.2.4 Circuito Acumulador
O terceiro elemento do MAC e formado por um acumulador, tambem chamadoregistrador. Sua construicao foi realizada especialmente para possibilitar a utilizacao nocircuito MAC. Seu funcionamento e bastante simples:
Quando a borda do clock esta em ’1’ o registrador permite carregar o valor vindodo somador, atualizando-o. Em todos os casos existe um valorde saıda, que e disponibi-lizado novamente para o somador, atraves de uma de suas entradas. E em todos os casossua saıda tambem e disponibilizada para a entrada do divisor do circuito divisor. Na tabela4.2 oberva-se as metricas extraıdas dele:
Ele recebe o resultado produzido na saıda S do somador, e suasaıda e conectadaa entrada B deste mesmo somador, permitindo uma acumulacao do resultado. Na figura4.5 temos a simulacao do registrador.
Figura 4.5: Simulacao do circuito acumulador
4.2.5 Circuito Divisor
O circuito divisor implementado apresenta uma de suas entradas com valor fixo,compreendido peloµ, e a outra variavel, recebendo o resultado da unidade MAC.Para a operacao proposta foi utilizado um divisor em ponto-fixo presente na literatura(PEDRONI, 2004). E importante ressaltar que este divisor sofreu uma importantemodificacao, que e explicada abaixo.
Na literatura este divisor possui um sinal de erro (err) que recebe o valor ’1’quando ocorre uma divisao por 0. Ate este ponto isso esta correto, pois a divisao de umnumero por zero gera um erro. Porem, neste divisor, mesmo informando que ocorreraum erro de divisao, o processamento continuava ate o final.A modificacao foi realizadaneste ponto. Quando ocorre um erro de divisao por zero, o processamento para, e apenasinforma o valor de erro para a maquina de estados, que por consequencia reinicia todo osistema. A tabela 4.3 contem o trecho do codigo original, epode ser comparado com atabela 4.4, onde verifica-se que a principal diferenca est´a no fluxo de processamento, queno caso do codigo alterado, encontra-se dentro do propriolaco de identificacao do erro.
Com a alteracao realizada, era necessario comprovar suaeficiencia, e compararcom os valores anteriormente extraıdos. Constata-se que apesar de ocorrer um aumento daarea do circuito em 60%, ocorreu uma reducao de 38,94% do valor de atraso do circuito.Os valores extraıdos sao representados pela tabela 4.5 abaixo:
Assim, pode-se constatar que nem sempre um aumento de area significa um au-mento do atraso do circuito, conforme mencionado em (COSTA,2002). Em seguida foirealizada a implementacao do circuito MAC, conforme a pr´oxima secao.
Comparacao entre DivisoresUnidade Atraso Elementos LogicosDivisor Original 8,513 ns 5Divisor Alterado 5,198 ns 8
Tabela 4.5: Metricas dos divisores
33
Na figura 4.6 esta representado a simulacao realizada como circuito divisor.
Figura 4.6: Simulacao do circuito divisor
Com todos os subcircuitos contruıdos, procedeu-se a adaptacao da arquiteturaoriginal, conforme as especificacoes do projeto. Os resultados obtidos e a comparacaocom os valores originais da arquitetura sao apresentados no proximo capıtulo.
34
5 RESULTADOS OBTIDOS
5.1 Analise de Resultados
Para a analise de resultados, e importante ressaltar as caracterısticas intrınsecasdo circuito. Foi implementado um circuito de um filtro adaptativo utilizando o algo-ritmo NLMS, de 16 bits e 8taps. Para a analise foram utilizados vetores senoidais (S)e randomicos (R), cada um com 100 amostras. A ferramenta de sıntese e simulacao uti-lizadao foi a Quartus II 6.0 Web Edition SP1 da Altera (ALTERA, 2006), e o componenteFPGA utilizado foi o Stratix. As simulacoes realizadas foram: funcional, para detectar ofuncionamento correto do circuito; e considerandotiming, para simular o circuito obser-vando os atrasos de cada etapa do mesmo.
5.1.1 Analise Funcional
Para se obter resultados satisfatorios, era necessario extrair valores de ambos oscircuitos LMS e NLMS. Assim, uma simulacao funcional foi realizada. Na tabela 5.1temos a comparacao entre os dois circuitos.
Tabela 5.1: Metricas do Filtro de 16 bits em simulacao Funcional
5.1.2 Analise considerandoTiming
Com os valores de simulacao funcional extraıdos, o circuito foi explorado con-siderando o atraso existente em cada porta e componente do mesmo. A tabela 5.2 repre-senta a comparacao entre simulacoes do LMS e o NLMS considerandotiming.
Tabela 5.2: Metricas do Filtro de 16 bits em simulacaoTiming
35
5.1.3 Analise ComparativaAgora, com os dados extraıdos, foi realizada a confrontacao das informacoes dis-
postas nas tabelas. Na comparacao deve ser considerado que as tabelas seguiram difer-entes modelos de simulacoes.
Na tabela 5.1 observamos que a simulacao funcional apresenta um tempo re-duzido de atraso. Isso e devido as caracterısticas da simulacao funcional, que nao consid-era o atraso entre as portas logicas do circuito. Porem a diferenca entre o LMS e o NLMSneste caso e relativamente pequena.
Quando verificamos esta situacao na tabela 5.2 observamosque tambem ali ocorreum evento semelhante onde, apesar dos valores totais de atraso serem superiores ao daprimeira tabela, a diferenca entre o LMS e o NLMS na tabela (?) e pequena (3,53%). Issoocorre em virtude da estrutura da arquitetura puramente sequencial. O atraso maior aindacontinua correspondendo ao valor do filtro FIR, e nao da alteracao arquitetural realizada.
Ja quando verificamos o numero de elementos logicos utilizados para programarnosso circuito, verifica-se um relativo aumento, referenteas estruturas adicionadas naimplementacao do algoritmo NLMS. Outro fator curioso dentro das simulacoes e refer-ente as simulacoes utilizando sinais Senoidais (S). Nota-se que nao ocorre uma alteracaosignificativa no consumo.
Na tabela 5.3 estao relacionados como sao gastos os ciclosde relogio dentro daarquitetura.E importante ressaltar que nao ocorreram alteracoes de ciclos com base naarquitetura modelo utilizada.
Ciclos utilizados Operacao Realizada32 Resposta ao Impulso Finito - FIR1 Calculo de Erro (e(n))1 Calculo de Coef. Adaptacao (µ.e(n))8 Calculo dos Coeficientes (ω(n))
Tabela 5.3: Ciclos utilizados por Operacao da arquitetura
36
6 CONCLUSAO
Este trabalho apresentou uma implementacao de um sistemaadaptativo com umfiltro utilizando o algoritmo NLMS. Para a comparacao de resultados foi utilizada umaimplementacao anteriormente realizada, que utilizou o algoritmo LMS. A partir do sinalde entrada, o algoritmo filtra o sinal, procurando eliminar as interferencias, permitindoque o sinal fique aproximado do sinal desejado.
Os resultados observados demonstraram que a implementac˜ao do filtro adaptativoutilizando NLMS apresentou comportamento e metricas semelhantes quando comparadosaos dados extraıdos da implementacao do filtro adaptativo utilizando LMS, indicando quea substituicao de um algoritmo pelo outro e possıvel de ser realizada em situacoes onde oLMS foi utilizado com sucesso.
Dentre os valores adquiridos e apresentados, ainda e importante ressaltar que eimportante re-mensurar os valores apresentados de potencia consumida, visto que ape-sar dos testes realizados oferecem valores aproximados, a utilizacao de uma ferramentade programacao de FPGAs nao possibilita extrair valoresreais de consumo, pois dentrodele estao relacionadas tambem as fugas de potencia em chaveamento de celulas e deprogramacao de portas logicas (COSTA, 2002).
Para sugestoes de trabalhos futuros, podem ser mencionados:
1. Paralelizacao da estrutura do filtro FIR;
2. Utilizacao de nıveis de pipeline, buscando reduzir atrasos;
3. Aplicacao de tecnicas de reducao de potencia e aumento de desempenho do circuito
37
REFERENCIAS
ALMEIDA, S. J. M. de.Analise Estatıstica do Comportamento de uma Classe deAlgoritmos de Projecoes Afins. 2004. Tese (Doutorado em Ciencia da Computacao) —Programa de Pos-graduacao em Engenharia Eletrica - UFSC, Florianopolis, SC.
ALTERA. Quartus II Version 6.0 Handbook. [S.l.]: Altera Inc., 2006. v.I.
C., D. S.; ZHU, Q.; F., S. K. A pipelined LMS adaptive FIR filterarchitecture withoutadaptation delay. In: IEEE TRANSACTIONS ON SIGNAL PROCESSING 46, 1998.Anais. . . IEEE, 1998. p.775–779.
COSTA, E. A. C. da.Operadores Aritmeticos de Baixo Consumo para Arquiteturasde Circuitos DSP. 2002. Tese (Doutorado em Ciencia da Computacao) — Programa dePos-Graduacao em Computacao - UFRGS, Porto Alegre, RS.
FONSECA, M. R.GMP - Gerador de Multiplicador Parametriz avel. Pelotas, RS:[s.n.], 2004. PIC - UCPEL.
FOSTER, D.; ARDIZZONE, N.; FONSECA, M. R.; ALMEIDA, S. J. M. de; COSTA,E. A. C. da. Low power dedicated datapaths for LMS adaptive filter. In: VI MI-CROELETRONIC STUDENT FORUM, 2006.Anais. . . [S.l.: s.n.], 2006.
GOEL, M.; SHANBHAG, N. R. Low-power adaptive filter architectures via strengthreduction. In: INTERNATIONAL SYMPOSIUM ON LOW POWER ELECTRONICSAND DESIGN, 1996., 1996, Monterey, California, USA.Proceedings. . .IEEE, 1996.p.217–220.
HAYKIN, S. Adaptive Filter Theory . 4th.ed. Upper Saddle River, NJ, USA: PearsonEducation, 2001.
MATHEWS, V. J. Adaptive Polynomial Filters.IEEE Signal Processing Mag., [S.l.],p.10–26, jul 1991.
MENTORGRAPHICS.ModelSim - Digital Simulation. http://www.mentor.com/.
MITRA, S. K. Digital Signal Processing: a computer-based approach. 3rd.ed. New York,NY, USA: McGraw-Hill, 2003.
PEDRONI, V. A.Circuit Design with VHDL . [S.l.]: MIT Press, 2004.
38
RABAEY, J. M.Digital Integrated Circuits : A Design Perspective. [S.l.]: Prentice Hall,1996.
TOCCI, R. J.Sistemas Digitais: princıpios e aplicacoes. 5th.ed. [S.l.]: Prentice-Hall,2000.
UYEMURA, J. P. Sistemas Digitais - uma abordagem integrada. [S.l.]: PioneiraThomson Learning, 2002.
WESTE, N. H. E.; HARRIS, D.CMOS VLSI Design - a circuits and systems perspec-tive. 3rd.ed. [S.l.]: Pearson Addison Wesley, 1993.
−−−− P r o j e c t : f i x e d−p o i n t d i v i s o r s−− F i l e name : f i x e d p o i n t d i v i s o r 8 b i t s . vhd
5 −− T i t l e : f i x e d−p o i n t d i v i s o r 8 b i t s−− D e s c r i p t i o n : i t ’ s s t r u c t u r a l s h i f t−s u b s t r a c t d i v i s o r−−−−
LIBRARY i e e e ;15 USE i e e e . s t d l o g i c 1 1 6 4 .ALL ;
USE i e e e . s t d l o g i c a r i t h .ALL ;
ENTITY f i x e d p o i n t d i v i s o r 3 2 b i t s ISGENERIC
20 (d a t a w i d t h : i n t e g e r := 32
) ;PORT(
25 d iv idend , d i v i s o r : IN STD LOGIC VECTOR(d a t a w i d t h − 1 DOWNTO 0) ;
q u o t i e n t : OUTSTD LOGIC VECTOR( d a t a w i d t h − 1 DOWNTO 0) ;
r ema inde r : OUTSTD LOGIC VECTOR( d a t a w i d t h − 1 DOWNTO 0) ;
e r r : OUTSTD LOGIC
) ;30 END f i x e d p o i n t d i v i s o r 3 2 b i t s ;
43
ARCHITECTURE r t l OF f i x e d p o i n t d i v i s o r 3 2 b i t s ISBEGIN
−− Process S t a t e m e n t ( o p t i o n a l )35 p r o c e s s d i v i d e n d d i v i s o r :
PROCESS ( d i v i dend , d i v i s o r )VARIABLE t e m p d i v i d e n d : INTEGERRANGE 0 TO
d a t a w i d t h − 1 ;VARIABLE t e m p d i v i s o r : INTEGER RANGE 0 TO
d a t a w i d t h − 1 ;BEGIN
40 −− S i g n a l Ass ignment S t a t e m e n t ( o p t i o n a l )
−− V a r i a b l e Ass ignment S t a t e m e n t ( o p t i o n a l )
−− Procedure Ca l l S t a t e m e n t ( o p t i o n a l )45
−− I f S t a t e m e n t ( o p t i o n a l )−−−−− Erro r and i n i t i a l i z a t i o n ; −−−−−−t e m p d i v i d e n d := c o n v i n t e n g e r ( d i v idend , d a t aw i d t h ) ;t e m p d i v i s o r := c o n v i n t e n g e r ( d i v i s o r , d a t aw i d t h ) ;
50
IF ( b = 0) THENe r r <= ’1 ’ ;
ELSE
55 e r r <= ’0 ’ ;−−−−− q u o t i e n t ( 5 ) ; −−−−−−−−−−−−−−−−−−−−−−−−−−IF ( t e m p d i v i d e n d >= t e m p d i v i s o r ∗ 32 ) THEN
q u o t i e n t ( 5 ) <= ’1 ’ ;t e m p d i v i d e n d := t e m p d i v i d e n d −
t e m p d i v i s o r ∗ 32 ;60 ELSE
q u o t i e n t ( 5 ) <= ’0 ’ ;END IF ;−−−−− q u o t i e n t ( 4 ) ; −−−−−−−−−−−−−−−−−−−−−−−−−−IF ( t e m p d i v i d e n d >= t e m p d i v i s o r ∗ 16 ) THEN
65 q u o t i e n t ( 4 ) <= ’1 ’ ;t e m p d i v i d e n d := t e m p d i v i d e n d −
t e m p d i v i s o r ∗ 16 ;ELSE
q u o t i e n t ( 4 ) <= ’0 ’ ;END IF ;
70 −−−−− q u o t i e n t ( 3 ) ; −−−−−−−−−−−−−−−−−−−−−−−−−−IF ( t e m p d i v i d e n d >= t e m p d i v i s o r ∗ 8 ) THEN
q u o t i e n t ( 3 ) <= ’1 ’ ;t e m p d i v i d e n d := t e m p d i v i d e n d −
t e m p d i v i s o r ∗ 8 ;ELSE
75 q u o t i e n t ( 3 ) <= ’0 ’ ;END IF ;−−−−− q u o t i e n t ( 2 ) ; −−−−−−−−−−−−−−−−−−−−−−−−−−IF ( t e m p d i v i d e n d >= t e m p d i v i s o r ∗ 4) THEN
q u o t i e n t ( 2 ) <= ’1 ’ ;80 t e m p d i v i d e n d := t e m p d i v i d e n d −
t e m p d i v i s o r ∗ 4 ;ELSE
q u o t i e n t ( 2 ) <= ’0 ’ ;
44
END IF ;−−−−− q u o t i e n t ( 1 ) ; −−−−−−−−−−−−−−−−−−−−−−−−−−
85 IF ( t e m p d i v i d e n d >= t e m p d i v i s o r ∗ 2) THENq u o t i e n t ( 1 ) <= ’1 ’ ;t e m p d i v i d e n d := t e m p d i v i d e n d −
t e m p d i v i s o r ∗ 2 ;ELSE
q u o t i e n t ( 1 ) <= ’0 ’ ;90 END IF ;
−−−−− q u o t i e n t ( 0 ) ; −−−−−−−−−−−−−−−−−−−−−−−−−−IF ( t e m p d i v i d e n d >= t e m p d i v i s o r ) THEN
q u o t i e n t ( 0 ) <= ’1 ’ ;t e m p d i v i d e n d := t e m p d i v i d e n d −
t e m p d i v i s o r ;95 ELSE
q u o t i e n t ( 0 ) <= ’0 ’ ;END IF ;−−−−− Remainder :−−−−−−−−−−−−−−−−−−−−−r ema inde r <= t e m p d i v i d e n d ;
100 END IF ;
−− Case S t a t e m e n t ( o p t i o n a l )
−− Loop S t a t e m e n t ( o p t i o n a l )105 END PROCESS p r o c e s s d i v i d e n d d i v i s o r ;
−− Concur ren t Procedure Ca l l ( o p t i o n a l )
−− Concur ren t S i g n a l Ass ignment ( o p t i o n a l )110
−− C o n d i t i o n a l S i g n a l Ass ignment ( o p t i o n a l )
−− S e l e c t e d S i g n a l Ass ignment ( o p t i o n a l )
115 −− Component I n s t a n t i a t i o n S t a t e m e n t ( o p t i o n a l )
−− Genera te S t a t e m e n t ( o p t i o n a l )END r t l ;
45
ANEXO C MULTIPLICADOR 16 BITS
Listing C.1: Multiplicador 16 bits na linguagem VHDLEnt i t y m u l t i p l i c a d o r 1 6 b i t s i sPor t (R15 , R14 , R13 , R12 , R11 , R10 , R9 , R8 , R7 , R6 , R5 , R4 , R3 , R2 , R1 ,R0 , T15 , T14 , T13 , T12 ,