Considerações práticas em filtros de ponto fixo FIR_REV 1

Embed Size (px)

Citation preview

  • Consideraes prticas para a implementao de filtros de Ponto-Fixo FIR

    1 Introduo

    1.1 Motivao

    O tipo mais basico de filtro em processamento de sinal digital o filtro de resposta ao

    impulso finita (FIR). Por definio, um filtro FIR classificado como se tem uma

    transformada de forma

    onde denota os nmero reais, denota os nmeros inteiros, e denota os nmeros

    complexos. Este referido como um filtro FIR N-tap. Em geral um filtro FIR pode ser causal

    ou no-causal. No entanto, os filtros FIR so sempre estveis, e, na verdade, a principal

    razo pela qual eles so amplamente utilizados.

    A equao diferencial a qual resulta de

    Simplificando para N=M

    Este o conhecido resultado da convoluo discreta do filtro com os valores de

    entrada.

    As equaes acima so idealizadas, Matematicamente representando um filtro FIR,

    porque as operaes aritmticas de soma, subtrao, multiplicao e diviso so realizadas

    ao longo do domnio dos nmeros reais , ou seja, no sistema de nmeros reais (ou

    no campo dos nmeros complexos se os dados ou coeficientes possuem valores

  • imaginrios). Na prtica, ambos os coeficientes e os valores dos dados so limitados para

    ser de ponto fixo rotacional, um subconjunto dos rotacionais. Enquanto este conjunto

    fechado, no "pouco limitado", ou seja, o nmero de bits necessrio para representar um

    valor em ponto fixo rotacional pode ser arbitrariamente grande. Em um sistema prtico a

    palavra de entrada do filtro limitada a um nmero finito de bits dos coeficientes e dos filtros

    de sada. A maioria dos atuais processadores digitais de sinal fornecem as unidades

    aritmticas lgicas e as arquiteturas de memria para suportar palavras de tamanho de 16

    bits, 24 bits ou 32 bits, no entanto, eles pode implementar arbitrariamente longos

    comprimentos, personalizando as multiplicaes e adies de software e utilizando mais

    ciclos do processador e da memria. Decises semelhantes podem ser feitas em

    implementaes de hardware digital. As escolhas finais so regidas por muitos aspectos do

    projeto, tais como velocidade, consumo de energia, SNR, custo, etc.

    1.2 Convenes

    Vamos representar quantidades reduzidas de e notao descrita em

    .

    Geralmente, h dois mtodos de operar os dados de ponto fixo utilizados

    atualmente, sendo - inteira e fracional. O mtodo inteiro interpreta os dados como nmeros

    inteiros (ou binria natural ou complemento de 2) e executa aritmtica dos inteiros. Por

    exemplo, o Texas Instruments TMS320C54x DSP uma mquina integradora. O mtodo

    fracionrio assume que os dados so ponto fixo rotacionais delimitados entre -1 e +1. O

    DSP Motorola 56002 um exemplo de uma mquina que utiliza aritmtica fracional. Exceto

    para um extra shift esquerdo realizada na multiplicao fracionria, estes dois mtodos

    podem ser considerados equivalentes. Neste artigo, vamos utilizar o mtodo de integrao

    porque acho mais simples e estou mais familiarizado com ele.

    2 O Dimensionamento dos Coeficientes FIR

    Considere um filtro FIR com N coeficientes . Da notao

    descrita, vemos que em aritmtica de ponto fixo uma palavra binria pode ser interpretada

    como um ponto fixo rotacional com ou sem sinal. Embora haja um nmero de situaes em

    que os coeficientes do filtro poderiam ter valores com o mesmo sinal (e portanto, poderiam

    ser representado usando valores sem sinal), deixe-nos supor que eles no so, por

  • conseguinte, que devemos utilizar ponto fixo rotacional com sinal para os nossos

    coeficientes. Assim, temos de encontrar uma forma de representar, ou, mais precisamente,

    de uma aproximao, os coeficientes do filtro usando ponto fixo rotacional com sinal.

    Um ponto fixo rotacional um nmero na forma , quando Bi e b so inteiros,

    e M o tamanho da palavra utilizada para os coeficientes, podemos

    determinar a aproximao do coeficiente , escolhendo um valor de e, em seguida,

    determinar como

    ento

    De um modo geral, apenas uma aproximao de por causa do

    arredondamento. Esta aproximao fenomenal referida como coeficiente de quantizao

    porque, em um sentido real, estamos quantizando os coeficientes em amplitude, exatamente

    como um conversor A/D faz a quantizao em amplitude de um sinal analgico de entrada.

    Podemos determinar o erro de quantizao" entre a aproximao e o valor real, tomando

    a diferena entre eles:

    Onde indica arredondamento em bits para Y do valor binrio X. O

    valor Y = 0 round nas unidades de bits, com valores negativos que vo direita da casa

    decimal e os valores positivos que vo para a esquerda das unidades de bits. Por exemplo:

    round(1,0010110, - 5) = 1.00110.

    A pergunta que temos de fazer e ainda no respondida : Como podemos escolher

    ? A fim de responder a esta pergunta, nota-se que o erro mximo e que um

    coeficiente de quantizao pode ser de um meio bit a pode ser arredondado, para

  • Agora, fcil de ver que, na falta de qualquer outro critrio, o valor ideal de o

    valor mximo que pode ele pode atingir desde que o resultado tenho a menor quantidade de

    quantizao do coeficiente erro. Bem, qual exatamente o mximo, mesmo assim? Depois

    de tudo, de nmeros inteiros e os inteiros vo at o infinito. Assim, o mximo o infinito,

    certo?

    Bem, no. Mais uma vez, considerando-se o tamanho da palavra do coeficiente a

    ser de M (bits), note que um sinal, complemento 2 tem uma magnitude mxima de 2M-1.

    Portanto, devemos ter o cuidado de no escolher um valor para , que ir produzir um

    que tem uma magnitude maior do que 2M-1. Quando um valor torna-se demasiadamente

    grande para ser representado pela representao que escolhemos (neste caso , M-bits

    representado em complemento de 2), dizemos que ocorreu um estouro (overflow).

    Assim, temos de ter o cuidado de escolher um valor para que no transborde o

    coeficiente de maior magnitude. Pode-se computar o valor mximo de ,

    Onde (x) denota o maior inteiro que menor ou igual a x.

    Em resumo, vemos que, na falta de qualquer outro critrio, o valor ideal de o

    valor mximo que pode ser utilizado sem transbordar os coeficientes e desde de que,

    forneca o valor mnimo do coeficiente de quantizao de erro. Enfatizamos este importante

    resultado, declarando o seguinte:

    Teorema 1 (primeiro coeficiente Escalonamento Teorema). Deixe que um

    conjunto de coeficientes com fator de escala . A Preciso mxima preservada quando

    escolhido para ser o nmero inteiro mximo possvel sem transbordar o coeficiente de

    representao, isto ,

    Onde M o coeficiente do tamanho da palavra em bits.

  • Exemplo 1:

    Considerando um filtro FIR 4-tap com os seguintes coeficientes:

    Assumindo o tamanho da palavra em 16 bits:

    a) encontre o fator de escala ,

    b) o coeficiente de aproximao com o auxilio de uma rgua .

    SOLUO:

    Visto que

    assim que ele , certo? Agora, ns sabemos tudo o que h para saber sobre coeficiente

    escalar, certo?

    Bem, no. Lembre-se de que quando eu disse, " ... no existe qualquer outro tipo de

    critrio ... "? Bem, acho que existem sim, outros critrios.

    Adio de dois J-valores de bits requer J+1 bits, a fim de manter a preciso e evitar

    transbordo (overflow) quando no existe a-priori conhecimentos sobre os valores a serem

    adicionados. Por exemplo, se dois valores de 16-bit com sinal complemento de 2 so

  • somados 21.583 e 12.042, o resultado 33.625 . Uma vez que o valor mximo de 16-bit do

    complemento de dois o nmero 32.767, temos de acrescentar um bit extra para evitar

    transbordamento. Tambm, uma vez que o resultado mpar, o bit menos significativo (bit

    0) definido, por isso, no podemos simplesmente tomar a parte superior de 16 bits no

    resultado de 17 bits sem perder a preciso. Como em contrapartida, considere um fluxo de

    processamento de dados de qualquer natureza de duas amostras adjacentes e que so

    conhecidos como de sinais opostos. Neste caso, temos que ser capazes de garantir que a

    soma dos dois adjacentes J-bit das amostras nunca transborde o J bits.

    Podemos facilmente estender esta regra para as somas de vrios valores e estado

    e o resultado dado como:

    Teorema 2 ( Teorema da soma de ponto-fixo). A soma dos N valores de J-bits

    requer bits para manter a preciso e evitar transbordamento em caso de no ter

    informao sobre o tamanho dos valores recebidos.

    Consideremos um filtro FIR de N-tap que tem L-bits de valores de dados e M-bits

    de coeficientes. Em seguida, usando as relaes acima, o N-termo final requer uma soma n

    para cada intervalo de tempo

    requer bits para manter a preciso e evitar transbordamento em caso de

    no ter informao sobre o tamanho dos valores recebidos. Por exemplo, um filtro FIR de

    64-tap (N = 64) com coeficientes e valores de dados de 16-bits (L = M = 16) requer

    bits, a fim de manter preciso e evitar o

    transbordamento.

    A maioria dos processadores e componentes de hardware fornecem a capacidade

    de multiplicar dois valores de M-bits para formar um resultado de 2M-bits. Por exemplo, o

    dispositivo integrado Technolgy 7210 multiplier-accumulator realiza uma multiplicao de

    16x16 para um resultado de 32-bits. Como propsito geral e alguns processadores DSP

    proporcionam um acumulador que tem a mesma largura da sada do multiplicador. Por

  • exemplo, o Texas Instruments TMS320C50 DSP fornece um multiplicador 16x16 e 32-bits

    no acumulador. Alguns processadores DSP de 2 M + G-bits do acumulador, onde G denota

    o "guarda bits" (ser explicado em breve). Por exemplo, o Texas Instruments TMS320C54x

    DSP fornece um multiplicador 16 16 com 32-bits de sada e 40-bits do acumulador (M =

    16, G = 8).

    sempre que assumimos no termos a informao sobre os dados ou os coeficientes. O

    ponto chave aqui que o nmero de bits necessrios para incrementar o filtro de sada

    (em geral, como irrestrita para os coeficiente dos dados de entradas) condiz com o

    tamanho do filtro. A quantidade algumas vezes referida como pouco

    crescimento.

    Para as situaes em que G = 0 (p. ex., o TMS320C50), podemos ver

    imediatamente um problema at mesmo para um 2-tap filtro FIR desde que o filtro requer

    bits e o acumulador de apenas 2M bits. precisamente por esta

    razo que os G bits extras esto disponveis em alguns processadores e so chamados de

    "guarda bits", servem de proteo contra transbordo quando so realizar as somas. No

    entanto, mesmo que o acumulador pode ter o guarda bits, ainda possvel o estouro do

    acumulador se , se tentarmos usar um filtro que maior do que 2G-tap.

    Ento, como resolver o problema? A soluo mais fcil simplesmente decretar

    que iremos manter uma perspectiva optimista. Em outras palavras, vamos reconhecer que

    nosso filtro no funciona para "o caso mais geral", e rezar para que os casos (onde aquelas

    combinaes de N valores de dados ocorreriam) que resultaria em transbordo, para nosso

    filtro nunca iro ocorrer. No entanto, isso um pouco como enterrar a cabea na areia, pois,

    se e quando ocorrem, os estouros podem ser catastrficos. Em um sistema de complemento

    de 2 com sinal, o transbordo causa abruptas variaes dos nveis de sada, que no caso de

    udio digital, so no mnimo muito audveis para se dizer e parece extremamente rude para

    ser mais preciso.

    Outra soluo redesenhar o filtro para usar menos taps. No entanto, se no

    houver guarda bits, ento, o filtro seria reduzido para um controle de ganho (ou seja, 1 tap) e

    mesmo com guarda bits, o nmero de taps do filtro usualmente maior (ou seja, podemos

    quase sempre usar mais taps para implementar uma filtro melhor).

  • Ainda, uma outra soluo reduzir a escala dos valores de dados em K bits antes

    de aplicar ao filtro, permitindo, assim, 2K mais taps de filtro antes do transbordo. Esta , em

    geral, uma horrvel ideia, porque muito se degrada da relao de sinal-rudo do caminho do

    sinal de 6 dB por bit.

    Uma soluo alternativa , essencialmente, o de conter o "crescimento" dos bits

    dos coeficientes. Uma vez que um M utilizado na equao (15) o nmero de bits utilizados

    para os coeficientes, podemos usar um valor alternativo que menor do que os M-bits

    disponveis em nosso hardware . Depois de tudo, s porque temos um tamanho de palavra

    de M-bits disponveis para os coeficientes no significa que temos de utilizar todos os M bits.

    Por conseguinte, utilizemos bits para os coeficientes, onde .

    Que tamanho vamos fazer ? Calcular, com base na largura do acumulador:

    Onde estamos restringindo para no ser maior que M.

    Podemos resumir esta seo com o seguinte

    Teorema 3 (coeficiente Dimensionamento Teorema). Em caso de no conhecer a

    informao sobre os dados ou os coeficientes da entrada, ento, o coeficiente do tamanho

    da palavra deve ser

    A fim de evitar transbordamento e preservar a preciso em um N-tap na sada do filtro FIR,

    onde M o coeficiente mximo do tamanho da palavra, A o tamanho da palavra do

    acumulador, e L o tamanho da palavra dos dados.

    AVISO: H um custo associado a esta soluo: o aumento do coeficiente de erro de

    quantizao. Este fato no deve ser ignorado quando se esta pesando nas opes.

  • Exemplo 2:

    Continuamos com o 4-tap filtro FIR utilizado no exemplo 1. Suponha que o

    coeficiente mximo do tamanho da palavra seja de 16 bits, o tamanho da palavra dos dados

    seja 16 bits e o tamanho da palavra do acumulador seja de 32 bits.

    A) Encontrar o valor do , ou seja, o coeficiente efetivo do tamanho da palavra que

    evitar o transbordamento, garantir que a preciso seja preservada na sada do filtro

    usando a regra 2.

    B) Substituir este resultado na escala do coeficiente da regra 1 para obter o novo

    dimensionamento do coeficiente.

    SOLUO:

    A) Simplesmente ligue os nmeros na equao (35):

    B) Substituir M=14 na equao (15):

    Vemos que a reduo do tamanho da palavra para 2 bits em uma parte tambm resulta em

    uma reduo do fator do coeficiente escalar em 2 bits e por conseguinte, aumenta o

    coeficiente de erro de quantizao. Este o preo que se paga para garantir que no

    resultado no ocorra o transbordo.

  • Agora estamos realmente fazendo, certo? No, devemos agora saber tudo o que h

    para saber sobre coeficiente escalar, certo?

    Bem, no. Lembre-se de que quando eu disse, " ... se nenhuma informao

    conhecido sobre os dados ou coeficientes ... "? Muitas vezes o caso em que os valores

    dos coeficientes so conhecidos em tempo de projetar (e no vai mudar). Por isso, no tm

    informaes sobre os coeficientes. Como podemos usar esta informao para melhorar a

    arquitetura de nosso filtro?

    Uma vez que estamos constantemente preocupados com transbordo em ponto fixo

    no processamento de sinal digital, comecemos por considerar a combinao (ou uma

    combinao) de N dados dos valores de entrada proporcionando a mxima sada de um

    dado N-tap no filtro FIR. Para responder a esta questo, recordar o tringulo desigualdade:

    Com a bvia relao , temos ento

    Podemos generalizar estes 2-termos de soma de um N-termo de soma. Isso

    significa que os sinais de x[k] que far os termos todos positivos na convoluo

    soma

    Resultar em uma largura maior de sada. Isso ocorre quando .

    Portanto, podemos reescrever o conjunto de para maximizar a sada como

    A convoluo soma agora tem a seguinte aparncia:

  • Mas observe que para qualquer valor real r. Portanto , e temos

    O que mais poderamos atribuir a propriedade que iriam maximizar esta soma?

    Deveria ser bvio, que se queremos maximizar todas as magnitudes de , ento temos

    que maximizar a soma. Pois , onde denota a magnitude mxima

    possvel para . Ento

    Neste ponto vamos tambm definir o conceito de coeficiente rea, denotado por e

    definido como

    de forma que

    Vamos fazer uma pausa e considerar nossos resultados at agora. Vemos que o

    mximo valor de sada de um filtro FIR uma funo do coeficiente rea ,no filtro. Isso

    parece intuitivamente bvio. Vamos ver em alguns pargrafos que este coeficiente

    tambm uma caracterizao mais precisa do bit crescimento do filtro do que o

    apresentados anteriormente.

    At agora, estamos operando no estado da infinita preciso (ou seja, real) no domnio real.

    Agora expressar o resultado em termos de integral no escalar de X e , onde X a escala

    e escala de modo que e :

  • Vamos usar a notao anterior de A para o tamanho da palavra do acumulador, L para o

    tamanho da palavra dos dados, e M para o tamanho da palavra do coeficiente. Regras de

    aritmtica de ponto fixo dizem que o dimensionamento do resultado ser

    .

    Por conseguinte,

    Sabemos que o mximo de qualquer T-bit inteiro de complemento 2 , que, quando

    T >> 0, podem ser aproximados , simplesmente . Podemos usar este fato e o ltimo

    resultado para determinar a restrio da largura do acumulador A:

    Se tomarmos o log de base 2 de ambos os lados e resolver para o .

    Uma vez que deve ser um nmero inteiro, podemos acertar este condicionalismo para

    ser

    Esse importante resultado diz que a fim de evitar o transbordamento na sada o

    valor mximo para o fator escalar do coeficiente estabelecido pelo tamanho da palavra

    do acumulador A, do tamanho da palavra dos dados L, e o coeficiente da rea .

    Existem, portanto, trs critrios que o fator do coeficiente escalar procura

    satisfazer:

    1. Procuramos maximizar a fim de reduzir coeficiente do erro quantizao.

  • 2. Tendo em conta o mximo tamanho da palavra do coeficiente M, procuramos restringir

    a fim de que o coeficiente de maior magnitude seja representvel.

    3. Dada o tamanho da palavra do acumulador A, o tamanho da palavra dos dados L e as

    informaes sobre os coeficientes, que chamamos de coeficiente de rea ,

    procuramos restringir , para evitar o transbordo na convoluo da soma.

    Assim, vemos que o valor para o que atende todos os trs critrios dada pela seguinte

    funo:

    Resumimos estes requisitos no seguinte

    Teorema 4 (Teorema do segundo coeficiente escalar). Se so os coeficientes de

    um filtro FIR de comprimento N, M o tamanho da palavra do coeficiente , A a largura do

    acumulador e L o comprimento da palavra de dados, ento o melhor fator do coeficiente

    escalar dado pela expresso

    onde

    Exemplo 3:

    Considere o filtro FIR 16-tap em b0 = 1 e b1, b2, . . . , B15 = 0. Supondo um

    acumulador com a tamanho da palavra de 32 bits, um dos dados com o tamanho da palavra

  • de 16 bits e um tamanho da palavra de coeficiente de 16 bits, use o Teorema 4 para

    estabelecer o valor ideal para o fator do coeficiente escalar .

    SOLUO:

    Calcule :

    Em seguida:

    Neste caso, vemos que o fator limitante o que permite que os coeficientes sejam

    representados.

    Exemplo 4:

    Considere o filtro FIR 16-tap - b0, b1, b2, . . . , B15 = 0,0625. Supondo um

    acumulador com a tamanho da palavra de 32 bits, um dos dados com o tamanho da palavra

    de 16 bits, e um tamanho da palavra de coeficiente de 16 bits, use Teorema 4 para

    estabelecer o valor ideal para o fator do coeficiente escalar .

    SOLUO:

    Calculando :

  • Em seguida

    Neste caso, vemos que o fator limitante o que evita o transbordamento no acumulador.

    Exemplo 5:

    Considere o filtro FIR 16-tap - b0, b1, b2, . . . , B15 = 0,0625. Supondo um

    acumulador com a tamanho da palavra de 32 bits, um dos dados com o tamanho da palavra

    de 16 bits, e um tamanho da palavra de coeficiente de 16 bits, use o Teorema 4 para

    estabelecer o valor ideal para o fator do coeficiente escalar .

    SOLUO:

    Calculando :

    Em seguida

    Neste caso, vemos que o fator limitante o que permite que os coeficientes sejam

    representados, mas s porque este acumulador tem 8 bits de proteo de sobrecarga, caso

    contrrio, o acumulador limitaria como no exemplo 4. Note tambm que o acumulador

  • extra, o guarda bits, permite que a quantizao do coeficiente de erro seja inferior a do

    exemplo 4.

    3 A escolha da palavra de Sada do Filtro FIR

    Como mencionado anteriormente, um multiplicador de hardware DSP possui um

    tamanho da palavra de sada que normalmente de duas ou mais vezes o tamanho do

    tamanho da palavra de entrada. Por exemplo, os TI TMS320C54x normalmente utiliza uma

    entrada de dados de tamanho de 16-bits da amostra e a 16-bit tamanho da palavra do

    coeficiente a ser multiplicado para um tamanho da palavra de sada de 32-bits e tem um 40-

    bits do acumulador. Se queremos requantizar o valor de 40-bits do acumulador para os

    resultados aps a convoluo de soma para uma palavra de tamanho de 16-bits de sada,

    temos de escolher uma quantidade de bits do acumulador. Como podemos escolher esses

    bits?

    Com base em um conjunto de coeficientes de complemento 2, tamanho da palavra

    M, coeficiente rea e uma entrada com tamanho da palavra de L bits, o nmero de bits

    necessrio para manter a preciso e ao mesmo tempo evitando o transbordo na convoluo

    soma

    onde

    E onde so os coeficientes de valores reais. A fim de evitar o transbordamento

    quando truncando esta largura para a largura da sada K, retiramos a parte superior de K

    bits, para , numerando o LSB para o acumulador como bit 0.

    Por exemplo: se L=16, M=16 e =3, ento

  • E se o tamanho da palavra de sada K = 16, ento voc deve tomar bits 18 para 33,

    Se o tamanho do acumulador A inferior , em seguida, o filtro pode transbordar

    o acumulador durante a convoluo soma. Neste caso, a melhor opo a escolha mxima

    de K bits do acumulador.

    Algumas quantidades de interesse:

    1. A escala de dos bits de sada

    2. A escala mxima dos bits de K

    3. Para levar o K-bits de sada para o acumulador -bits (ou superior), desloque a

    direita por

    Exemplo 6:

    SOLUO:

    1- Calculando :

    2- Escala de :

  • 3- Escala mxima de K-bits para :

    4- Deslocando a direita:

    4 Quantizao de Rudo filtros FIR

    5 Concluso

    A minha esperana a de que este artigo permita um projeto de um filtro FIR e

    para ver claramente os efeitos que as escolhas de um tamanho da palavra, escala e

    arquitetura de processamento tm com a integridade do sinal e que o material claro e

    preciso. Erros, sugestes, etc., devem ser enviadas para [email protected] .

    6

    7 Referencias

    [1] R. Yates, Fixed-Point Arithmetic: An Introduction.

    [2] LogiCORE IP FIR Compiler v5.0, Xilinx, April 2010, product Specification.