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