universidade catÓlica de pelotas escola de informÁtica...

45
UNIVERSIDADE CATÓLICA DE PELOTAS ESCOLA DE INFORMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA Estudo de algoritmos heurísticos para filtros digitais adaptativos por André Neves Sapper Trabalho Individual I TI-2007/2-03 Orientador: Prof. Dr. Sérgio José Melo de Almeida Co-orientador: Prof. Dr. Eduardo Antonio César da Costa Pelotas, novembro de 07

Upload: lamtuyen

Post on 03-Dec-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

UNIVERSIDADE CATÓLICA DE PELOTAS

ESCOLA DE INFORMÁTICA

PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

Estudo de algoritmos heurísticos para filtros digitais adaptativos

por André Neves Sapper

Trabalho Individual I

TI-2007/2-03

Orientador: Prof. Dr. Sérgio José Melo de Almeida

Co-orientador: Prof. Dr. Eduardo Antonio César da Costa

Pelotas, novembro de 07

AGRADECIMENTOS

Agradeço aos professores Sérgio e Eduardo pelas aulas fora da sala de aula.

O que é real? Como se define o real? Se você está falando do que pode ser

cheirado, provado e visto, então real é simplesmente um sinal elétrico interpretado pelo

seu cérebro.

(Morpheus, Matrix)

SUMÁRIO

LISTA DE FIGURAS 5 LISTA DE TABELAS 6 LISTA DE ABREVIATURAS 7 RESUMO 8 ABSTRACT 9 1 INTRODUÇÃO 10 2 O problema da Multiplicação por Constantes Múltiplas (MCM) 12 2.1 Conceito do Problema MCM 13 2.2 Classificação de técnicas para o problema MCM 14 2.2.1 Recodificação baseada em dígito 14 2.2.2 Algoritmos de eliminação de subexpressões comuns (CSE) 14 2.2.3 Algoritmos baseados em grafos 15 2.2.4 Algoritmos híbridos 15 2.3 Fundamentação Teórica 15 2.3.1 Representação de Dígitos com Sinal CSD e MSD 16 2.4 Síntese de Filtros Digitais 18 2.4.1 Algoritmos de Filtros Digitais Baseado na Representação MSD 19 2.4.2 Algoritmos de Filtros Digitais Baseado na Representação Numérica 22 3 ESTUDO DE CASO 24 3.1 Introdução e conceitos 24 3.2 Sistema Adaptativo 26 3.3 Algoritmos Adaptativos (LMS, NLMS) 28 3.3.1 Algoritmo LMS 30 3.3.2 Algoritmo NLMS 31 3.4 Classificação de filtros digitais 33 3.5 Filtros FIR 33 3.6 Aplicação da técnica MCM em filtros FIR 35 3.7 Aplicação da técnica MCM em filtros digitais adaptativos 36 4 TRABALHOS FUTUROS 38 5 CONCLUSÃO 40 6 REFERÊNCIAS 42

LISTA DE FIGURAS

FIGURA 1 Forma transposta de um filtro FIR de 8 taps 14 FIGURA 2 Diagrama esquemático de um filtro, enfatizando sua participação no ajuste do sinal de entrada para encontrar o sinal desejado 26 FIGURA 3 Sistema adaptativo 28 FIGURA 4 Erro Médio Quadrático (LMS e NLMS) 33 FIGURA 5 Filtro FIR 34 FIGURA 6 Utilização da forma transposta de um filtro como vantagem para aplicação da técnica MCM 36

LISTA DE TABELAS

TABELA 1 Exemplos de representações CSD e MSD 17 TABELA 2 algoritmo do LMS 31 TABELA 3 algoritmo do NLMS 32

LISTA DE ABREVIATURAS

ASIC - Application Specific Integrated Circuit

CSA - Carry Save

CSD Canonical Signed Digit

CSE Common Subxpression Elimination

DSP - Digital Signal Processor

ECG - Eletrocardiograma

FFT Fast Fourier Transform

FIR Finite Impulse Response

IIR Infinite Impulse Response

LMS Least Mean Square

MAC Multiply-Accumulate

MCM Multiple Constant Multiplications

MSD - Minimal Signed Digit

NLMS Normalized LMS

RLS - Recursive Least Square

SAT - Satisfatibilidade booleana

RESUMO

Diversas operações que agregam uma elevada complexidade computacional, tais

como filtros de resposta finita ao impulso (FIR) e Transformada Rápida de Fourier

(FFT) envolvem uma seqüência de operações de multiplicação/acumulação (MAC) com

coeficientes constantes. O fato dos coeficientes serem constantes permite uma grande

simplificação dos circuitos multiplicadores, que podem ser reduzidos a circuitos de

deslocamento e soma. Em muitas operações MAC, uma mesma entrada de dados pode

ser multiplicada por um conjunto de coeficientes, resultando em um problema

conhecido como MCM (Multiple Constant Multiplications). Um exemplo típico é a

forma transposta de um filtro FIR. Neste trabalho, este tipo de problema está sendo

estudado a partir da pesquisa de algoritmos heurísticos que são utilizados para a solução

do problema de maximização da quantidade de compartilhamento de produtos parciais

em uma operação MCM. O objetivo geral deste estudo é verificar as estratégias

utilizadas que podem causar um grande impacto na otimização de MCMs. Dentre estas

estratégias, está sendo investigado o uso de diferentes representações dos coeficientes a

partir da forma Canônica (CSD

Canonical Signed Digit) e da forma Mínima (MSD -

Minimal Signed Digit). Também neste trabalho estão sendo estudados diferentes

algoritmos de filtragem adaptativa (LMS, NLMS, Projeções Afins). Este estudo serve

como base para a futura aplicação dos algoritmos heurísticos neste tipo de problema.

Esta abordagem é motivada pela crescente utilização de técnicas adaptativas na solução

de diversos problemas da engenharia elétrica, tais como sistemas de comunicações,

automação e controle, tratamento de sinais e etc.

Palavras-chave: algoritmos adaptativos, MCM.

TITLE: Study of heuristics algorithms to adaptive digital filters

ABSTRACT

Many operations that add a high computational complexity, such as filters of

Finite Impulse Response (FIR) and Fast Fourier Transform (FFT) involve a sequence of

operations of multiplication/accumulation (MAC) with constant coefficients. The fact of

the coefficients to be constant allows a great simplification of the multiplying circuits,

that can be reduced to shifts and add circuits. In many operations MAC, the same input

data can be multiplied by a set of coefficients, resulting in a known problem as MCM

(Multiple Constant Multiplications). A typical example is the transposed form of a filter

FIR. In this work, this type of problem is being studied from the research of heuristics

algorithms that are used for the solution of the maximization problem of the amount of

sharing of partial products in a MCM operation. The general objective of this study is to

verify the used strategies that can cause a great impact in the optimization of MCMs.

Amongst these strategies, is being investigated the use of different coefficients

representation from the Canonic form (CSD - Canonical Signed Digit) and of the

Minimum form (MSD - Minimal Signed Digit). Also in this work different algorithms

of adaptive filtering (LMS, NLMS, Similar Projections) are being studied. This study

serves as base for the future application of the heuristics algorithms in this kind of

problem. This approach is motivated by the increasingly use of adaptive techniques in

the solution of diverse electrical engineering problems, such as systems of

communications, automation and control, treatment of signals and etc.

Key-words: adaptive algorithms, MCM.

1 INTRODUÇÃO

A integração de sistemas em chips é um desafio tecnológico complexo, para o

qual contribuem um conjunto de técnicas, métodos e conhecimentos das áreas de

informática e engenharia elétrica. O estado da arte da microeletrônica evolui

rapidamente, demandando métodos novos que permitem especificar, projetar e integrar

sistemas em circuitos em diferentes tecnologias. Este trabalho relaciona alguns

conceitos sobre a concepção de arquiteturas e sistemas de hardware dedicados para

tratamento da informação digital para circuitos que envolvem operações MCM.

O projeto de novas arquiteturas dedicadas de circuitos impõe desafios a serem

estudados como a utilização de técnicas que mantenham as condições de operação do

circuito em alto desempenho e baixo consumo de potência. Uma das intenções desse

conteúdo é demonstrar diferentes filosofias de desenvolvimento que podem ser

combinadas para o desenvolvimento de arquiteturas de hardware dedicado para

operações MCM, onde são considerados aspectos de velocidade de cálculo de operação

e baixo consumo de potência. Estas arquiteturas devem ter a capacidade de ativar

apenas os elementos do hardware do bloco MCM que são necessários para o cálculo de

uma dada multiplicação por uma constante. Como exemplo pode-se considerar o fator

atividade de chaveamento no bloco MCM, o qual está diretamente ligado ao consumo

de potência de um circuito eletrônico.

Este trabalho possui ainda a motivação de associar conhecimentos de técnicas

aplicadas a blocos MCM com algoritmos de filtragem adaptativa. Isto é, a exploração de

arquiteturas de filtragem adaptativa em hardware dedicado (ASIC

Applied Specific

Integrated Circuit), agregando técnicas para a otimização do hardware responsável pela

convolução, é um fator determinando para a concretização de boas métricas de custo.

Como os coeficientes não são fixos nas entradas dos multiplicadores para o cálculo da

convolução, há um desafio em estabelecer uma metodologia de projeto que agregue a

aplicação dos algoritmos heurísticos em coeficientes variáveis.

Operações que possuem uma elevada complexidade computacional, tais como

filtros de resposta finita ao impulso (FIR

Finite Impulse Response) e Transformada

Rápida de Fourier (FFT

Fast Fourier Transform) envolvem uma seqüência de

operações de multiplicação/acumulação (MAC Multiply-Accumulate) com coeficientes

constantes. O fato dos coeficientes serem constantes permite uma grande simplificação

dos circuitos multiplicadores, que podem ser reduzidos a circuitos de deslocamento e

soma (NGUYEN et al., 2000). Em muitas operações MAC, uma mesma entrada de

dados pode ser multiplicada por um conjunto de coeficientes, resultando em um

problema conhecido como MCM (Multiple Constant Multiplications) (COSTA et al.,

2005). Um exemplo típico é a forma transposta de um filtro FIR. Neste Trabalho

Individual de Pesquisa (TI), este tipo de problema é estudado a partir da pesquisa de

algoritmos heurísticos que são utilizados para a solução do problema de maximização

da quantidade de compartilhamento de produtos parciais em uma operação MCM

sujeita a uma mesma entrada de dados.

Na dissertação de mestrado, pretende-se investigar o uso de algoritmos

heurísticos em algoritmos de filtragem adaptativa. Desta forma, como passo

intermediário, pretende-se neste TI realizar uma revisão bibliográfica sobre os

principais algoritmos de filtragem adaptativa. Os filtros digitais adaptativos constituem

uma ferramenta imprescindível no processamento estatístico de sinais. Sempre que há

necessidade de processar sinais resultantes de ambientes com estatísticas desconhecidas,

a utilização de um filtro adaptativo constitui uma solução atrativa quando confrontada

com os resultados permitidos pela utilização de um sistema desenhado pelos métodos

convencionais (filtros fixos) (MARQUES). Não seriam necessários sistemas adaptativos

se fosse possível projetar um sistema fixo (não-adaptativo), considerado ótimo, para o

qual fossem previstas todas as possíveis condições de entrada e do qual soubéssemos os

requisitos de desempenho desejados para cada uma dessas condições (FRANCO et al.).

O objetivo geral deste estudo é verificar as estratégias utilizadas que podem

causar um grande impacto na otimização de MCMs. Dentre estas estratégias, será

investigado o uso de diferentes representações dos coeficientes a partir da forma

Canônica (CSD

Canonical Signed Digit) (HARTLEY, 1996) e da forma Mínima

(MSD - Minimal Signed Digit) (PARK et al., 2001). Também neste trabalho individual

serão estudados diferentes algoritmos de filtragem adaptativa (LMS, NLMS). Este

estudo serve como base para a futura aplicação dos algoritmos heurísticos neste tipo de

problema.

2 O problema da Multiplicação por Constantes Múltiplas

(MCM)

Este estudo tem como foco técnicas de otimização de potência em algoritmo de

filtros digitais. Este tipo de algoritmo envolve uma seqüência de operações de

multiplicação/acumulação (MAC) com coeficientes constantes.

Em operações que envolvem operações MAC, o fato dos coeficientes serem

constantes permite uma grande simplificação dos circuitos multiplicadores, que fazem

parte integrante dos filtros digitais. Neste caso, os circuitos multiplicadores podem ser

representados por simples circuitos do tipo desloca-soma. Nos multiplicadores desloca-

soma, quando se tem um bit no nível lógico 1, na posição m do coeficiente, tem-se uma

operação de soma com o dado na entrada deslocado à esquerda de m posições. Deve-se

observar que os deslocamentos não requerem nenhum hardware adicional. Desta forma,

o hardware necessário para uma operação de multiplicação com um valor constante,

com n bits levados para o nível lógico 1, envolve simplesmente n-1 circuitos somadores.

Para validação do estudo proposto, serão mostrados os principais resultados

obtidos em (COSTA et al., 2005) que são comparados com o estado da arte. Neste

contexto, o trabalho científico apresentado por Park e Kang (PARK et al., 2001)

apresenta um algoritmo para a síntese de filtros digitais baseada na representação MSD

(Minimal Signed Digit). Em (PARK et al., 2001) a estratégia consiste na minimização

dos circuitos somadores a partir da representação MSD dos coeficientes constantes.

Neste trabalho será mostrado que em (COSTA et al., 2005), segue-se a mesma

estratégia de minimização de circuitos somadores nos filtros digitais, a partir dos

coeficientes constantes, como em (PARK et al., 2001). Entretanto, a técnica utilizada

em (COSTA et al., 2005) é baseada na busca de todas as combinações que geram um

determinado coeficiente.

A seguir são apresentados os principais conceitos do Problema de Multiplicação

por Constantes Múltiplas (MCM), assim como as principais representações dos

coeficientes com sinal e finalmente os algoritmos heurísticos para a solução do

problema MCM.

2.1 Conceito do Problema MCM

A multiplicação de um valor qualquer H por uma variável Y pode ser feita, em

nível de hardware, utilizando-se apenas somas, subtrações e deslocamentos. Essa opção

é preferencialmente utilizada quando um desses valores é constante. Se o valor H é

constante, então a multiplicação desse valor por qualquer multiplicando Y(n) utilizará a

mesma estrutura (e a mesma seqüência) de somadores, subtratores e deslocadores.

Como exemplo, se um multiplicador é utilizado para fazer a multiplicação de Y x H e

sendo H = 9, então a operação de multiplicação pode ser calculada como:

9 x Y

Y (<< 3) + Y

Nesse exemplo, qualquer valor Y que for multiplicado por H (9) poderá ser

calculado deslocando-o 3 posições à esquerda (que é o mesmo que multiplicar um valor

por 8) e somando-lhe uma vez seu próprio valor (Y). Esse tipo de solução é

fundamentalmente uma Transformação Computacional, ou seja, o resultado de uma

mesma computação é obtido de outra maneira. A principal motivação dessa

transformação, especificamente, é obter o menor número de somas e subtrações. Quanto

menor esse número, menor o custo da sua implementação em hardware. Desconsidera-

se o uso de deslocamentos (<<3) como um custo. Isso porque o deslocamento de um

número é feito, em hardware, somente com a adição de fios.

Diversas operações que agregam uma elevada complexidade computacional, tais

como filtros de resposta finita ao impulso (FIR) e Transformada Rápida de Fourier

(FFT), envolvem uma seqüência de operações de multiplicação/acumulação (MAC)

com coeficientes constantes. O fato dos coeficientes serem constantes permite uma

grande simplificação dos circuitos multiplicadores. Conforme visto, circuitos

multiplicadores podem ser simplificados a circuitos de deslocamento, soma e subtração.

Em muitas operações MAC, uma mesma entrada de dados (Y(n)) pode ser multiplicada

por um conjunto de coeficientes constantes (ou bloco multiplicador), resultando em um

problema conhecido como Multiplicação por Constantes Múltiplas (MCM - Multiple

Constant Multiplications). Um exemplo típico desse problema é a forma transposta de

um filtro FIR, conforme mostra a FIGURA 1.

FIGURA 1 Forma transposta de um filtro FIR de 8 taps.

2.2 Classificação de técnicas para o problema MCM

Para encontrar o maior compartilhamento de subexpressões em comum entre

todas as constantes de um bloco multiplicador, existem diferentes técnicas (algoritmos).

De acordo com VORONENKO (VONORENKO 2007), os algoritmos de MCM

existentes podem ser divididos em quatro classes gerais: Recodificação baseada em

Dígito, Algoritmos de eliminação de subexpressões comum (CSE), Algoritmos

baseados em Grafos e Algoritmos híbridos.

2.2.1 Recodificação baseada em dígito

A recodificação baseada em dígito inclui métodos simples como CSD e o

método binário. Geram a decomposição diretamente da representação dos dígitos da

constante. Estes métodos são os mais rápidos e os de pior resultado. Entretanto, uma

aproximação mais recente usa sistemas de número diferentes para encontrar soluções

consideravelmente melhores. A principal vantagem da técnica de Recodificação baseada

em Dígito é seu custo computacional baixo, tipicamente linear no número de bits.

Conseqüentemente, estes métodos podem facilmente ser aplicados a constantes com

milhares de bits.

2.2.2 Algoritmos de eliminação de subexpressões comuns (CSE)

Algoritmos de eliminação de subexpressões comuns (CSE) são descendentes

diretos do método de recodificação baseada em dígito. A idéia básica é encontrar

padrões comuns nas representações das constantes depois que as constantes são

convertidas para um sistema numérico conveniente tal como CSD. A desvantagem,

entretanto, é que o desempenho destes algoritmos depende da representação numérica.

Além disso, mesmo que o problema CSE considerado seja NP-completo, sua solução

ótima no geral não fornece a solução ótima do MCM. Mais recentemente têm sido

propostas representações numéricas alternativas para encontrar soluções

consideravelmente melhores usando um algoritmo CSE (Common Subexpression

Elimination).

2.2.3 Algoritmos baseados em grafos

Algoritmos baseados em Grafos são métodos bottom-up que constroem

iterativamente um grafo que representa o bloco multiplicador. A construção do grafo é

guiada por uma heurística que determina o próximo vértice do grafo que será adicionada

ao grafo. Algoritmos baseados em Grafos oferecem mais liberdade por não serem

restritos a uma representação particular dos coeficientes, ou a uma topologia de grafo

pré-definida (como os algoritmos baseados em dígitos), e tipicamente produzem

soluções com o menor número de operações.

2.2.4 Algoritmos híbridos

Os algoritmos híbridos combinam algoritmos diferentes, possivelmente de

classes diferentes. Como exemplo, em (CHOO 2004), citado por (VORONENKO

2007), constrói-se o grafo do bloco multiplicador com topologia fixa para computar

"coeficientes diferenciais", e então os comuta para um algoritmo de CSE para

multiplicação por coeficientes diferenciais.

2.3 Fundamentação Teórica

Como a complexidade dos filtros digitais é determinada pelo número de

multiplicações, vários trabalhos têm focado na minimização da complexidade dos

blocos multiplicadores que realizam a operação de multiplicação de dados por

coeficientes constantes nos filtros digitais (SAMUELI, 1989, POTKONIAK et al.,

1994, DEMPSTER et al., 1995, MEHENDALE et al., 1995). A complexidade dos

blocos multiplicadores pode ser significativamente reduzida pela utilização de uma

representação eficiente dos números. A representação CSD (Canonical Signed Digit)

tem sido utilizada para garantir um número mínimo de adições para uma multiplicação

de constantes (HARTLEY, 1996, HASHEMIAN et al., 1997). Apesar da representação

CSD ser uma boa alternativa para um valor constante, esta técnica não se torna atrativa

para múltiplos valores constantes devido ao fato da representação CSD de uma

constante ser única e independente de outras constantes, levando a um número limitado

de subexpressões. Por outro lado, a representação MSD é atrativa devido ao fato de

fornecer um número de formas que apresentam um número mínimo de dígitos

diferentes de zero para uma constante. Esta redundância da representação MSD pode

levar a filtros eficientes, se é selecionada uma representação MSD adequada para cada

coeficiente constante. De outra forma, o aumento do espectro de busca a todas as

combinações que geram os coeficientes pode reduzir ainda mais a complexidade dos

blocos multiplicadores, visto que pode haver um aumento do compartilhamento entre os

coeficientes constantes.

2.3.1 Representação de Dígitos com Sinal CSD e MSD

Diversos fatores influenciam a modelagem do problema MCM. Um desses

fatores, e que agrega um grande impacto na otimização de blocos MCM, é a

representação de dígitos usada para codificar as constantes de multiplicação. A

representação de dígitos com sinal (SD

Signed-Digit), também chamada de

representação redundante de números, foi proposta por Algirdas Avizienis na década de

60 (AVIZIENIS, 1961). A representação de uma constante com n-bits pode ser escrita

como:

onde bi representa um elemento do conjunto {2,0,1} e 2 representa -1.

Pode-se citar como descendentes da representação de Azivienis a representação

Canônica de Dígitos com Sinal (CSD

Canonical Signed Digit) (HARTLEY, 1996) e a

representação Mínima de Dígitos com Sinal (MSD

Minimal Signed Digit) (PARK et

al., 2001).

A representação CSD é um sistema de dígitos com sinal radix-2, com o conjunto

de dígitos {2,0,1}, onde 2 significa -1. Dada uma constante, a representação CSD

correspondente é única e possui duas propriedades. A primeira é que o número de

dígitos não zero é mínima e a segunda é que o produto de dois dígitos adjacentes é zero,

ou seja, dois dígitos não-zero não são adjacentes. Devido à primeira propriedade, a

representação CSD é amplamente utilizada na implementação de blocos MCM porque

garante o menor número de somas para uma multiplicação por uma constante. A

segunda propriedade é conhecida como propriedade "M". Se a representação de uma

constante satisfaz a propriedade M, sua representação é CSD.

Se a segunda propriedade não é exigida na representação CSD, ela é chamada de

representação Mínima de Dígitos com Sinal (MSD

Minimal Signed Digit). Uma

constante, seja ela qual for, não tem uma única representação qualquer mas muitas

representações MSD.

Embora a representação CSD seja ótima para um único valor qualquer (garante o

menor número de somas), é difícil considerar que seja a melhor para diversos valores

(como no caso de constantes múltiplas) porque um número é representado de maneira

única na representação CSD. Como a representação MSD é um super conjunto da

representação CSD e fornece um maior número de formas, a representação MSD é mais

apropriada para se encontrar subexpressões comuns para constantes múltiplas se as

formas MSD apropriadas forem selecionadas para cada constante a ser sintetizada.

Então, se o método de representação afeta o número de adições (ou subtrações) do bloco

de multiplicação a ser decomposto e o número de subexpressões comuns que podem ser

eliminadas, há uma influência significativa na área resultante e no consumo de potência.

Na TABELA 1 abaixo, são demonstrados alguns exemplos de representações CSD e

MSD:

Valor

CSD MSD Valor

CSD MSD

33 100001

100001

100012

100122

101222

112222

36 100100

100100

101200

112200

34 100010

100010

100120

101220

112220

37 100101

100101

101201

112201

100112

101212

112212

101022

112022

35 100102

100011

100121

101221

112221

100102

101202

112202

38 101020

100110

101210

112210

101020

112020

TABELA 1 Exemplos de representações CSD e MSD

Observando a TABELA 1 é possível perceber a acentuada diferença de opções

entre as representações de dados CSD e MSD. Para um algoritmo que pretende buscar o

melhor match de combinações entre todos os coeficientes de um filtro, nota-se a

vantagem da representação MSD. Em contrapartida, é mais difícil projetá-lo e construí-

lo. O contrário se pode dizer da representação CSD.

2.4 Síntese de Filtros Digitais

O projeto de filtros digitais tem recebido especial atenção nos últimos anos pelo

fato destes circuitos apresentarem um grande número de multiplicações. Este fato

contribui para elevados valores de área e consumo de potência apresentados por este

algoritmo. Desta forma, torna-se importante o emprego de eficientes algoritmos que

possam apresentar otimizações nos blocos multiplicadores dos filtros digitais. Nesta

seção apresentamos os diferentes algoritmos para a síntese de filtros digitais em

diferentes representações.

2.4.1 Algoritmos de Filtros Digitais Baseado na Representação MSD

No algoritmo de Park (PARK et al., 2001), o primeiro passo consiste na geração

de todas as representações MSD para cada coeficiente. Após, um coeficiente com um

número mínimo de dígitos diferentes de zero é selecionado para a primeira síntese. As

somas intermediárias, que podem ser obtidas dos somadores usados para os coeficientes

sintetizados, são registradas como somas parciais. Entre os coeficientes ainda não

sintetizados, seleciona-se um coeficiente que pode ser implementado com o mínimo de

somadores adicionais. Desta forma, o próximo coeficiente a ser sintetizado pode ser

implementado com o uso das somas parciais previamente definidas.

Vale ressaltar que no algoritmo de Park, Cset representa o conjunto de

coeficientes a serem sintetizados e Patset representa o conjunto de padrões de somas

parciais usado para sintetizar o coeficiente selecionado. A seguir é apresentado o

algoritmo de Park.

Passo 1. Coeficientes ímpares são transformados em par dividindo por uma potência de

2. Coeficietes negativos são convertidos em positivos. Os coeficientes que possuem o

mesmo valor que outros coeficientes são removidos. Os coeficientes restantes são

inseridos no Cset.

Passo 2. Obtem-se todas as representações CSD e MSD dos elementos no Cset.

Passo 3. Insere 1 no Cset.

Passo 4. Se há um elemento no Cset que tem a mesma representação MSD com valor

deslocado de um elemento no Cset, ele é removido do Cset. Se não há elementos no

Cset, termina. Repete essa etapa até que não haja elementos no Cset.

Passo 5. Se há um elemento no Cset que tem a mesma representação MSD com uma

combinação deslocada de dois elementos no Cset, ele é removido e inserido no Cset. Se

não há elementos no Cset, termina. Repete essa etapa até que não haja elementos no

Cset.

Passo 6. Se há um elemento no Cset que tem a mesma representação MSD com uma

combinação deslocada de três elementos no Cset, ele é removido e inserido no Cset. Se

não há elementos restantes no Cset, termina. Se nenhum elemento for removido do Cset

nos passos 4, 5 e 6, vai para o passo 7. Caso contrário, vai para o passo 4.

Passo 7. Para cada elemento no Cset, faça uma combinação deslocada de duas somas

parciais no Cset e verifica se o padrão das combinações deslocadas está incluído em

uma representação MSD do elemento. Seleciona-se uma combinação que maximiza o

match para uma representação MSD. Após fazer isso para todos elementos restantes,

seleciona-se um elemento o qual possui o maior match de combinações de duas somas

parciais. O padrão da combinação é registrado como uma nova soma parcial. Um novo

elemento obtido pela remoção da combinação selecionada é inserida no Cset. Vai para o

passo 4.

No algoritmo acima apresentado, o passo 1 é a preparação do algoritmo. A

divisão ou multiplicação por uma potência de 2 pode ser implementada utilizando

apenas o deslocamento e a negação pode ser implementada substituindo os somadores

por circuitos subtratores. O passo 2 gera as representações CSD e MSD para cada

coeficiente. No passo 3, um valor 1 é inserido no Patset devido ao fato deste valor não

precisar de nenhum circuito somador. Os circuitos somadores iniciais são derivados das

combinações deslocadas deste valor. No passo 4, os elementos presentes em Cset, que

já estão no Patset, são removidos do Cset. No passo 5 ocorre a seleção dos elementos

que podem ser sintetizados com apenas um somador. No passo 6, os elementos que

precisam de dois somadores são sintetizados. Finalmente, no passo 7 ocorre uma

aproximação do coeficiente em busca de um elemento no Cset. São realizadas

combinações de elementos dois a dois do Patset. Cada elemento resultante desta

combinação é comparado com o elemento do Cset. O elemento resultante que mais se

aproximar de Cset (apresentar o maior número de bits iguais a 1), é escolhido para ser

sintetizado com apenas um elemento somador.

No algoritmo de Park é apresentada uma restrição que diz que, quando ocorre a

combinação deslocada de elementos, não deve haver conflito entre os elementos

resultantes da combinação. Isto significa que não é permitido que dois ou mais

elementos apresentem um ou mais dígitos iguais e diferentes de zero simultaneamente.

Neste caso, um ou mais bits de cada elemento não podem apresentar valores iguais a 1

ou iguais a 2 ou iguais a 1 e 2 simultaneamente. Caso isto ocorra, o resultado da

combinação é zero.

No trabalho de (COSTA et al., 2005), inicialmente efetua-se a implementação do

algoritmo de Park considerando todos os detalhes de implementação propostos. Em

seguida efetua-se a uma extensão deste algoritmo procurando detalhar o estudo do

relacionamento entre o número de somadores e o caminho crítico (número de adder-

steps). Para tal, as seguintes tarefas são realizadas em (COSTA et al., 2005):

1 - Geração automática de coeficientes de diferentes filtros digitais. Para a geração dos

diferentes filtros utilizou-se a ferramenta matlab. Filtros com diferentes números de bits

e diferentes números de coeficientes são utilizados. As características mais detalhadas

destes filtros são apresentadas posteriormente.

2 - Implementação de algoritmo para geração de padrões CSD e MSD dos coeficientes.

No trabalho proposto em (PARK et al., 2001), apresenta-se um algoritmo para a geração

de padrões CSD e MSD dos coeficientes. Em (COSTA et al., 2005), este algoritmo foi

implementado.

3 - Implementação do algoritmo de Park, considerando a restrição quanto ao conflito de

digitos entre os elementos. Esta implementação corresponde ao algoritmo apresentado

em (PARK et al., 2001) sem nenhum tipo de modificação. Nesta implementação

procura-se implementar o algoritmo de modo a obter resultados próximos aos resultados

apresentados em (PARK et al., 2001).

4 - Implementação do algoritmo sem considerar a restrição quanto ao conflito de dígitos

entre os elementos. Nesta versão, a implementação do algoritmo é baseada no aspecto

de que dois ou mais elementos podem apresentar valores de bits iguais a 1 ou iguais a 2

em posições simultâneas. Neste caso, todos os resultados da combinação (soma e

subtração) dos elementos é considerada.

5 - Implementação do algoritmo buscando minimizar o número de adder-steps. Nesta

implementação, os valores resultantes da combinação de 2 (step 5) ou 3 elementos (step

6), que estejam presentes em Cset, não são diretamente escritos em Patset. Estes valores

são escritos em um Patset temporário no sentido de tentar encontrar elementos com a

mesma representação, mas com menor número de níveis (menor profundidade lógica).

Após esta etapa de comparação é que finalmente os elementos são escritos em Patset e

retirados de Cset.

6 - Implementação do algoritmo considerando todos os coeficientes com a

representação decimal. Nesta implementação não há o procedimento de geração de

padrões CSD e MSD dos coeficientes dos filtros. Os coeficientes são lidos com seus

valores decimais e são processados da mesma forma pelo algoritmo (com as devidas

modificações necessárias). Neste caso, todas as representações se encontram presentes

no formato decimal.

2.4.2 Algoritmos de Filtros Digitais Baseado na Representação Numérica

As representações numéricas anteriormente comentadas podem ser usadas para

afirmar que existe uma relação direta entre a codificação do coeficiente e a variação de

soluções, sendo, portanto um fator determinante para o modelo que nela se inspira e

para o algoritmo que a ele o implementa. O interesse em aplicar novas formas de

representação de coeficientes, por exemplo, aquelas que não estejam em nível de bits,

devem ser levadas em consideração quando se deseja obter resultados diferentes

(melhores) dos existentes por técnicas gulosas . Modelos e algoritmos de otimização

exatos ou aproximativos, inclusive técnicas evolutivas, podem ser considerados na

elaboração de um novo modelo. Ultimamente, sabe-se que a composição de técnicas ou

técnicas híbridas tem se mostrado mais eficiente para a solução de problemas

complexos, pois a grande maioria deles é naturalmente uma composição de

subproblemas.

Existem outros algoritmos que não utilizam uma representação específica de

dados, como a CSD e a MSD, para a busca de subexpressões comuns. São chamados de

Algoritmos Numéricos. O mesmo ganho de resultados se comparados aos algoritmos

que utilizam a codificação de dados, com ganhos superiores em alguns casos (ganho na

redução de hardware ao custo de um maior caminho crítico). Os algoritmos

apresentados anteriormente não possuem nenhum mecanismo para contabilizar a

profundidade (número de somas/subtrações entre a entrada e a saída do resultado) do

bloco multiplicador. Em razão de possuir esse controle, o algoritmo original (PARK) foi

modificado de maneira a associar esse dado de cada termo parcial no Patset. Enquanto é

mantido o objetivo de maximizar o compartilhamento de termos parciais, quando a mais

de uma opção faz-se a seleção da combinação que minimiza a profundidade da nova

combinação (menor número de níveis).

A função de fitness ou custo mais usada para a comparação de arquiteturas

MCM tem sido o número de operadores. Entretanto, quando uma arquitetura MCM é

sintetizada em hardware, nem todos estes operadores têm o mesmo custo de área (ou de

atraso ou de consumo de potência). Esta situação resulta principalmente da dimensão

(em termos do número de bits) destes operadores variar de acordo com a sua posição na

arquitetura. Portanto, novos modelos de otimização, nos quais a função de custo esteja

fortemente relacionada com o hardware sintetizado, podem ser desenvolvidos.

Provavelmente, será necessário incorporar nesse modelo informações sobre células

específicas da biblioteca tecnológica alvo, potencializando sua otimização para a

implementação final em hardware. Um algoritmo heurístico genérico pode ser

sumariamente designado em pseudo-código pelos seguintes passos:

1 Expressar cada constante usando uma representação numérica (CSD, MSD);

2

Determinar o n.º de matches entre todas constantes;

3 Escolher o melhor match;

4

Eliminar a redundância do passo 3 e retornar os descartados para o conjunto de

coeficientes;

5 Repetir de 2 a 4 até que não seja possível mais combinações

3 ESTUDO DE CASO

3.1 Introdução e conceitos

No capítulo anterior foram apresentadas algumas técnicas de otimização para a

resolução de um problema conhecido como multiplicação por constantes múltiplas

(MCM). Nesse capítulo será estudada a aplicação dessas técnicas em filtros digitais.

Aqui são apresentados alguns conceitos básicos nessa respectiva área, para que se

compreenda melhor a aplicação da técnica MCM em problemas de filtragem digital de

sinais. Ao final desse capítulo, a aplicação do problema MCM é considerada em filtros

digitais adaptativos.

Do latim filtru, o termo filtro significa feltro que é um elemento que deixa passar

ou barra determinado produto, elemento ou energia de acordo com o uso físico que se

dá a este. Um filtro digital é um filtro que opera com sinais digitais, como o som

representado dentro de um computador. É uma computação que recebe uma seqüência

de números (sinal de entrada) e produz uma nova seqüência de números (sinal de saída

filtrado). Em outras palavras, um filtro digital é somente uma fórmula para obter um

sinal digital a partir de outro (SMITH, 2005). Filtros digitais são usados para duas

finalidades gerais: i) separação dos sinais que foram combinados, e ii) restauração dos

sinais que foram distorcidos de alguma maneira. Os filtros (eletrônicos) analógicos

podem ser usados para estas mesmas tarefas, entretanto, filtros digitais podem conseguir

resultados consideravelmente superiores (SMITH, 1999).

Os filtros digitais são uma parte importante de um Processador Digital de Sinais

(DSP

Digital Signal Processor). De fato, seu desempenho extraordinário é uma das

razões chave pela qual o DSP se tornou popular. Como mencionado, filtros digitais

possuem duas aplicações principais: restauração do sinal e separação do sinal. A

separação do sinal é feita quando um sinal foi contaminado com alguma interferência,

ruído, ou outros sinais. Como exemplo, imagine um dispositivo para medir a atividade

elétrica do coração de um bebê (Eletrocardiograma

ECG) quando ainda em gestação.

O sinal provavelmente estará contaminado pela respiração e pelos batimentos do

coração da mãe. Um filtro pode ser usado então para separar estes sinais de modo que

possam individualmente ser analisados.

A restauração do sinal é usada quando um sinal está distorcido de alguma

maneira. Como exemplo, uma gravação de áudio feita com equipamento de baixa

qualidade pode ser filtrada para representar melhor o som, como realmente ocorreu.

Outro exemplo é a aquisição de uma imagem com uma lente impropriamente

focalizada, ou uma câmera trêmula.

Filtros podem ser lineares ou não-lineares. A caracteristica mais básica de um

sistema linear é que seu comportamento é governado pelo princípio da superposição.

Isso significa que se a resposta de um sistema linear de tempo discreto para uma

seqüência de entrada x1(n) e x2(n) é y1(n) e y2(n), respectivamente, então a resposta do

mesmo sistema para uma seqüência de entrada x(n) = ax1(n) + bx2(n), onde a e b são

constantes arbitrárias, será y(n) = ay1(n) + by2(n). Em particular, um sistema linear é

completamente caracterizado pela sua resposta ao impulso ou pela transformada de

Fourier da sua resposta ao impulso, conhecida como função transferência. A função

transferência de um sistema em qualquer freqüência é igual ao seu ganho nessa

freqüência. Em outras palavras, pode-se dizer que a função transferência de um sistema

determina como os vários componentes de uma freqüência são ajustados pelo sistema

(FARHANG-BOROUJENY, 1999).

A FIGURA 2 representa um filtro sendo usado para ajustar sinais de entrada de

maneira que sua saida seja uma boa estimação de um dado sinal desejado. O processo

de selecionar os parâmetros do filtro (coeficientes) tanto quanto realizar a melhor

equalização entre o sinal desejado e a saida do filtro é feito por uma função de

otimização definida como função performance. A função performance pode ser definica

com uma estrutura estatistica ou deterministica. Na abordagem estatística, a função

performance mais usada é a mean-square value (valor médio quadrático) do sinal de

erro, ou seja, a diferença entre o sinal desejado e a saída do filtro. Para entradas

estacionárias e sinais desejados, minimizar o mean-square error (erro médio

quadrático) resulta no conhecido filtro de Wiener, o qual é assim conhecido por ser

ótimo no sentido mean-square (média quadrática). Na abordagem determinística, uma

escolha comum de função performance é a soma dos pesos do sinal de erro quadrático.

Minimizar essa função resulta em um filtro ótimo para um conjunto de dados

(FARHANG-BOROUJENY, 1999).

FIGURA 2 Diagrama esquemático de um filtro, enfatizando sua participação no ajuste

do sinal de entrada para encontrar o sinal desejado

O estudo da filtragem adaptativa ganhou impulso com o desenvolvimento do

algoritmo LMS por Widrow e Hopf em 1959, e tem recebido considerável atenção de

muitos pesquisadores nas últimas décadas. Este interesse deve-se ao fato de muitos

problemas práticos não poderem ser resolvidos de maneira satisfatória através da

utilização de filtros digitais (ALMEIDA, 2004). Assim, o uso de filtros adaptativos

permite a expansão das capacidades de processamento que não seriam possíveis de

outra forma. O fluxograma abaixo descreve que o processo de um sistema de filtragem

adaptativa consiste na utilização de um filtro adaptativo para processar sinais resultantes

de ambientes com estatísticas estocásticas, fornecendo na saída um sinal tratado que

atende aos critérios do filtro adaptativo.

SINAIS DE ENTRADA FILTRO ADAPTATIVO SINAIS DE SAÍDA

3.2 Sistema Adaptativo

Um sistema adaptativo é aquele cuja estrutura é alterável (através do ajuste dos seus

coeficientes) de tal forma que seu comportamento melhore de acordo com algum

critério de desempenho através da exposição ao ambiente no qual será inserido

(ALMEIDA, 2004). O ajuste dos coeficientes do filtro adaptativo é realizado através da

implementação de um algoritmo, devidamente escolhido, cujo objetivo é atender a

requisitos do sistema. Estes algoritmos são definidos como algoritmos adaptativos.

Segundo Widrow e Stearns (WIDROW, 1985) os sistemas adaptativos possuem todas

ou algumas destas características abaixo listadas:

Adaptação automática à medida que ocorre a modificação do ambiente e/ou

mudança das necessidades do sistema (auto-otimização);

Possibilidade de serem treinados para desenvolver uma tarefa específica de

filtragem ou decisão, ou seja, podem ser programados através de um processo de

treinamento (auto-programáveis);

Em virtude disso, não precisam de procedimentos elaborados de síntese (são

basicamente auto-programáveis);

Podem extrapolar o espaço de conhecimento e lidar com novas situações após o

treinamento com um pequeno conjunto de padrões de entrada (auto-

aprendizado);

Até certo ponto podem reparar a si mesmos, ou seja, podem adaptar-se em

regiões próximas da ótima mesmo quando sujeitos a certos tipos de defeitos ou

limitações;

Geralmente são mais complexos e difíceis de analisar que sistemas não

adaptativos, mas oferecem a possibilidade de um desempenho substancialmente

melhor quando as características do ambiente são desconhecidas ou variantes no

tempo.

A operação de um sistema de filtragem adaptativa envolve dois processos básicos: o

processo de filtragem com o objetivo de produzir uma saída em resposta a uma

seqüência de entrada; e o processo adaptativo. O propósito é fornecer um mecanismo

para ajuste de um conjunto de parâmetros utilizados no processo de filtragem

(ALMEIDA, 2004).

A estrutura de um sistema adaptativo é representada pela FIGURA 3. Neste

sistema sua saída é modificada de tal forma que seu comportamento sofre alterações de

acordo com o critério desejado. Neste exemplo observa-se um sistema em diagrama de

blocos representando um sistema adaptativo, com uma seqüência de entrada x(n), o

filtro FIR e a saída y(n): um sinal d(n) que representa a resposta desejada, e que

subtraindo do sinal y(n) gera o valor de erro e, que é o valor da diferença entre o sinal

desejado e a estimativa do filtro. A equação abaixo apresenta a expressão que representa

o valor de erro, dada por:

e(n)=d(n)-y(n)

FIGURA 3 Sistema adaptativo

A partir desta percepção verifica-se que o objetivo final do filtro é estimar seu

valor de saída, aproximando ao máximo este resultado com o valor desejado, até atingir

o valor de erro nulo ou próximo de zero. A realimentação do filtro com o sinal de erro

procura forçar o sistema a esta adaptação.

O funcionamento de um filtro adaptativo possui dois estágios, chamados

convergência e regime. No estágio de convergência, o filtro adaptativo inicia de um

conjunto inicial de parâmetros e converge para uma solução ótima. Após o estágio de

convergência, o filtro adaptativo entra em regime, na qual a solução ótima é mantida, se

essa for variante no tempo. Os critérios de desempenho mais importantes de um

algoritmo de filtragem adaptativa são a velocidade de convergência (ou taxa de

convergência) e o seu ajuste. A velocidade de convergência descreve o comportamento

transitório do algoritmo no estágio de convergência. É definida como o número de

iterações requerida pelo algoritmo para convergir até uma solução ótima. O ajuste

descreve o comportamento do algoritmo no estágio de regime. É uma medida

quantitativa pelo qual o valor da média final total do erro médio quadrático excede o

mínimo erro médio quadrático produzido pelo filtro ótimo de Wiener (ÇABUK, 1998).

3.3 Algoritmos Adaptativos (LMS, NLMS)

O desempenho de um filtro adaptativo é diretamente dependente do algoritmo

adaptativo utilizado no filtro. Os algoritmos de filtragem adaptativa têm diferentes

velocidades de convergência e características de ajuste. Sem ter qualquer restrição no

processo de entrada do filtro adaptativo, os algoritmos têm aumento na velocidade de

convergência com aumento da complexidade computacional. Além disso, um algoritmo

talvez tenha diferentes velocidades de convergência dependendo dos valores dos seus

parâmetros de projeto. Normalmente, a um compromisso entre a velocidade de

convergência atingível e os valores de ajuste. Quando os parâmetros são ajustados para

obter uma convergência mais rápida, o ajuste se torna maior, e vice-versa. Um

algoritmo que provê convergência rápida e ajuste mínimo é o ideal (ÇABUK, 1998).

Entre os diversos algoritmos existentes na literatura, pode-se citar o LMS, o

Normalized-LMS (NLMS), o Recursive Least Square (RLS) e o Affine Projection (AP)

(ALMEIDA, 2004), entre outros. Cada um destes algoritmos apresenta características

bem peculiares, o que faz com que a escolha de um deles seja baseada com o tipo de

problema a que ele será aplicado (MITRA, 2003).

Em particular, uma das aplicações onde a filtragem adaptativa tem permitido

excelentes resultados é no cancelamento de eco acústico. O eco acústico é um fenômeno

causado pela reflexão do som. Ele ocorre quando uma fonte emissora emite e recebe de

volta, além do retorno direto, outra versão do som, refletido (e distorcido) por uma

superfície, após um determinado intervalo de tempo, resultando em repetição do som

original. Assim, quando ocorre o evento, surge uma dificuldade em estabelecer

comunicação, em virtude deste retorno. Como exemplo clássico, temos as redes de

telecomunicações, aonde o eco vem a ser a principal fonte de deterioração.

No processo de cancelamento de eco acústico, diversas estruturas de hardware são

estudadas. Tais estruturas são baseadas em processadores digitais de sinais (DSP's)

(COSTA, 2002) (MITRA, 2003). Entretanto, conforme já mencionado, o melhor

desempenho de um sistema adaptativo está diretamente relacionado ao algoritmo

adaptativo implementado. Assim, além da implementação de variados algoritmos

adaptativos, também é necessário ter o conhecimento das técnicas de redução de

potência e de aumento de desempenho, a fim de alcançar métricas necessárias para o

funcionamento.

O desempenho de um algoritmo adaptativo pode ser avaliado por um conjunto de

características. Segundo (HAYKIN, 2001) as principais são:

Taxa de convergência: define o número de iterações necessárias para o algoritmo

levar os coeficientes do filtro para um valor em torno da solução ótima do

Wiener, no sentido médio quadrático;

Desajuste: é a medida quantitativa da diferença entre o erro médio quadrático

residual devido ao algoritmo e o erro médio quadrático mínimo, que é produzido

pelo filtro de Wiener;

Tracking: capacidade do algoritmo de acompanhar as variações das

características estatísticas dos sinais em um meio não-estacionário. Seu

desempenho é influenciado pela taxa de convergência e pelas flutuações em

regime permanente;

Robustez: capacidade do algoritmo operar satisfatoriamente com sinal de entrada

mal condicionado;

Complexidade Computacional: número de operações por iteração do algoritmo.

Este fator pode determinar a viabilidade de sua implementação em tempo real;

Estrutura: o filtro adaptativo pode ser implementado utilizando-se diversas

estruturas, tais como treliças, forma transversal e outras;

Estabilidade numérica: filtros adaptativos freqüentemente precisam ser

implementados em processadores digitais de sinais (DSP's), os quais operam

com aritmética de precisão finita. Um algoritmo é considerado numericamente

estável se o vetor de erro nos coeficientes do filtro permanece limitado ao longo

do processamento com precisa finita.

3.3.1 Algoritmo LMS

O algoritmo LMS continua sendo o mais utilizado em aplicações práticas por:

Sua baixa complexidade e fácil implementação;

A garantia de sua convergência desde que ocorra uma escolha correta de seu

passo de adaptação.

O algoritmo é baseado no algoritmo do passo descendente (steepest-descent) cuja

adaptação do vetor de coeficientes é dada por (n) (HAYKIN, 2001), observado pela

equação abaixo:

onde µ é denominado o tamanho do passo de adaptação (step-size), cujo valor deve ser

criteriosamente escolhido para garantir a convergência do algoritmo (HAYKIN, 2001).

Na prática (n) é um valor que não pode ser obtido com exatidão, tendo em vista

que tanto o vetor de correlação cruzada p quanto a matriz de autocorrelação R são

desconhecidos, e somente seus valores do instante k são conhecidos no instante k.

Assim, uma maneira de contornar o problema é utilizar valores estimados. Como

características do algoritmo LMS pode-se citar:

Possui uma velocidade de convergência lenta.

Possui baixa complexidade.

São sensíveis à potência do sinal de entrada, e isso influencia em seu resultado.

Apresenta dificuldades e lentidão para convergir quando utilizados sinais de

entrada correlacionados.

Para a implementação do algoritmo LMS, emprega-se o algoritmo que consta na tabela

abaixo:

TABELA 2 algoritmo do LMS

3.3.2 Algoritmo NLMS

O algoritmo LMS Normalizado surgiu como um avanço do LMS (MITRA,

2003). O algoritmo LMS apresenta como um dos principais problemas a sensibilidade a

potência do sinal de entrada. Para resolver este problema, o LMS Normalizado emprega

uma normalização do sinal de entrada, tornando-o imune a variação de potência na

entrada.

Como características do algoritmo NLMS pode-se citar que ele:

Possui maior velocidade de convergência que o LMS.

É um pouco mais complexo que o LMS, mas ainda assim possui baixa

complexidade, se comparado com outros algoritmos apresentados na literatura.

É imune a alterações da potência do sinal de entrada, pois normaliza a entrada do

sinal.

E assim como o LMS apresenta baixa taxa de convergência para sinais de

entrada correlacionados.

A equação abaixo representa o algoritmo NLMS normalizado.

Para a implementação do algoritmo LMS normalizado, emprega-se o algoritmo da

tabela abaixo:

TABELA 3 algoritmo do NLMS

Na figura abaixo é apresentado um gráfico de comparação entre o

comportamento do LMS e do NLMS. As diferentes taxas de convergência para a

mesma situação entre os dois algoritmos (LMS e NLMS) podem ser observadas no

gráfico. No LMS, é possível perceber a necessidade de um tempo maior de adaptação

até convergir para o regime permanente, quando comparado ao NLMS. Pode-se

observar também que o NLMS, apesar de ser mais rápido para a convergência,

apresenta um erro maior em regime que o LMS, quando são utilizadas as mesmas

condições de operação. O LMS e o NLMS são algoritmos diferentes, que possuem

características de modos de utilização diferentes.

FIGURA 4 Erro Médio Quadrático (LMS e NLMS)

3.4 Classificação de filtros digitais

Os ltros digitais são classi cados corriqueiramente em 2 tipos: filtro de

Resposta Finita ao Impulso (FIR

Finite Impulse Response, somente entradas prévias

ou não-recursivo) e filtro de Resposta Infinita ao Impulso (IIR

In nite Impulse

Response, entradas e saídas prévias ou recursivo). Essa classificação refere-se mais

especificamente ao tipo de resposta ao impulso unitário, mas existem outras

classificações para filtros digitais. De acordo com a parte do espectro de freqüência que

deixam passar ou atenuam podem ser do tipo passa alto, passa baixo, passa banda,

rejeita banda, entro outros. De acordo com sua ordem podem ser de primeira ordem, de

segunda ordem, etc., e podem ainda ser classificados de acordo com a estrutura que os

implementa. Nesse trabalho está sendo considerada apenas a utilização de filtros FIR.

3.5 Filtros FIR

Filtros digitais de resposta finita ao impulso (FIR) são amplamente utilizados na

área de processamento digital de sinais, com destaque para os aspectos de estabilidade e

fácil implementação. Filtros FIR são estruturas responsáveis pelas características do

processo de filtragem, e respondem pela duração da resposta impulsional deste filtro.

Um filtro FIR pode ser implementado usando tanto técnicas recursivas quanto não

recursivas, mas comumente técnicas não recursivas são usadas. Os coeficientes de um

filtro, que são um conjunto de constantes, também chamados de tap weight, são usados

para multiplicar amostras atrasadas do sinal de entrada com a estrutura digital do filtro.

O projeto de um filtro digital é a tarefa de determinar os coeficientes do filtro que

renderão a resposta em freqüência desejada. Para um filtro FIR, por definição, os

coeficientes do filtro são a resposta ao impulso do filtro. Na FIGURA 5 é apresentada a

ilustração da estrutura de um filtro transversal, onde o número de elementos de atraso

determina a duração finita da sua resposta ao impulso (também chamada de ordem de

um filtro FIR), representados por Zn.

FIGURA 5 Filtro FIR

Os filtros FIR são utilizados no processo de filtragem no domínio de uma

determinada freqüência. Eles podem diferir na forma de atuação sobre o sinal. São

filtros estáveis, e de fácil implementação. Este filtro, chamado filtro de resposta ao

impulso de duração finita, é utilizado para filtragem adaptativa em tempo real. Sua

ordem é baseada no número de elementos de atraso, e sua saída y é determinada pela

equação abaixo.

Um filtro FIR realiza o processo de convolução no domínio do tempo somando

os produtos das amostras de entrada deslocadas com a seqüência de coeficientes do

filtro. A seqüência de saída de um filtro FIR é igual a convolução da seqüência de

entrada pela resposta ao impulso do filtro (coeficientes), conforme a equação acima.

Percebe-se que o processo de convolução realizado por um filtro FIR nada mais é do

que uma operação MAC, ou seja, um somatório de produtos. (LYONS, 2004)

3.6 Aplicação da técnica MCM em filtros FIR

O projeto de filtros FIR tem sido alvo de muitos trabalhos de pesquisa nas

últimas décadas. Isto se deve principalmente ao fato deste tipo de circuito apresentar um

grande número de multiplicações, o que leva a elevados valores de área, atraso e

consumo de potência, mesmo sendo implementado em um circuito integrado full

custom. Os métodos que têm sido propostos apresentam como principal foco o projeto

de filtros com área mínima a partir da substituição das operações de multiplicação com

coeficientes constantes por adição, subtração e operações de deslocamento. Como as

operações de deslocamento não apresentam custo em termos de hardware, o principal

problema do projeto pode ser definido como a minimização do número de operações

(adição e subtração) para implementar de forma eficiente as multiplicações dos

coeficientes pelo sinal de entrada do filtro. De fato, este tema é conhecido, de uma

forma mais geral, como o problema de Multiplicação de Constantes Múltiplas (MCM) e

tem aplicação em uma grande variedade de problemas, conforme visto no capitulo 2.

Na FIGURA 6 abaixo, são apresentadas as formas de implementação direta e

transposta de um filtro. A FIGURA 6 (a) corresponde a um exemplo de implementação

de um filtro na forma direta. É possível perceber, nessa forma, que os elementos de

atraso Z-1 estão entre as etapas de multiplicação dos coeficientes (1, 10, 5) pelo valor de

entrada X(n). Já na forma transposta, conforme a FIGURA 6 (b), os elementos de atraso

estão entre as etapas de acumulação, fazendo com que as multiplicações dos

coeficientes pelos valores de entrada sejam todas feitas ao mesmo tempo. Essa condição

permite a aplicação da técnica MCM, tendo em vista que diversas multiplicações por

valores constantes são feitas simultaneamente. Conforme a FIGURA 6 (c), as operações

de multiplicação podem ser substituídas por circuitos de deslocamento e soma (também

conhecida como multiplicação simplificada), eliminando circuitos multiplicadores. Na

FIGURA 6 (d) é possível perceber o compartilhamento de subexpressões comuns entre

os coeficientes do filtro, reduzindo o número total de componentes em hardware

(somadores).

FIGURA 6 Utilização da forma transposta de um filtro como vantagem para aplicação

da técnica MCM

3.7 Aplicação da técnica MCM em filtros digitais adaptativos

A adaptação das técnicas aplicadas em blocos MCM para a aplicação em

algoritmos de filtragem adaptativa é motivada pela crescente utilização de técnicas

adaptativas na solução de diversos problemas de engenharia. Nos algoritmos de

filtragem adaptativa há duas etapas de funcionamento que envolvem: i) uma estimativa

de erro de processamento de sinal e ii) uma etapa de atualização dos coeficientes do

filtro digital. Esta segunda etapa impõe um desafio da aplicação das técnicas estudadas

neste trabalho para a otimização do hardware que realiza a convolução utilizando os

coeficientes adaptados. Como em um filtro adaptativo os coeficientes não são fixos nas

entradas dos multiplicadores que calculam a convolução, um modelo deverá ser

estudado para otimizar os blocos pseudo MCMs em tempo de operação do filtro.

Não existe na literatura qualquer trabalho que relacione a utilização da estratégia

MCM para valores que não são constantes. A rigor, o próprio nome da estratégia seria

diferente, já que o valor dos coeficientes muda a cada iteração do algoritmo adaptativo.

Apropriado seria denominar essa nova solução de Multiplicação por Constantes

Temporárias Múltiplas (MCTM).

Conforme visto no capítulo anterior, a principal idéia da estratégia MCM é

encontrar uma representação para um conjunto de constantes que dê origem a um maior

número de compartilhamento de subexpressões entre todas essas constantes,

minimizando o custo de hardware. Em um filtro adaptativo essa idéia não pode ser

mantida, pois uma estrutura fixa de hardware, composta de deslocadores e somadores,

não conseguiria resolver multiplicações por valores de coeficientes diferentes.

Diversas considerações precisam ser feitas para se validar a estratégia MCTM

em um filtro adaptativo. Quando um filtro é projetado, existe um custo em hardware

associado. Invariavelmente, o bloco MAC de um filtro adaptativo é sempre (nos dias de

hoje) implementado com multiplicadores de propósito geral. A nova proposta MCTM

deve, tentando utilizar alguma característica do estudo feito nesse trabalho, melhorar o

custo de construção física de um filtro adaptativo.

4 TRABALHOS FUTUROS

A redução do número total de operadores (somadores ou subtratores) é muitas

vezes desejável, pois implica que a implementação MCM em hardware tem menor

quantidade de área, e conseqüentemente dissipa menos potência. Entretanto, outras

métricas, tais como atraso, devem também ser consideradas quando da otimização da

área. Trabalhos recentes como AKSOY et al., (2006) e HOSANGADI et al., (2005)

tratam dos problemas da otimização de área e atraso simultaneamente. O problema pode

ser descrito como a minimização do número de operadores de tal forma que o atraso

especificado pelo usuário não seja excedido. Em AKSOY et al., (2006), foram

propostos 3 algoritmos, sendo um exato e dois outros heurísticos. Os algoritmos

heurísticos encontram, na maioria dos casos, a solução ótima de forma muito mais

rápida. Essas considerações servem como inspiração para a realização de algumas

atividades subseqüentes, que são:

1 Desenvolvimento de modelos e algoritmos eficientes para o problema da

otimização de blocos MCM. Neste ponto, os principais enfoques são: o uso simultâneo

de restrições de área e atraso; o uso de diferentes representações de coeficientes e o uso

de informações básicas da tecnologia para a obtenção de melhores implementações.

2 Desenvolvimento de novas arquiteturas MCM, especialmente dedicadas aos

projetos de baixo consumo de potência.

3 Desenvolvimento de ferramentas de projeto de filtros (como standalone ou

integrada em algum ambiente). Os resultados obtidos com estas ferramentas serão

comparados com os resultados obtidos por ferramentas comerciais de geração de filtros,

tais como as ferramentas do Matlab, da Altera e da Xilinx.

4 Uso de somadores mais eficientes na geração de blocos MCM. Na árvore de

somadores gerada pelos algoritmos heurísticos, algumas operações envolvem dois

somadores em cascata para a soma de 3 números. Neste caso, a idéia é a substituição

deste tipo de estrutura por somadores mais eficientes (tipo Carry Save CSA) que faz a

soma de 3 números simultaneamente. Os impactos em área, atraso e consumo de

potência serão avaliados.

5 Avaliação do consumo de potência na árvore de somadores gerada pelos

algoritmos heurístico e exato. Nos trabalhos presentes na literatura, somente os

parâmetros de área e atraso são considerados na análise dos blocos MCM. Neste

trabalho, a métrica do consumo de potência também será considerada.

6 Adaptação dos algoritmos heurístico e exato para aplicação em filtros

adaptativos. Nos filtros FIR os coeficientes são fixos e a aplicação dos algoritmos aos

blocos MCM é imediata. Nos filtros adaptativos, os coeficientes são modificados a cada

iteração e desta forma, o desafio é a adaptação das técnicas e otimização a este tipo de

estrutura.

7 Aplicação dos algoritmos heurísticos nos filtros adaptativos, implementado o

algoritmo LMS (Least Mean Square) para o teste dos blocos pseudo-MCM gerados a

cada adaptação dos coeficientes. Como os coeficientes variam ao longo do tempo (até o

sistema entrar em regime permanente), deverá ser estudada a melhor estratégia para a

execução do algoritmo heurístico (relacionamento entre software/hardware) a cada

bloco de novos coeficientes gerados.

5 CONCLUSÃO

A conclusão dessa etapa é a motivação para a próxima. Em uma arquitetura

dedicada de filtro adaptativo, onde os coeficientes não estão fixos nas entradas dos

multiplicadores, a aplicação da estratégia MCM se torna um desafio. Estabelecer uma

metodologia para otimizar um hardware que seja responsável por essa tarefa será o

desafio de trabalhos futuros. Pôde-se constatar, até o presente momento, a importância

das diferentes representações dos coeficientes para a otimização de MCMs. Em

particular, alguns resultados obtidos através de técnicas heurísticas mostram que a

representação MSD se torna mais atraente devido ao maior espaço de busca de

subexpressões comuns. O estudo da viabilidade da adaptação da estratégia MCM em

arquiteturas dedicadas de filtros adaptativos é composto do conhecido conceito de

hardware/software codesign. Em outras palavras, há a limitação de um hardware fixo

computar diferentes valores de entrada e a necessidade de que ele se comporte de

diferentes maneiras, de acordo com dados de entrada (estímulos) recebidos, ou seja, o

sistema nem sempre será linear.

Um novo modelo que considere a área, atraso e consumo de potência deve ser

pensado. Esse modelo deve atender diferentes critérios de otimização para que seja

possível instanciar de forma particular cada métrica de custo individualmente ou em

conjunto com outras. Adicionalmente, novas arquiteturas destinadas a diferentes

requisitos devem ser propostas e avaliadas. Arquiteturas dedicadas a baixo consumo de

potência, que trocam a velocidade de cálculo pelo consumo de potência, devem ter a

capacidade de ativar apenas os elementos do hardware do MCM que serão necessários

para o cálculo de uma dada multiplicação por uma constante. É esperado que através da

redução da atividade total de comutação no MCM haja uma economia no consumo de

potência.

A adaptação das técnicas aplicadas em blocos MCM para a aplicação em

algoritmos de filtragem adaptativa é motivada pela crescente utilização de técnicas

adaptativas na solução de diversos problemas de engenharia. Nos algoritmos de

filtragem adaptativa há duas etapas de funcionamento que envolvem: i) uma estimativa

de erro de processamento de sinal e ii) uma etapa de atualização dos coeficientes do

filtro digital. Esta segunda etapa impõe um desafio da aplicação das técnicas estudadas

neste trabalho para a otimização do hardware que calcula a convolução utilizando os

coeficientes adaptados. Como em um filtro adaptativo os coeficientes não são fixos nas

entradas dos multiplicadores que calculam a convolução, um modelo deverá ser

estudado para otimizar os blocos pseudo MCMs em tempo de operação do filtro.

6 REFERÊNCIAS

AKSOY, L., COSTA, E., FLORES, P., MONTEIRO, J. Optimization of Area Under a

Delay Constraint in Digital Filter Synthesis Using SAT-Based Integer Linear

Programming. IEEE/ACM Proceedings of Design Automation Conference (DAC),

Julho de 2006.

AKSOY (2), L., COSTA, E., FLORES, P., MONTEIRO, J. ASSUMEs: Heuristic

Algorithms for Optimization of Area and Delay in Digital Filter Synthesis. IEEE

International Conference on Electronics, Circuits and Systems (ICECS), Dezembro

de 2006.

ALMEIDA, S. J. M. de. Análise Estatística do Comportamento de uma Classe de

Algoritmos de Projeções Afins. Tese (Doutorado em Ciência da Computação) -

Programa de Pós-graduação em Engenharia Elétrica - UFSC, Florianópolis, SC.

2004.

AVIZIENIS, A. Signed-digit number representation for fast parallel arithmetic. IRE

Trans. Comput., vol. EC-10, pp. 389-400, 1961.

ÇABUK, Murat. Adaptive step size and exponentially weighted affine projection

algorithm. Bo aziçi University, 1998.

CHOO, H., MUHAMMAD, K., ROY, K. Complexity Reduction of Digital Filters Using

Shift Inclusive Differential Coefficients. IEEE Transactions on Signal Processing,

52(6), Junho de 2004.

COSTA, E. A. C. da. Operadores Aritméticos de Baixo Consumo para Arquiteturas de

Circuitos DSP. Teste (Doutorado em Ciência da Computação) - Programa de Pós-

Graduação em Computação - UFRGS, Porto Alegre, RS. 2002.

COSTA, E., FLORES, P., MONTEIRO, J. Maximal Sharing of Partial Terms in MCM

under Minimal Signed Representation. EUROPEAN CONFERENCE ON CIRCUIT

THEORY AND DESIGN, v. II, p. 221-224. 2005.

COSTA, E.; AKSOY, L.; FLORES, P.; MONTEIRO, J. Exploiting General Coefficient

Representation for the Optimal Sharing of Partial Products in MCMs. In: SBCCI,

Ouro Preto, Minas Gerais, Proceedings of the SBCCI. P. 161-166. 2006.

DEMPSTER, A.; MACLEOD, M. Use of Minimum Adder Multiplier Blocks in FIR

Digital Filters. 42(9):569-577, 1995.

FARHANG-BOROUJENY, B. Adaptive filters: theory and applications. National

University of Singapore. John Wiley & Sons. 1999.

FLORES, P.; MONTEIRO, J.; COSTA, E. An Exact Algorithm for the Maximal

Sharing of Partial Terms in Multiple Constant Multiplication. IEEE/ACM

Proceedings of International Conference on Computer-Aided Design (ICCAD),

Novembro de 2005.

FOGEL, David B., MICHALEWICZ, Zbigniew. How to Solve It: Moderns Heuristics.

v. 1, 2ª ed., Springer, New York, EUA, Abril de 2004.

FRANCO, P., CASTRO, M. De., CASTRO, F. De. Processamento Digital de Sinais -

Introdução ao Processamento Adaptativo de Sinais Digitais. Relatório Técnico.

GAY, Steven L., TAVATHIA, Sanjeev. The fast affine projection algorithm. Acoustics

Research Department AT&T Bell Laboratories. [s.n.t.]

GUSTAFSSON, O.; OHLSSON, H.; WANHAMMAR, L. Minimum-Adder Integer

Multipliers Using Carry-Save Adders. Proceedings of the IEEE International

Symposium on Circuits and Systems (ISCAS), Maio de 2001.

HARTLEY, R. Subexpression Sharing in Filters using Canonic Signed Digit

Multipliers. IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS II, 43(10);

677-688. 1996.

HASHEMIAN, R. A New Method for Conversion of a 2 s Complement to Canonic

Signed Digit Number System and its Representation. In: Proceedings of the Asilomar

Conference on Signals and Systems, Computers, p.904-907, 1997.

HAYKIN, S. Adaptive Filter Theory. 4th. ed. Upper Saddle River, NJ, USA: Pearson

Education, 2001.

HOSANGADI, A.; FALLAH, F.; KASTNER, R. Simultaneous Optimization of Delay

and Number of Operations in Multiplierless Implementation of Linear Systems.

Proceedings of International Workshop on Logic Synthesis (IWLS), 2005.

LYONS, Richard G. Understanding Digital Signal Processing. 2ª Ed. Prentice Hall

PTR. Upper Saddle River, New Jersey, USA. Março de 2004

MANQUINHO, V.; SILVA, J. Search Pruning Techniques in SAT-based Branch and

Bound Algorithms for the Binate Covering Problem. Transactions on Computer

Aided Design. 2002.

MARQUES, P. Introdução à Filtragem Adaptativa. Instituto Superior de Engenharia de

Lisboa

ISEL. Engenharia Informática e de Computadores. Relatório Técnico. [s.n.]

[s.d.]

MEHENDALE, M.; SHERLEKAR, S.; VENKATESH, G. Synthesis of Multiplier-less

FIR Filters with Minimum Number of additions. In: Proceedings of the International

Conference on Computer Aided Design, p.668-671, 1995.

MITRA, S. K. Digital Signal Processing: a computer-based approach. 3ª ed. New

York, NY, USA. McGraw-Hill, 2003.

NANNARELLI, A.; RE, M.; CARDARILLI, G. Tradeoffs Between Residue Number

System and Traditional FIR Filters. Proceedings of the IEEE International

Symposium on Circuits and Systems (ISCAS), Maio de 2001.

NGUYEN, H., CHATTERJEE, A. Number-Splitting with Shift-and-Add Decomposition

for Power and Hardware Optimization in Linear DSP Synthesis. IEEE

TRANSACTIONS ON VLSI, 8(4); 419-424, Agosto de 2000.

PARK, I-C., KANG, H-J. Digital Filter Synthesis Based on Minimal Signed Digit

Representation. In: DESIGN AUTOMATION CONFERENCE (DAC), p. 468-473.

2001.

PASKO, R.; SCHAUMONT, P.; DERUDDER, V.; VERNALDE, S.; DURACKOVA,

D. A New Algorithm for Elimination of Common Subexpressions. IEEE Transactions

on Computer-Aided Design of Integrated Circuits and Systems, 18(1), Janeiro de

1999.

POTKONIAK, M.; SRIVASTAVA, M.; CHANDRAKASAN, A. Efficient Substitution

of Multiple Constant Multiplication by Shifts and Additions Using Iterative Pairwise

Matching. In: Proceedings of 31st Design Automation Conference, p.189-194, 1994.

SAMUELI, H. An Improved Search Algorithm for the Design of Multiplierless FIR

Filters with Powers-of-Two Coefficients. 36(7):1044-1047, 1989.

SMITH, J. O. Introduction to Digital Filters with Audio Applications. Disponível em:

<http://ccrma.stanford.edu/~jos/filters/> Acesso em: novembro de 2005.

SMITH, Steven W. The Scientist and Engineer's Guide to Digital Signal Processing. 2ª

ed. California Technical Publishing. San Diego, CA, EUA. 1999.

TUMMELTSHAMMER, P.; HOE, J.; PUSCHEL, M. Multiple Constant Multiplication

by Time-Multiplexed Mapping of Addition Chains. Proceedings of Design

Automation Conference (DAC), Junho de 2004.

VORONENKO, Y., PÜSCHEL, M. Multiplierless Multiple Constant Multiplication.

Carnegie Mellon University. ACM TRANSACTIONS ON ALGORITHMS. v. 3, 2ª

ed., artigo nº 11, ACM, New York, NY, USA, Maio de 2007.

WIDROW, B., STEARNS, S. Adaptive Signal Processing. Englewood Cliffs, NJ, USA.

Prentice-Hall, 1985.