Sunday 9 July 2017

Movendo Média Cic Filtro


Como outros já mencionaram, você deve considerar um filtro de resposta de impulso infinito IIR em vez do filtro de resposta de impulso finito FIR que você está usando agora. Há mais a ele, mas à primeira vista os filtros FIR são implementados como convoluções explícitas e filtros IIR com equações. Especial IIR filtro Eu uso muito em microcontroladores é um único pólo filtro passa-baixo Este é o equivalente digital de um simples filtro analógico RC Para a maioria das aplicações, estas terão melhores características do que o filtro de caixa que você está usando A maioria dos usos de um filtro de caixa Que eu encontrei são o resultado de alguém que não presta atenção na classe de processamento de sinal digital, não como resultado da necessidade de suas características particulares. Se você só quer atenuar as altas freqüências que você sabe que são ruído, um filtro de passa-baixa de pólo único é melhor A melhor maneira de implementar um digitalmente em um microcontrolador é geralmente. FILT - FILT FF NEW - FILT. FILT é um pedaço de estado persistente Este é o único persistant va Riable você precisa para calcular este filtro NEW é o novo valor que o filtro está sendo atualizado com esta iteração FF é a fração de filtro que ajusta o peso do filtro Olhe para este algoritmo e ver que para FF 0 o filtro é infinitamente pesado desde a A saída nunca muda Para FF 1, é realmente nenhum filtro em tudo desde que a saída apenas segue a entrada Os valores úteis estão entre os sistemas pequenos em que você escolhe FF para ser 1 2 N para que a multiplicação por FF pode ser realizada como um deslocamento à direita Por N bits Por exemplo, FF pode ser 1 16 ea multiplicação por FF, portanto, um deslocamento à direita de 4 bits Caso contrário, este filtro precisa apenas de uma subtração e um adicionar, embora os números geralmente precisam ser mais amplo do que o valor de entrada mais precisão numérica Em uma seção separada abaixo. Eu geralmente tomam leituras AD significativamente mais rápido do que eles são necessários e aplicar dois destes filtros em cascata Este é o equivalente digital de dois filtros RC em série e atenua por 12 dB oitava acima do rolloff Freqüência No entanto, para leituras AD é geralmente mais relevante para olhar para o filtro no domínio do tempo, considerando a sua resposta passo Isto diz-lhe quão rápido seu sistema vai ver uma mudança quando a coisa que você está medindo changes. To facilitar a concepção destes filtros que Apenas significa escolher FF e decidir quantos deles para a cascata, eu uso o meu programa FILTBITS Você especifica o número de bits de deslocamento para cada FF na série de filtros em cascata, e ele calcula a resposta passo e outros valores Na verdade, eu normalmente executar este via My wrapper script PLOTFILT Isso executa FILTBITS, que faz um arquivo CSV, então traça o arquivo CSV Por exemplo, aqui está o resultado de PLOTFILT 4 4. Os dois parâmetros para PLOTFILT significam que haverá dois filtros em cascata do tipo descrito acima Os valores De 4 indicam o número de bits de mudança para realizar a multiplicação por FF Os dois valores de FF são, portanto, 1 16 neste caso. O traço vermelho é a resposta de etapa unitária e é a coisa principal a olhar Por exemplo, este te Você quer que se a entrada muda instantaneamente, a saída do filtro combinado irá resolver a 90 do novo valor em 60 iterações Se você se preocupa com 95 tempo de resolução, então você tem que esperar cerca de 73 iterações, e por 50 settling tempo apenas 26 iterações . O traço verde mostra a saída de um único pico de amplitude total Isto dá-lhe alguma idéia da supressão aleatória de ruído Parece que nenhuma amostra única causará mais do que uma alteração de 2 5 na saída. O traço azul é dar um resultado subjetivo Sensação de que este filtro faz com ruído branco Este não é um teste rigoroso desde que não há nenhuma garantia o que exatamente o índice era dos números aleatórios escolhidos como a entrada branca do ruído para esta execução de PLOTFILT É somente para dar-lhe uma sensação áspera de Como muito será esmagado e como liso é. PLOTFILT, FILTBITS talvez, e lotes de outras coisas úteis, especialmente para o desenvolvimento de firmware PIC está disponível na versão de software PIC Development Tools na minha página de downloads Software. Ad Ded sobre precisão numérica. Eu vejo a partir dos comentários e agora uma nova resposta que há interesse em discutir o número de bits necessários para implementar este filtro Note que o multiplicar por FF irá criar Log 2 FF novos bits abaixo do ponto binário Em sistemas pequenos , FF é geralmente escolhido para ser 1 2 N para que este multiplicar é realmente realizado por um deslocamento à direita de N bits. FILT é, portanto, geralmente um ponto fixo inteiro Note que isso não muda qualquer da matemática do ponto de vista do processador s Por exemplo, se estiver a filtrar leituras de AD de 10 bits e N 4 FF 1 16, então necessita de 4 bits de fracção abaixo do valor inteiro de 10 bits AD Leituras Uma das mais processadoras, estará a fazer operações inteiras de 16 bits devido às leituras AD de 10 bits Neste caso, você ainda pode fazer exatamente as mesmas operações de integer de 16 bits, mas comece com as leituras AD desviadas por 4 bits. O processador não sabe a diferença e não precisa fazer a matemática em inteiros inteiros de 16 bits funciona se você Considerá-los como 12 4 pontos fixos ou verdadeiros inteiros de 16 bits 16 0 ponto fixo. Em geral, você precisa adicionar N bits cada pólo de filtro se você não quiser adicionar ruído devido à representação numérica No exemplo acima, o segundo filtro de dois teria Para ter 10 4 4 18 bits para não perder informações Na prática em uma máquina de 8 bits que significa que você d usar valores de 24 bits Tecnicamente apenas o segundo pólo de dois precisaria do valor mais amplo, mas para a simplicidade do firmware Eu costumo usar a mesma representação, E, portanto, o mesmo código, para todos os pólos de um filtro. Em geral, eu escrevo uma sub-rotina ou macro para executar uma operação de pólo de filtro, em seguida, aplicar isso para cada pólo Se uma sub-rotina ou macro depende de ciclos ou memória de programa são mais importantes naquele Projeto particular De qualquer maneira, eu uso algum estado zero para passar NOVO na macro de sub-rotina, que atualiza FILT, mas também carrega isso para o mesmo estado de arranhão NOVO estava em Isto torna mais fácil para aplicar vários pólos desde o FILT atualizado de um pólo é O NE W do próximo Quando uma sub-rotina, é útil ter um ponteiro apontar para FILT no caminho, que é atualizado para logo após FILT no caminho para fora Assim, a sub-rotina opera automaticamente em filtros consecutivos na memória se chamado várias vezes Com uma macro você não precisa de um ponteiro desde que você passa no endereço para operar em cada iteração. Exemplos de código. Aqui está um exemplo de uma macro como descrito acima para um PIC 18.E aqui está uma macro semelhante para um PIC 24 ou DsPIC 30 ou 33.Ambos esses exemplos são implementados como macros usando o meu pré-processador de assembler PIC que é mais capaz do que qualquer das facilidades macro incorporadas. Clabacchio Outra questão que eu deveria ter mencionado é a implementação de firmware Você pode escrever uma única subpasta de filtro de passagem de pólo único uma vez, em seguida, aplicá-lo várias vezes Na verdade eu costumo escrever uma sub-rotina para levar um ponteiro na memória para o estado de filtro, O ponteiro para que possa ser chamado em sucessão facilmente para realizar filtros multi-polo Olin Lathrop Apr 20 12 at 15 03.1 muito obrigado por suas respostas - todos eles Eu decidi usar este filtro IIR, mas este filtro não é usado como Um Standard LowPass Filter, uma vez que eu preciso para a média de valores de contador e compará-los para detectar alterações em um determinado intervalo uma vez que estes valores van ser de dimensões muito diferentes, dependendo do hardware que eu queria tomar uma média, a fim de ser capaz de reagir a estes Hardware Mudanças específicas automaticamente sensslen maio 21 12 em 12 06.If você pode viver com a restrição de um poder de dois número de itens para média, ou seja, 2,4,8,16,32 etc, então a divisão pode ser feita de forma fácil e eficiente em um Baixo desempenho micro sem divisão dedicada porque pode ser feito como um deslocamento de bit Cada turno direito é uma potência de dois eg. O OP pensou que ele tinha dois problemas, dividindo em um PIC16 e memória para seu buffer anel Esta resposta mostra que a divisão Não é difícil Reconhecidamente não aborda o problema de memória, mas o sistema SE permite respostas parciais, e os usuários podem tirar algo de cada resposta por si mesmos, ou mesmo editar e combinar outras respostas s Como algumas das outras respostas exigem uma operação de divisão, eles São igualmente incompletos, uma vez que eles não mostram como efetivamente conseguir isso em um PIC16 Martin Apr 20 12 at 13 01.There é uma resposta para um verdadeiro filtro de média móvel aka boxcar filtro com menos requisitos de memória, se você não mente downsampling It s Chamado de cascata integrador-comb filtro CIC A idéia é que você tem um integrador que você tomar as diferenças de um período de tempo, ea chave dispositivo de economia de memória é que por downsampling, você don t tem que armazenar eve Ry valor do integrador Ele pode ser implementado usando o seguinte pseudocódigo. Seu comprimento médio móvel eficaz é decimationFactor statesize, mas você só precisa manter em torno de amostras statesize Obviamente, você pode obter melhor desempenho se o seu statesize e decimationFactor são poderes de 2, Divisão e restante operadores são substituídos por mudanças e máscara-ands. Postscript eu concordo com Olin que você deve sempre considerar filtros IIR simples antes de um filtro de média móvel Se você don t necessidade a freqüência-nulos de um filtro de vagão, um pólo Ou filtro passa-baixo de 2 pólos provavelmente funcionará bem. Por outro lado, se você estiver filtrando para fins de decimação, tendo uma entrada de alta taxa de amostragem e calculando a sua média para uso por um processo de baixa taxa, em seguida, um filtro CIC Pode ser apenas o que você está procurando, especialmente se você pode usar statesize 1 e evitar o ringbuffer completamente com apenas um valor único integrador anterior. Há alguma análise em profundidade da matemática por trás usando o primeiro ord Er IIR filtro que Olin Lathrop já descreveu mais sobre a Digital Signal Processing pilha intercâmbio inclui lotes de belas imagens A equação para este IIR filtro is. This pode ser implementado usando apenas inteiros e nenhuma divisão usando o código a seguir pode precisar de depuração como eu Estava a escrever a partir da memória. Este filtro aproxima uma média móvel das últimas amostras K, definindo o valor de alfa para 1 K Faça isso no código anterior, definindo BITS para LOG2 K, ou seja, para K 16 set BITS para 4, para K 4 set BITS para 2, etc Vou verificar o código listado aqui, logo que eu recebo uma alteração e editar esta resposta, se needed. answered Jun 23 12 at 4 04.Here sa um filtro polar de passo único média móvel, com Freqüência de corte CutoffFrequency Muito simples, muito rápido, funciona muito bem, e quase nenhuma memória overhead. Note Todas as variáveis ​​têm escopo além da função de filtro, exceto o passado in newInput. Note Este é um filtro de estágio único Vários estágios podem ser cascata juntos para aumentar a Nitidez de O filtro Se você usar mais de uma fase, você terá que ajustar DecayFactor como se relaciona com o Cutoff-Frequency para compensar. E, obviamente, tudo o que você precisa é que as duas linhas colocadas em qualquer lugar, eles don t precisa de sua própria função Este filtro tem um Tempo de rampa antes que a média móvel represente a do sinal de entrada Se você precisar ignorar esse tempo de aceleração, basta inicializar MovingAverage para o primeiro valor de newInput em vez de 0 e esperar que o primeiro newInput não seja um outlier. CutoffFrequency SampleRate tem um intervalo entre 0 e 0 5 DecayFactor é um valor entre 0 e 1, geralmente perto de 1. Flutuadores de precisão simples são bons o suficiente para a maioria das coisas, eu só prefiro dobros Se você precisa ficar com números inteiros, você pode Converter DecayFactor e Amplitude Factor em inteiros fracionários, em que o numerador é armazenado como o inteiro, eo denominador é uma potência de 2 inteiros para que você possa bit-shift para a direita como o denominador, em vez de ter que dividir durante o loop de filtro para Exemplo, se DecayFactor 0 99, e você quiser usar números inteiros, você pode definir DecayFactor 0 99 65536 64881 E então, sempre que você multiplicar por DecayFactor em seu loop de filtro, basta deslocar o resultado 16.Para obter mais informações sobre este, um excelente livro que Para o paradigma Mudando Média, uma abordagem diferente para definir DecayFactor e AmplitudeFactor que podem ser mais relevantes para as suas necessidades, vamos dizer que você quer o anterior, cerca de 6 itens média tog Você pode adicionar 6 itens e dividir por 6, então você pode definir o AmplitudeFactor para 1 6, e DecayFactor para 1 0 - AmplitudeFactor. answered 14 de maio 12 em 22 55.Everyone mais tem comentado completamente sobre o utilitário De IIR vs FIR, e na potência de dois divisão I d apenas gostaria de dar alguns detalhes de implementação O abaixo funciona bem em pequenos microcontroladores sem FPU Não há multiplicação, e se você manter N um poder de dois, toda a divisão É single-cycle bit-shifting. Botor FIR ring buffer manter um buffer de execução dos últimos N valores, e uma soma corrente de todos os valores no buffer Cada vez que uma nova amostra vem, subtrair o mais antigo valor no buffer de SUM , Substitua-a pela nova amostra, adicione a nova amostra à SUM e a saída SUM. O buffer de anel IIR modificado mantém uma Soma corrente dos últimos N valores Cada vez que uma nova amostra entra, SUM - SUM N, adicione a nova amostra Amostra e saída SOMA N. resposta agosto 28 13 em 13 45.Se eu estou lendo-o direito, você está descrevendo uma primeira ordem IIR filtro o valor que você está subtraindo isn t o valor mais antigo que está caindo, mas é, em vez disso, a média dos valores anteriores Filtros de primeira ordem IIR pode certamente ser útil, mas não tenho certeza o que você quer dizer quando você sugere que a saída É a mesma para todos os sinais periódicos A uma taxa de amostragem de 10KHz, alimentar uma onda quadrada de 100Hz em um filtro de caixa de 20 estágios produzirá um sinal que sobe uniformemente para 20 amostras, senta alto para 30, cai uniformemente para 20 amostras e fica baixo Para 30 Um filtro de IIR de primeira ordem supercat Aug 28 13 at 15 31. produzirá uma onda que começa bruscamente a subir e gradualmente nivela próximo mas não ao máximo de entrada, então começa bruscamente a cair e gradualmente nivela próximo mas não na entrada Mínimo Um comportamento muito diferente supercat Aug 28 13 at 15 32.One questão é que uma média móvel simples pode ou não ser útil Com um filtro IIR, você pode obter um bom filtro com relativamente poucos calcs O FIR que você descreve só pode dar-lhe um Retângulo no tempo - a sinc in Freq - e você não pode gerenciar os lóbulos laterais Pode ser bem vale a pena jogar em alguns inteiros multiplica para torná-lo uma simpática simétrica sintonizável FIR se você pode poupar o relógio carrapatos Scott Seidman agosto 29 13 em 13 50. ScottSeidman Não Necessidade de multiplicações se um simplesmente tem cada estágio da FIR ou saída a média da entrada para essa fase e seu valor armazenado anterior e, em seguida, armazenar a entrada se um tiver o intervalo numérico, pode-se usar a soma em vez de média Se isso S melhor do que um filtro de caixa depende da aplicação a resposta de passo de um filtro de caixa com um atraso total de 1ms, por exemplo, terá um pico d2 dt desagradável quando a mudança de entrada, e novamente 1ms mais tarde, mas terá o mínimo possível D dt para um filtro com um atraso total de 1ms supercat Aug 29 13 at 15 25.As mikeselectricstuff disse, se você realmente precisa reduzir suas necessidades de memória, e você don t mente sua resposta ao impulso sendo um exponencial em vez de um pulso retangular, eu Iria para uma ave movendo exponencial Rage filter Eu uso-os extensivamente Com esse tipo de filtro, você não precisa de nenhum buffer Você não precisa armazenar N amostras passadas Apenas um Assim, seus requisitos de memória são cortados por um fator de N. Também, você não precisa de qualquer Divisão para isso Somente multiplicações Se você tiver acesso a aritmética de ponto flutuante, use multiplicações de ponto flutuante Caso contrário, faça multiplicações inteiras e muda para a direita No entanto, estamos em 2012, e eu recomendo que você use compiladores e MCUs que permitem Para trabalhar com números de ponto flutuante. Além de ser mais memória eficiente e mais rápido você não tem que atualizar itens em qualquer buffer circular, eu diria que é também mais natural porque uma resposta de impulso exponencial corresponde melhor a maneira como a natureza se comporta, na maioria dos casos. Uma questão com o filtro IIR como quase tocado por olin e supercat mas aparentemente desconsiderado por outros é que o arredondamento para baixo introduz alguma imprecisão e potencialmente bias truncamento supondo que N i Uma potência de dois, e somente a aritmética inteira é usada, a direita do turno sistematicamente elimina os LSBs da nova amostra. Isso significa que quanto tempo a série poderia ser, a média nunca levará isso em consideração. Diminuindo a série 8,8,8 8,7,7,7 7,6,6 e suponha que a média é de fato 8 no início A amostra do punho 7 trará a média para 7, independentemente da intensidade do filtro Apenas para uma amostra Same História para 6, etc. Agora pense no oposto que a série vai acima A média permanecerá em 7 para sempre, até que a amostra seja grande bastante para fazê-la mudar. Naturalmente, você pode corrigir o viés adicionando 1 2 N 2, mas Que não vai realmente resolver o problema de precisão nesse caso a série decrescente permanecerá para sempre em 8 até que a amostra seja 8-1 2 N 2 Para N 4, por exemplo, qualquer amostra acima de zero manterá a média inalterada. Que implicaria para segurar um acumulador dos LSBs perdidos Mas eu didn t torná-lo longe o suficiente para ter código pronto, E eu não tenho certeza que não iria prejudicar o poder IIR em alguns outros casos de séries, por exemplo, se 7,9,7,9 seria média para 8 então. Olin, sua cascata de dois estágios também precisaria de alguma explicação Você quer dizer segurando dois valores médios com o resultado do primeiro alimentado para o segundo em cada iteração Qual é o benefício deste. Compreendendo cascata integrador pente filters. By Richard Lyons, O filtro anteriormente obscuro do CIC é agora vital para muitas tarefas e equipamentos de comunicações sem fio de alto volume. O uso de filtros do CIC pode reduzir custos, melhorar a confiabilidade e ajudar o desempenho Aqui está um guia para você começar. Cascaded integrador-comb CIC filtros digitais são computacionalmente eficientes implementações de narrowband lowpass filtros e muitas vezes são incorporados em hardware implementações de decimação e interpolação em modernos sistemas de comunicação CIC filtros foram introduzidos para o sinal de processamento da comunidade, por Eugene Hogenauer, mais de duas décadas Atrás, mas suas possibilidades de aplicação cresceram nos últimos anos 1 Melhorias na tecnologia de O uso de técnicas de filtragem polifásicas, os avanços nas implementações de conversores delta-sigma e o crescimento significativo nas comunicações sem fio têm despertado muito interesse nos filtros CIC. Embora o comportamento ea implementação desses filtros não sejam complicados, sua cobertura tem sido escassa na Depois de descrever algumas aplicações para os filtros do CIC, introduzirei sua estrutura e comportamento, apresentarão o desempenho do domínio de freqüência dos filtros do CIC e discutirei várias questões práticas importantes Na construção destes filtros. As aplicações de filtros CIC Os filtros CIC são bem adequados para a filtragem antialiasing antes da redução da taxa de amostragem decimática, como mostrado na Figura 1a e para a filtragem anti-imagem para o aumento da taxa de amostragem de sinais interpolados como na Figura 1b. Associados a filtragem de taxa de dados muito alta, como a modulação em quadratura D, em sistemas sem fio modernos e conversores AD e DA delta-sigma. Como seus envelopes de resposta de magnitude de freqüência são semelhantes a sin xx, os filtros CIC são tipicamente seguidos ou precedidos por FIR Filtros cuja tarefa é compensar a passagem de banda não plana do filtro CIC Essa arquitetura de filtro em cascata tem benefícios valiosos Por exemplo, com a decimação, você pode reduzir consideravelmente a complexidade computacional da filtragem de lowpass de banda estreita em comparação com se usou um único impulso finito de passagem baixa Filtro FIR de resposta Além disso, o filtro FIR de seguimento funciona com taxas de relógio reduzidas, minimizando o consumo de energia em aplicações de hardware de alta velocidade. Um bônus crucial no uso de filtros CIC e uma característica que os torna populares em dispositivos de hardware Sem multiplicação A aritmética necessária para implementar esses filtros digitais é estritamente adições e subtrações apenas Com isso dito, vamos ver Como os filtros do CIC operam. Os filtros CIC-Filtro de soma de corrida são originários da noção de um filtro recursivo de soma corrida que é ele próprio uma forma eficiente de um medidor móvel não recorrente Lembre-se do processo de média móvel D-ponto padrão na Figura 2a Aí vemos Que D -1 summations mais um multiplica por 1 D são necessários para computar a saída de média y n. A saída de filtro de média móvel de ponto D no tempo é expressa como. nonde n é o nosso índice de domínio de tempo A expressão de domínio z Para este averager móvel é. Enquanto sua função de transferência do z-domínio H z é. Eu forneço estas equações para não fazer coisas complicadas, mas porque re úteis A equação 1 diz-nos como construir um averager movente, e a equação 3 está na forma Usado pelo software de processamento de sinal comercial para modelar o comportamento do domínio da freqüência do averager móvel. O próximo passo em nossa viagem para a compreensão de filtros de CIC é considerar uma forma equivalente do averager móvel, o filtro recursive running-sum D na Figura 2b Vemos que a amostra de entrada atual xn é adicionada e a amostra de entrada mais antiga xn - D é subtraída da média de saída anterior yn -1 É chamada recursiva porque tem feedback Cada amostra de saída de filtro é retida e usada Para calcular o valor de saída seguinte A equação de diferença do filtro de soma de corrida recursiva é. having az - domínio H z função de transferência de. Nós usamos a mesma variável H z para as funções de transferência do filtro de média móvel ea soma de corrida recursiva Porque as suas funções de transferência são iguais entre si. É verdadeira A equação 3 é a expressão não recursiva e a equação 5 é a expressão recursiva para um mediador de ponto D A prova matemática disso pode ser encontrada no meu livro sobre processamento de sinal digital, mas em breve I ll demonstrar que a equivalência com um exemplo 2.Aqui é por isso que nos preocupamos com recursiva running-sum filtros o padrão movendo averager na Figura 2a deve executar D -1 adições por saída amostra O recursive runnin G-sum tem a vantagem de que apenas uma adição e uma subtração são necessárias por amostra de saída, independentemente do comprimento de atraso D Esta eficiência computacional faz com que o filtro de corrida-soma recursiva atraente em muitas aplicações buscando redução de ruído através de média Próximo vamos ver Como um filtro CIC é, em si, um filtro de corrida-soma recursiva. CIC estruturas de filtro Se condensarmos a representação de linha de retardo e ignorarmos a escala de 1D na Figura 2b obtemos a forma clássica de um filtro CIC de 1ª ordem cuja cascata A estrutura é mostrada na Figura 2c A parte feedforward do filtro CIC é chamada a seção de pente cujo retardo diferencial é D enquanto a seção de realimentação é tipicamente chamada de integrador O estágio de pente subtrai uma amostra de entrada atrasada da amostra de entrada atual eo integrador É simplesmente um acumulador A equação de diferença do filtro CIC é. e sua função de transferência de z - domínio é. Para ver por que o filtro CIC é de interesse, primeiro examinamos seu tempo Para D 5, mostrado na Figura 3 Se uma sequência de impulso unitário, uma amostra de valor unitário seguida de muitas amostras de valor zero, foi aplicada ao estágio de pente, a saída da etapa s é como mostrado na Figura 3a Agora pense, qual seria a saída do integrador se sua entrada fosse a resposta do impulso da fase do pente. O impulso positivo inicial do filtro pente inicia a saída de todos os elementos do integrador, como na Figura 3b Então, as amostras D mais tarde, o negativo O impulso do estágio do pente chega ao integrador para zerar todas as outras amostras de saída do filtro CIC. A questão-chave é que a resposta do impulso unitário combinado do filtro CIC, sendo uma sequência retangular, é idêntica às respostas de impulso unitário de um movimento E os filtros CIC são parentes próximos Eles têm o mesmo z - domínio pólo posições zero, suas respostas de magnitude de freqüência têm formas idênticas, suas respostas de fase são idênticos, e T As funções de transferência do herdeiro diferem apenas por um fator de escala constante Se você entender o comportamento do domínio do tempo de um medidor de movimento, então você agora compreende o comportamento do domínio do tempo do filtro CIC na Figura 2c. A magnitude da freqüência ea resposta de fase linear de um D 5 O filtro CIC é mostrado na Figura 4a onde a frequência s é a taxa de amostragem do sinal de entrada em Hz. Podemos obter uma expressão para a resposta de frequência do filtro CIC avaliando a equação 7 s função de transferência H cic z no plano z Se definir o zej 2 rendendo. Usando a identidade de Euler 2 j sin ej - ej podemos escrever. Se ignorarmos o fator de fase na Equação 9, essa relação de termos sen pode ser aproximada por uma função sen xx A resposta de magnitude de freqüência do filtro do CIC é aproximadamente igual a uma função sin xx centrada em 0Hz, como vemos na Figura 4a. É por isso que os filtros do CIC são às vezes chamados de filtros sinc. Os designers de filtros digitais gostam de ver as parcelas do pólo z - plane zero, Fornecer o z - plane charac De um filtro D 5 CIC na Figura 4c, onde o filtro de pentes produz D zeros, igualmente espaçados em torno do círculo unitário, e o integrador produz um único pólo anulando o zero em z 1 Cada um dos zeros do pente, sendo um D A raiz de 1, estão localizados em zmej 2 m D onde m 0, 1, 2 D -1, correspondente a uma magnitude nula na Figura 4a. A situação normalmente arriscada de ter um pólo de filtro diretamente no círculo de unidade não precisa nos incomodar Aqui, porque não há erro de quantificação de coeficientes na nossa função de transferência de ciclos, os coeficientes do filtro CIC são uns e podem ser representados com precisão perfeita com formatos de números de ponto fixo. Embora recursivos, os filtros do CIC são garantidos estáveis ​​e linearmente mostrados na Figura 4b , E têm respostas de impulso de comprimento finito A 0Hz DC o ganho de um filtro CIC é igual ao retardo do filtro de pentes D Este fato, cuja derivação está disponível, será importante para nós quando realmente implementarmos um filtro CIC no hardware 2.Figura 5 Filtro CIC de estágio único S utilizados em decimation e interpolação Ver imagem em tamanho normal. Again, CIC filtros são usados ​​principalmente para antialiasing filtragem antes de decimation e para anti-imaging filtragem para sinais interpolados Com essas noções em mente, trocamos a ordem da Figura 2c s pente e integrador É permitido fazê-lo porque essas operações são lineares e incluem a decimação por um fator de variação da taxa de amostragem R na Figura 5a Você pode querer provar que a resposta de impulso unitário da combinação do pente integrador, antes da alteração da taxa de amostragem, na Figura 5a é igual à da Figura 3c. Na maioria das aplicações de filtro de CIC, a variação de taxa R é igual ao diferencial D do pente s mas vamos mantê-los como parâmetros de concepção separados para agora. Figura 6 Resposta de magnitude de uma 1ª ordem, D8 , Dizimando o filtro CIC antes da decimação aliasiing após a decimação R 8 Ver imagem em tamanho inteiro. A operação de decimação R significa descartar todas as amostras, exceto todas as Rth, resultando em uma taxa de amostragem de saída de s, A Figura 6a mostra a resposta de magnitude de frequência de um filtro CIC de D antes da decimação A banda espectral, de largura B centrada a 0 Hz é a banda de passagem desejada do filtro Um aspecto-chave de CIC é o dobramento espectral que ocorre devido à decimação. Essas bandas espectrais sombreadas em B, centradas em múltiplos de s, em R na Figura 6a irão alias diretamente para a nossa faixa de passagem desejada após a decimação por R8 como mostrado na Figura 6b Observe como O maior componente aliado de espectro, neste exemplo, é aproximadamente 16dB abaixo do pico da banda de interesse. É claro que os níveis de potência aliasados ​​dependem da largura de banda B quanto menor B é, menor a energia aliased após a decimação. , DR 8, interpolação de espectro de filtro CIC espectros de entrada de imagens espectrais de saída Ver imagem de tamanho completo. A Figura 5b mostra um filtro CIC utilizado para interpolação onde os símbolos R significam inserir zeros R -1 entre cada xn amostra, Yn taxa de amostragem de saída de s, out R s, in Nesta discussão de filtro CIC, a interpolação é definida como zeros-inserção seguida de filtragem A Figura 7a mostra um espectro arbitrário de banda de base, com suas replicações espectrais, de um sinal aplicado ao DR 8 interpolando CIC da Figura 5b O espectro de saída do filtro na Figura 7b mostra como a filtragem imperfeita dá origem às imagens espectrais indesejadas. Após a interpolação, as imagens indesejadas do espectro de banda B de largura B residem nos centros nulos, localizados em múltiplos inteiros de s, Out R Se seguimos o filtro CIC com um filtro FIR de linha de atraso com derivação lowpass tradicional, cuja faixa de interrupção inclui a primeira banda de imagem, pode ser alcançada uma rejeição de imagem razoavelmente alta. Figura 8 Estrutura do filtro de decimação de CIC de terceira ordem e resposta de magnitude antes da dizimação Quando DR 8 Ver imagem em tamanho normal. Melhorar a atenuação CIC O método mais comum para melhorar o anti-aliasing do filtro CIC e atenuar a imagem é aumentar a ordem M do CIC Filtro usando múltiplos estágios A Figura 8 mostra a estrutura e resposta de magnitude de freqüência de um filtro de decimating M 3 CIC de terceira ordem. Observe a atenuação aumentada em s, fora R na Figura 8b em comparação com o filtro CIC de 1ª ordem na Figura 6a Porque o M 3 fases CIC estão em cascata, a resposta de magnitude global de freqüência será o produto de suas respostas individuais ou. O preço que pagamos por atenuação melhorado anti-alias é adicionadores de hardware adicionais e aumento do filtro CIC passband droop Uma penalidade adicional do aumento da ordem de filtro vem A partir do ganho do filtro, que é exponencial com a ordem Porque os filtros CIC geralmente devem trabalhar com precisão total para permanecer estável, o número de bits nos sumadores é M log 2 D, o que significa uma penalidade de grande largura de palavra de dados para maior Mesmo assim, esta implementação em vários estágios é comum em circuitos integrados comerciais, onde um filtro CIC de ordem M é freqüentemente chamado de filtro sinc M. Figura 9 Filtro de CIC de fase única im Plementations para decimation para a interpolação View full-sized image. Building um CIC filter Em CIC filtros, a seção de pente pode preceder ou seguir, a seção de integrador É sensato, no entanto, para colocar a seção de pente no lado do filtro de funcionamento em A menor taxa de amostragem para reduzir os requisitos de armazenamento no retardo Trocar os filtros de pente da Figura 5 com as operações de mudança de taxa resulta na implementação mais comum de filtros CIC, como mostrado na Figura 9 Observe que a seção de pente do filtro de decimação tem agora uma Atraso diferencial de comprimento de atraso de NDR Isto é porque um atraso de amostra N após decimação por R é equivalente a um atraso de amostra D antes de decimação por R Igualmente para o filtro de interpolação um atraso de amostra N antes da interpolação por R é equivalente a um D - Amostra após a interpolação por R. Those Figura 9 configurações rendimento dois benefícios principais em primeiro lugar, a seção de p novo atraso diferencial é reduzido para NDR reduzir os requisitos de armazenamento de dados em segundo lugar, A seção de pente agora opera a uma taxa de clock reduzida Ambos esses efeitos reduzem o consumo de energia de hardware. Figura 10 CIC respostas de filtro de decimação para vários valores de diferencial diferencial N quando R 8 para dois fatores de decimação quando N 2 Visualizar imagem em tamanho inteiro. O pente O parâmetro de concepção de atraso diferencial da secção s N é tipicamente 1 ou 2 para taxas de taxa de amostragem elevadas tal como é frequentemente utilizado em conversores descendentes para cima N ajusta efectivamente o número de nulos na resposta de frequência de um filtro de decimação, como mostrado na Figura 10a. An Uma característica importante de um decimador do CIC é que a forma da resposta do filtro muda muito pouco, como mostrado na Figura 10b, como uma função da razão de decimação. Para valores de R maiores do que aproximadamente 16, a alteração na forma do filtro é desprezível. O mesmo filtro FIR de compensação a ser usado para sistemas de relação de decimação variável. O filtro CIC sofre de excesso de registro devido à realimentação de unidade em cada estágio de integrador. O estouro é sem conseqüência Desde que as duas condições a seguir sejam atendidas. A faixa do sistema de numeração é maior ou igual ao valor máximo esperado na saída, e o filtro é implementado com duas aritmética complementar não complementar. Como um CIC de primeira ordem Filtro tem um ganho de D NR a 0Hz DC, M cascata CIC decimation filtros têm um ganho líquido de NR M Cada integrador adicional deve adicionar outro NR bits de largura para os estágios Interpolating CIC filtros têm zeros inserido entre as amostras de entrada reduzindo o seu ganho por um fator de 1 R para contabilizar as amostras de valor zero, de modo que o ganho líquido de um filtro CIC de interpolação é NR MR. Como o filtro deve usar aritmética inteira, as larguras de palavra em cada fase no filtro devem ser largas o suficiente para acomodar o sinal máximo cheio - scale entrada vezes o ganho naquela fase. Although o ganho de um filtro de decimação ordem Mth-CIC é NR M integradores individuais podem experimentar overflow Seu ganho é infinito em DC Como tal, o uso de dois s aritmética complementar Resolve essa situação de estouro, desde que a largura de palavra do integrador acomode a diferença máxima entre quaisquer duas amostras sucessivas em outras palavras, a diferença não causa mais do que um único estouro usando o formato binário de dois s complementares, com sua propriedade de envolvimento modular, O filtro de pente de follow-on corretamente calculará a diferença correta entre duas amostras sucessivas de saída de integrador. Para interpolação, o crescimento em tamanho de palavra é um bit por estágio de filtro de pente e estouro deve ser evitado para que os integradores acumulem corretamente Assim, Um bit extra de crescimento de palavra de dados em cada etapa de pente para interpolação Existe alguma pequena flexibilidade em descartar alguns dos bits LSBs menos significativos dentro dos estágios de um filtro CIC, à custa do ruído adicionado na saída do filtro Os efeitos específicos de Esta remoção de LSB são, entretanto, uma edição complicada que você pode aprender mais sobre a edição lendo o papel de Hogenauer 1. Enquanto o anterior discute Estes filtros podem também ser implementados com chips de DSP de ponto fixo programáveis ​​Embora esses chips tenham caminhos de dados inflexíveis e largura de palavra, a filtragem de CIC pode ser vantajosa para alterações de taxa de amostragem elevadas Podem ser acomodadas grandes larguras de palavras Com adições de multi-palavras em detrimento de instruções extras Mesmo assim, para grandes fatores de mudança de taxa de amostragem a carga de trabalho computacional por amostra de saída, em chips de DSP de ponto fixo, pode ser filtros de pequenapensação Em aplicações típicas de filtragem de interpolação de decimação, Desempenho de filtro da região de transição Estas propriedades desejáveis ​​não são fornecidas pelos filtros de CIC sozinhas, com seus ganhos de banda passante inclinados e regiões de transição largas Nós atenuamos este problema, por exemplo, seguindo o filtro CIC com um filtro FIR não compensador de compensação, como na Figura 1a, para diminuir a largura de banda de saída e nivelar o ganho de banda passante. Figura 11 Compensação Filtro FIR Respostas com um filtro CIC de decimação de primeira ordem com uma decimação de terceira ordem. A resposta de magnitude de frequência do filtro FIR de compensação é idealmente uma versão invertida da resposta de banda passante do filtro CIC semelhante à mostrada pela curva tracejada na Figura 11a para um filtro FIR trifásico simples cujos coeficientes são -1 16, 9 8, -1 16 Com a curva pontilhada representando a inclinação de banda passante não compensada de um filtro CIC de 1a ordem R 8, a curva sólida representa a resposta compensada do Filtros em cascata Se a largura de banda passband ou a ordem do filtro CIC aumenta a correção torna-se maior, exigindo mais compensação Taps de filtro FIR Um exemplo dessa situação é mostrado na Figura 11b onde a curva pontilhada representa a inclinação de banda passante de um filtro R 8 CIC de terceira ordem E a curva tracejada, assumindo a forma de x sen x 3, é a resposta de um filtro FIR de compensação de 15 derivações com os coeficientes -1, 4, -16, 32, -64, 136, -352, 1312, -352 , 136, -64, 32, -16, 4, -1.A correção de banda larga também significa sinais perto s, out 2 são atenuados com o filtro CIC e, em seguida, deve ser amplificado no filtro de correção, acrescentando ruído Como tal, os profissionais freqüentemente limitar a largura passband do filtro FIR de compensação para cerca de 1 4 A frequência do primeiro nulo na resposta do filtro CIC. Estas curvas tracejadas na Figura 11 representam as respostas de magnitude de frequência dos filtros FIR de compensação dentro dos quais não ocorre alteração da taxa de amostragem. As taxas de amostra de entrada e de saída dos filtros FIR são iguais às s , Taxa de saída de saída do filtro CIC de dizimação Se um filtro FIR de compensação foi projetado para fornecer uma decimação adicional por dois, sua resposta de magnitude de freqüência seria semelhante à da Figura 12, onde s, in é a taxa de amostra de entrada do filtro de compensação. Figura 12 Resposta de magnitude de freqüência de um filtro FIR de compensação de decimate-by-2 Veja a imagem de tamanho normal. Técnicas avançadas Aqui está a linha de fundo de nossa discussão de filtro CIC um filtro CIC de dizimação É apenas uma implementação recursiva muito eficiente de um filtro de média móvel, com torneiras NR, cuja saída é dizimada por R. Do mesmo modo, o filtro CIC de interpolação é a inserção de R -1 amostras zero entre cada amostra de entrada seguida por um NR - Filtragem média na taxa de amostragem de saída s, out As implementações em cascata na Figura 1 resultam em carga de trabalho computacional total muito menor do que a utilização de um único filtro FIR sozinho para decimação e mudança de taxa de amostragem altas As estruturas de filtro CIC são projetadas para maximizar a quantidade De baixa taxa de amostragem de processamento para minimizar o consumo de energia em aplicações de hardware de alta velocidade Novamente, CIC filtros não exigem multiplicação aritmética é estritamente adição e subtração Seu desempenho permite-nos afirmar que, tecnicamente falando, CIC filtros são magra filtragem média No fechamento, existem maneiras de construir filtros CIC não recorrentes que facilitam o problema de crescimento de largura de palavra dos tradicionais filtros CIC recursivos Essas arquiteturas de filtro CIC avançadas são discutidas no meu livro Understanding Digital Signal Processing, 2E 2.Richard Lyons é engenheiro de sistemas de consultoria e palestrante da Besser Associates em Mountain View, Ca. Ele é o autor do Understanding Digital Signal Processing 2 E e um editor associado Para o IEEE Signal Processing Magazine, onde ele criou e edita o DSP Dicas Truques coluna Você pode alcançá-lo at. Hogenauer, Eugene Uma classe econômica de Filtros Digitais para Decimation e Interpolação, IEEE Transactions em Acústica, Fala e Processamento de Sinal Vol ASSP-29, Pp 155-162, April 1981.Lyons, Richard, Compreendendo Digital Signal Processing, 2nd Ed Prentice Hall, Upper Saddle River, Nova Jersey, 2004, pp 556-561.Account Deactivated. Email Verification Required. Almost Done. Thank You for Registering. Criar Nova Senha. Criar Nova Senha. Conserir a Conta Completa Merge. Resend Verificação Email. Verification Email Sent. Email Verified. Change Password. Password Changed. Create N Ew Password. Create New Password. Understanding cascata integrador pente filters. Save a minha biblioteca Siga Comments. Richard LyonsMarch 31, 2005.The anteriormente obscuro CIC filtro é agora vital para muitas tarefas de alto volume de comunicação sem fio e equipamentos usando CIC filtros podem cortar Os filtros digitais CIC são implementações computacionalmente eficientes de filtros lowpass de banda estreita e muitas vezes são incorporados em implementações de hardware de decimação e interpolação em modernos sistemas de comunicação. Os filtros do CIC foram introduzidos Para a comunidade de processamento de sinais, por Eugene Hogenauer, há mais de duas décadas, mas suas possibilidades de aplicação cresceram nos últimos anos. 1 Melhorias na tecnologia de chip, o uso crescente de técnicas de filtragem polifásica, avanços em implementações de conversores delta-sigma eo Crescimento significativo nas comunicações sem fio têm tudo estimulado muito interesse N CIC filtros. Enquanto o comportamento ea implementação desses filtros não é complicado, sua cobertura tem sido escasso na literatura de sistemas embutidos Este artigo tenta aumentar o corpo de literatura para engenheiros de sistemas embutidos Depois de descrever algumas aplicações para filtros CIC, Apresentarão sua estrutura e comportamento, apresentarão o desempenho de domínio de freqüência de filtros de CIC e discutirão várias questões práticas importantes na construção desses filtros. Filtro de filtros CIC Os filtros CIC são adequados para filtragem antialiasing antes da redução de taxa de amostragem de decimation, conforme mostrado Na Figura 1a e para filtragem anti-imagem para aumento de taxa de amostragem de sinais interpolados como na Figura 1b Ambas as aplicações estão associadas com filtragem de taxa de dados muito alta, tais como modulação em quadratura de hardware e demodulação em sistemas sem fios modernos e AD delta-sigma DA conversores. Figura 1 CIC filtro applications. Click na imagem para enlarge. Because sua freqüência-magnitude-respon Se, os filtros CIC são tipicamente seguidos ou precedidos por filtros FIR de linha de retardo de linha baixa com deslocamento linear de maior desempenho, cujas tarefas são compensar a faixa de passagem não plana do filtro CIC. Essa arquitetura de filtro em cascata tem Benefícios valiosos Por exemplo, com a decimação, você pode reduzir a complexidade computacional da filtragem lowpass de banda estreita em comparação com se você usou um único filtro lowpass de resposta de impulso finito FIR Além disso, o filtro FIR de follow-on opera a taxas de clock reduzidas minimizando o consumo de energia em Aplicações de hardware de alta velocidade. Um bônus crucial no uso de filtros CIC, e uma característica que os torna populares em dispositivos de hardware, é que eles não exigem multiplicação. A aritmética necessária para implementar esses filtros digitais é estritamente adições e subtrações apenas. S ver como CIC filtros operam. Recursive filtro de soma de corrida filtros CIC originar a partir da noção de um recursivo running-sum fil Que é ele próprio uma forma eficiente de um medidor móvel não recursivo Lembre-se do processo de média móvel de ponto D padrão na Figura 2a Veja-se que D -1 summções mais uma multiplicação por 1 D são necessárias para calcular a saída de média y n. A saída do filtro de média móvel em tempo D é expresso como: onde n é o nosso índice de domínio de tempo. A expressão de domínio-z para este medidor de movimento é. qualquer sua função de transferência de z - domínio Hz é. Eu forneço essas equações não Para tornar as coisas complicadas, mas porque eles re útil A equação 1 nos diz como construir um averager móvel, ea Equação 3 está na forma usada pelo software de processamento de sinal comercial para modelar o comportamento do domínio de freqüência do averager móvel. O próximo passo Em nossa jornada para a compreensão dos filtros do CIC é considerar uma forma equivalente do averager móvel, o filtro de soma de corrida recursiva mostrado na Figura 2b. Aí vemos que a amostra de entrada atual xn é adicionada ea amostra de entrada mais antiga xn-D é subtraída A partir da média de saída anterior yn -1 É s chamada recursiva porque tem feedback Cada amostra de saída de filtro é retida e usada para calcular o próximo valor de saída A equação de diferença recursiva do soma de corrida s s é. having az - domínio H z função de transferência de . Usamos a mesma variável H z para as funções de transferência do filtro de média móvel e do filtro de soma de corrida recursiva porque suas funções de transferência são iguais entre si. É verdadeira A equação 3 é a expressão não recursiva ea equação 5 é a expressão recursiva Para um D-ponto de média A prova matemática disso pode ser encontrada em meu livro sobre o processamento de sinal digital, mas em breve vou demonstrar que a equivalência com um exemplo 2.Here s por isso que nos preocupamos com recursive running-sum filtra o padrão de média móvel em A Figura 2a deve realizar adições D -1 por amostra de saída O filtro recursivo de soma de corrida tem a vantagem de que apenas uma adição e uma subtração são necessárias por amostra de saída, S do comprimento de atraso D Esta eficiência computacional faz com que o filtro de soma de corrida recursiva seja atraente em muitas aplicações buscando redução de ruído através da média. Em seguida, veremos como um filtro de CIC é, em si, um filtro de soma de corrida recursiva. A representação da linha de retardo e ignorar a escala de 1 D na Figura 2b obtemos a forma clássica de um filtro CIC de 1a ordem, cuja estrutura em cascata é mostrada na Figura 2c A parte de feedforward do filtro CIC é chamada a seção de pente cujo diferencial O atraso é D enquanto a seção de realimentação é tipicamente chamada de integrador A fase de pente subtrai uma amostra de entrada atrasada da amostra de entrada corrente e o integrador é simplesmente um acumulador A equação de diferença do filtro CIC é. E sua função de transferência de domínio z é. Figura 3 Filtros de tempo único do CIC filtragem de respostas no domínio do tempo quando D 5 Ver imagem em tamanho inteiro. Para ver por que o filtro CIC é de interesse, primeiro examinamos seu comportamento no domínio do tempo, para D 5, mostrado em Figura 3 Se uma sequência de impulso unitário, uma amostra com valor unitário seguida de muitas amostras de valor zero, foi aplicada ao estágio de pente, a saída da etapa s é como mostrado na Figura 3a Agora pense, qual seria a saída do O impulso positivo inicial do filtro pente inicia a saída do integrador s all-ones, como na Figura 3b Então, D amostras mais tarde, o impulso negativo do estágio do pente chega ao integrador para Zero todas as outras amostras de saída do filtro CIC. A questão-chave é que a resposta do impulso unitário combinado do filtro CIC, que é uma sequência retangular, é idêntica às respostas de impulso unitário de um filtro de média móvel eo filtro recursivo de soma de corrida Os parâmetros de movimentação, os filtros de soma de corrida recursiva e os filtros de CIC são parentes próximos Eles têm os mesmos locais de pólo de z-domínios, suas respostas de magnitude de freqüência têm formas idênticas, suas respostas de fase são idênticas e suas funções de transferência diferem apenas Por um fator de escala constante Se você entender o comportamento do domínio do tempo de um averager móvel, então você agora compreende o comportamento do domínio do tempo do filtro CIC na Figura 2c. Figura 4 Características de um filtro CIC de estágio único quando D 5 Visualizar completo . A magnitude de frequência e a resposta de fase linear de um filtro D 5 CIC são mostradas na Figura 4a onde a frequência s é a taxa de amostragem de sinal de entrada em Hz. Podemos obter uma expressão para a resposta de frequência do filtro CIC por Avaliando a equação 7 s função de transferência de H cicz no círculo da unidade do z-plano, ajustando o rendimento de zej 2. Usando a identidade de Euler s jj sin ej - ej podemos escrever. Se ignorarmos o fator de fase na Equação 9, essa razão De termos sin pode ser aproximado por uma função sen xx Isto significa que a resposta de magnitude de freqüência do filtro CIC é aproximadamente igual a uma função sin xx centrada em 0Hz como vemos na Figura 4a É por isso que os filtros CIC são às vezes chamados filtros sinc. Filtro designers gostam de ver z - pla Por isso fornecemos as características do plano z de um filtro D 5 CIC na Figura 4c, onde o filtro de pentes produz D zeros, igualmente espaçados em torno do círculo unitário, e o integrador produz um único pólo cancelando o zero em Z 1 Cada um dos zeros do pente, sendo a D th raiz de 1, está localizado em zmej 2 m D onde m 0, 1, 2 D -1, correspondente a uma magnitude nula na Figura 4a. A situação normalmente arriscada de ter Um pólo de filtro diretamente no círculo de unidade não precisa nos incomodar aqui porque não há nenhum erro de quantização de coeficiente em nossa função de transferência de CIC cic Os coeficientes de filtro de CIC são uns e podem ser representados com precisão perfeita com formatos de número de ponto fixo Embora recursivo, filters are guaranteed stable, linear-phase shown in Figure 4b, and have finite-length impulse responses At 0Hz DC the gain of a CIC filter is equal to the comb filter delay D This fact, whose derivation is available, will be important to us when we actually implement a CIC filter in hardware 2.Figure 5 Single-stage CIC filters used in decimation and interpolation View full-sized image. Again, CIC filters are primarily used for antialiasing filtering prior to decimation and for anti-imaging filtering for interpolated signals With those notions in mind we swap the order of Figure 2c s comb and integrator we re permitted to do so because those operations are linear and include decimation by a sample rate change factor R in Figure 5a You may wish to prove that the unit-impulse response of the integrator comb combination, prior to the sample rate change, in Figure 5a is equal to that in Figure 3c In most CIC filter applications the rate change R is equal to the comb s differential delay D but we ll keep them as separate design parameters for now. Figure 6 Magnitude response of a 1st-order, D 8, decimating CIC filter before decimation aliasiing after R 8 decimation View full-sized image. The decimation operation R means discard all but every R th sample, resulti ng in an output sample rate of s, out s, in R To investigate a CIC filter s frequency-domain behavior in more detail, Figure 6a shows the frequency magnitude response of a D 8 CIC filter prior to decimation The spectral band, of width B centered at 0Hz is the desired passband of the filter A key aspect of CIC filters is the spectral folding that takes place due to decimation. Those B - width shaded spectral bands centered about multiples of s, in R in Figure 6a will alias directly into our desired passband after decimation by R 8 as shown in Figure 6b Notice how the largest aliased spectral component, in this example, is roughly 16dB below the peak of the band of interest Of course the aliased power levels depend on the bandwidth B the smaller B is, the lower the aliased energy after decimation. Figure 7 1st-order, D R 8, interpolating CIC filter spectra input spectrum output spectral images View full-sized image. Figure 5b shows a CIC filter used for interpolation where the R symbol means insert R -1 zeros between each x n sample, yielding a y n output sample rate of s, out R s, in In this CIC filter discussion, interpolation is defined as zeros-insertion followed by filtering Figure 7a shows an arbitrary baseband spectrum, with its spectral replications, of a signal applied to the D R 8 interpolating CIC filter of Figure 5b The filter s output spectrum in Figure 7b shows how imperfect filtering gives rise to the undesired spectral images. After interpolation, unwanted images of the B - width baseband spectrum reside at the null centers, located at integer multiples of s, out R If we follow the CIC filter with a traditional lowpass tapped delay-line FIR filter, whose stopband includes the first image band, fairly high image rejection can be achieved. Figure 8 3rd-order CIC decimation filter structure, and magnitude response before decimation when D R 8 View full-sized image. Improving CIC attenuation The most common method to improve CIC filter anti-aliasing and ima ge-reject attenuation is by increasing the order M of the CIC filter using multiple stages Figure 8 shows the structure and frequency magnitude response of a 3rd-order M 3 CIC decimating filter. Notice the increased attenuation at s, out R in Figure 8b compared with the 1st-order CIC filter in Figure 6a Because the M 3 CIC stages are in cascade, the overall frequency magnitude response will be the product of their individual responses or. The price we pay for improved anti-alias attenuation is additional hardware adders and increased CIC filter passband droop An additional penalty of increased filter order comes from the gain of the filter, which is exponential with the order Because CIC filters generally must work with full precision to remain stable, the number of bits in the adders is M log 2 D , which means a large data word-width penalty for higher order filters Even so, this multistage implementation is common in commercial integrated circuits, where an M th-order CIC filter is of ten called a sinc M filter. Figure 9 Single-stage CIC filter implementations for decimation for interpolation View full-sized image. Building a CIC filter In CIC filters, the comb section can precede, or follow, the integrator section It s sensible, however, to put the comb section on the side of the filter operating at the lower sample rate to reduce the storage requirements in the delay Swapping the comb filters from Figure 5 with the rate-change operations results in the most common implementation of CIC filters, as shown in Figure 9 Notice the decimation filter s comb section now has a delay length differential delay of N D R That s because an N - sample delay after decimation by R is equivalent to a D - sample delay before decimation by R Likewise for the interpolation filter an N - sample delay before interpolation by R is equivalent to a D - sample delay after interpolation by R. Those Figure 9 configurations yield two major benefits first, the comb section s new differential delay is decreased to N D R reducing data storage requirements second, the comb section now operates at a reduced clock rate Both of these effects reduce hardware power consumption. Figure 10 CIC decimation filter responses for various values of differential delay N when R 8 for two decimation factors when N 2 View full-sized image. The comb section s differential delay design parameter N is typically 1 or 2 for high sample-rate ratios as is often used in up down-converters N effectively sets the number of nulls in the frequency response of a decimation filter, as shown in Figure 10a. An important characteristic of a CIC decimator is that the shape of the filter response changes very little, as shown in Figure 10b, as a function of the decimation ratio For values of R larger than roughly 16, the change in the filter shape is negligible This allows the same compensation FIR filter to be used for variable-decimation ratio systems. The CIC filter suffers from register overflow because of the unity fee dback at each integrator stage The overflow is of no consequence as long as the following two conditions are met. the range of the number system is greater than or equal to the maximum value expected at the output, and. the filter is implemented with two s complement nonsaturating arithmetic. Because a 1st-order CIC filter has a gain of D NR at 0Hz DC , M cascaded CIC decimation filters have a net gain of NR M Each additional integrator must add another NR bits width for stages Interpolating CIC filters have zeros inserted between input samples reducing its gain by a factor of 1 R to account for the zero-valued samples, so the net gain of an interpolating CIC filter is NR M R Because the filter must use integer arithmetic, the word widths at each stage in the filter must be wide enough to accommodate the maximum signal full-scale input times the gain at that stage. Although the gain of an Mth-order CIC decimation filter is NR M individual integrators can experience overflow Their gain is i nfinite at DC As such, the use of two s complement arithmetic resolves this overflow situation just so long as the integrator word width accommodates the maximum difference between any two successive samples in other words, the difference causes no more than a single overflow Using the two s complement binary format, with its modular wrap-around property, the follow-on comb filter will properly compute the correct difference between two successive integrator output samples. For interpolation, the growth in word size is one bit per comb filter stage and overflow must be avoided for the integrators to accumulate properly So, we must accommodate an extra bit of data word growth in each comb stage for interpolation There is some small flexibility in discarding some of the least significant bits LSBs within the stages of a CIC filter, at the expense of added noise at the filter s output The specific effects of this LSB removal are, however, a complicated issue you can learn more about the is sue by reading Hogenauer s paper 1.While the preceding discussion focused on hard-wired CIC filters, these filters can also be implemented with programmable fixed-point DSP chips Although those chips have inflexible data paths and word widths, CIC filtering can be advantageous for high sample-rate changes Large word widths can be accommodated with multiword additions at the expense of extra instructions Even so, for large sample-rate change factors the computational workload per output sample, in fixed-point DSP chips, may be smallpensation filters In typical decimation interpolation filtering applications we want reasonably flat passband and narrow transition-region filter performance These desirable properties are not provided by CIC filters alone, with their drooping passband gains and wide transition regions We alleviate this problem, in decimation for example, by following the CIC filter with a compensation nonrecursive FIR filter, as in Figure 1a, to narrow the output bandwidth a nd flatten the passband gain. Figure 11 Compensation FIR filter responses with a 1st-order decimation CIC filter with a 3rd-order decimation View full-sized image. The compensation FIR filter s frequency magnitude response is ideally an inverted version of the CIC filter passband response similar to that shown by the dashed curve in Figure 11a for a simple three-tap FIR filter whose coefficients are -1 16, 9 8, -1 16 With the dotted curve representing the uncompensated passband droop of a 1st-order R 8 CIC filter, the solid curve represents the compensated response of the cascaded filters If either the passband bandwidth or CIC filter order increases the correction becomes greater, requiring more compensation FIR filter taps An example of this situation is shown in Figure 11b where the dotted curve represents the passband droop of a 3rd-order R 8 CIC filter and the dashed curve, taking the form of x sin x 3, is the response of a 15-tap compensation FIR filter having the coefficients -1, 4, -16, 32, -64, 136, -352, 1312, -352, 136, -64, 32, -16, 4, -1.A wideband correction also means signals near s, out 2 are attenuated with the CIC filter and then must be amplified in the correction filter, adding noise As such, practitioners often limit the passband width of the compensation FIR filter to roughly 1 4 the frequency of the first null in the CIC-filter response. Those dashed curves in Figure 11 represent the frequency magnitude responses of compensating FIR filters within which no sample-rate change takes place The FIR filters input and output sample rates are equal to the s, out output rate of the decimating CIC filter If a compensating FIR filter were designed to provide an additional decimation by two, its frequency magnitude response would look similar to that in Figure 12, where s, in is the compensation filter s input sample rate. Figure 12 Frequency magnitude response of a decimate-by-2 compensation FIR filter View full-sized image. Advanced techniques Here s the bottom line of our CIC-filter discussion a decimating CIC filter is merely a very efficient recursive implementation of a moving-average filter, with NR taps, whose output is decimated by R Likewise, the interpolating CIC filter is insertion of R -1 zero samples between each input sample followed by an NR - tap moving-average filter running at the output sample rate s, out The cascade implementations in Figure 1 result in total computational workloads far less than using a single FIR filter alone for high sample-rate-change decimation and interpolation CIC filter structures are designed to maximize the amount of low-sample-rate processing to minimize power consumption in high-speed hardware applications Again, CIC filters require no multiplication their arithmetic is strictly addition and subtraction Their performance allows us to state that, technically speaking, CIC filters are lean, mean filtering machines. In closing, there are ways to build nonrecursive CIC filters that ease the wo rd-width growth problem of the traditional recursive CIC filters Those advanced CIC filter architectures are discussed in my book Understanding Digital Signal Processing, 2E 2.Richard Lyons is a consulting systems engineer and lecturer with Besser Associates in Mountain View, Ca He is the author of Understanding Digital Signal Processing 2 E and an associate editor for the IEEE Signal Processing Magazine where he created and edits the DSP Tips Tricks column You can reach him at. Hogenauer, Eugene An Economical Class of Digital Filters For Decimation and Interpolation, IEEE Transactions on Acoustics, Speech and Signal Processing Vol ASSP-29, pp 155-162, April 1981.Lyons, Richard, Understanding Digital Signal Processing, 2nd Ed Prentice Hall, Upper Saddle River, New Jersey, 2004, pp 556-561.

No comments:

Post a Comment