Tuesday 18 July 2017

Moving Average Filter Design


Um filtro digital introdutório Bem aberto MicroModeler DSP e selecione um filtro digital na barra de ferramentas na parte superior e arraste-o para o nosso aplicativo. Bem, escolha um filtro médio móvel porque é um dos tipos mais simples de filtros. Depois de soltar o filtro, as telas serão atualizadas automaticamente. (Clique para iniciar o MicroModeler DSP em uma nova janela) Todos sabemos o que é uma média - adicione os números e divida por quantos existem. Um filtro médio móvel faz exatamente isso. Ele armazena um histórico dos últimos N números e produz sua média. Toda vez que um novo número entra, a média é efetivamente recalculada das amostras armazenadas e um novo número é emitido. A resposta de frequência de um filtro No canto superior direito, vemos o gráfico de Magnitude vs Frequência, ou a quantidade de freqüências diferentes serão amplificadas ou reduzidas pelo filtro médio móvel. Como você pode esperar, a média das últimas N amostras aplicará algum tipo de suavização ao sinal, mantendo as baixas freqüências e removendo as altas freqüências. Podemos controlar o número de entradas anteriores, ou amostras que mede, ajustando o comprimento do filtro, N. Ao ajustar isso, podemos ver que temos algum controle básico sobre quais as frequências podem passar e quais são descartadas. O interior de um filtro Se olharmos a visão de estrutura, podemos ver o que o interior de um filtro de média móvel pode parecer. O diagrama foi anotado para mostrar o significado dos diferentes símbolos. Os símbolos Z-1 significam atraso por uma amostra de tempo e os símbolos significam adicionar ou combinar os sinais. As setas significam multiplicar (pense amplificar, reduzir ou dimensionar) o sinal pela quantidade indicada à direita da seta. Para uma média de 5 amostras, tomamos um quinto (0.2) da amostra mais recente, um quinto da segunda amostra mais recente e assim por diante. A cadeia de atrasos é chamada de linha de atraso, com o sinal de entrada atrasado por um passo de tempo adicional à medida que você segue a linha de atraso. As setas também são chamadas de torneiras, para que você possa quase imaginá-las como torneiras como a da sua pia da cozinha que são todas um quinto aberto. Você poderia imaginar o sinal que flui da esquerda e sendo progressivamente atrasado à medida que se move ao longo da linha de atraso, depois recombinado em diferentes pontos fortes através das torneiras para formar a saída. Também deve ser fácil ver que a saída do filtro será: Qual é o equivalente à média das últimas 5 amostras. (Entrada t-N significa a entrada atrasada do tempo t-N) Na prática, o código gerado pelo MicroModeler DSP usará truques para fazer isso de forma mais eficiente, de modo que apenas as primeiras e últimas amostras precisam ser envolvidas, mas o diagrama é bom para fins ilustrativos. Se você pode entender isso, então, você pode ter uma idéia do que é um filtro FIR. Um filtro FIR é idêntico ao filtro de média móvel, mas em vez de todas as forças da torneira serem iguais, elas podem ser diferentes. Aqui temos um filtro de média móvel e um filtro FIR. Você pode ver que eles são estruturalmente os mesmos, a única diferença é os pontos fortes das torneiras. A próxima seção irá apresentá-lo aos filtros de resposta de impulso finito (FIR). Ao variar as forças de toque, podemos criar perto de qualquer resposta de freqüência que desejamos. Projetando filtros digitais Comparados com suas contrapartes analógicas, os filtros digitais oferecem excelente desempenho e flexibilidade. Projetar filtros digitais pode parecer uma tarefa assustadora, no entanto, por causa de sua aparentemente infinita variedade de opções de implementação. A vasta gama de ferramentas de design de processamento de sinal digital (DSP) disponíveis pode lidar com muitos dos detalhes. O que você precisa é um bom controle sobre os conceitos básicos de design de filtro para obter as ferramentas iniciadas. O lugar para começar é saber o tipo de informação que um sinal contém. A informação normalmente vem de um dos dois domínios. Pode estar no domínio da frequência, onde o conteúdo espectral do sinal é de interesse. As informações também podem estar no domínio do tempo, onde a amplitude e a fase do sinal são de interesse. O termo domínio do tempo é um pouco enganador, no entanto, na medida em que nem todos esses sinais se relacionam com o tempo. Por exemplo, uma única amostra de cada elemento em uma série de sensores de deformação em um anel de aeronave produz um sinal que pode ser processado usando filtros de domínio do tempo. Filtragem inversa Uma das desvantagens para os filtros recursivos (IIR) é que suas características de fase não são lineares. Para alguns tipos de sinais, como o áudio normal, isso não é um problema. A fase desses sinais é aleatória para começar. Outros tipos de sinais de domínio de freqüência, no entanto, precisam de uma relação de fase linear para preservar a informação desejada. Você pode resolver esse problema para os filtros IIR com o custo de duplicar o tempo de execução e a complexidade. Você usa uma técnica chamada filtragem reversa para corrigir os erros de fase introduzidos no filtro original. Em essência, você corre o tempo para trás. Isso parece uma impossibilidade, mas no mundo digital é bastante simples. Uma vez que você já possui todos os valores de dados passados ​​armazenados no cálculo do filtro inicial, basta executar o filtro usando valores posteriores em vez de valores anteriores. A equação de diferença torna-se: isso adiciona um atraso. Você precisa esperar tantas amostras como a ordem do filtro antes de calcular o primeiro valor de saída. O resultado da filtragem normal seguida de filtragem reversa, no entanto, é um sinal com atraso de fase zero. Uma segunda consideração é o tipo de implementação de filtro que deseja usar. Conforme descrito em Filtros Digitais: uma Introdução. Por Iain A. Robin, os filtros digitais vêm em dois tipos: convolução e recursiva. Os filtros de convolução, também denominados filtros de resposta de impulso finito (FIR), têm o atributo de não exibir distorção de fase. Há um atraso, é claro, mas todas as amostras recebidas recebem o mesmo tratamento para que as relações de fase do sinal sejam preservadas. Os filtros FIR de alta ordem podem ser facilmente implementados e alcançarão um desempenho extremamente alto, embora possam exigir muitos recursos para implementar. Os filtros recursivos, também denominados filtros de resposta de impulso infinito (IIR), podem ser implementados com muito menos recursos do que uma FIR correspondente. Isso os torna mais fáceis de implementar e uma ordem de grandeza mais rápida na execução como um algoritmo DSP. Os IIRs, no entanto, exibem uma resposta de fase não-linear, a menos que especificamente projetado para fase zero. Eles também sofrem de limitações de desempenho porque a aritmética de comprimento de palavra finito restringe o pedido máximo de filtro IIR que pode ser implementado. Com estas duas considerações em mente, você pode começar a avaliar as características do filtro em relação à sua aplicação. Os filtros são mais facilmente compreendidos por sua resposta de passo ou sua resposta de freqüência. A resposta passo a passo, importante em aplicações de domínio do tempo, é a saída de filtros, dada uma alteração abrupta no sinal de entrada como ilustrado na Figura 1. As respostas passo a passo têm três parâmetros importantes: aumento do tempo, superação e linearidade da fase. Figura 1: a resposta 160Step é a saída dos filtros dada uma alteração abrupta no sinal de entrada. Risetime é o número de amostras de saída entre 10 da mudança de saída e 90 da mudança. Como os filtros de domínio do tempo são tipicamente usados ​​para ajudar a identificar eventos no sinal (como um limite de bits), quanto mais rápido o tempo de subida, melhor será o filtro. Overshoot é uma distorção gerada por filtro da informação do domínio do tempo, que aparece como ondulações nas bordas do passo de saída. É uma distorção que deve ser eliminada, se possível, porque pode encobrir a informação crítica do desempenho do sistema. Quando o filtro ultrapassa, torna-se impossível determinar se o sinal está sendo distorcido pelo sistema que o gera ou pelo filtro. A linearidade da fase para as respostas passo a passo refere-se à simetria da resposta do passo acima e abaixo da marca de 50. Conforme mostrado na Figura 2. Uma fase linear é simétrica em relação ao ponto intermediário enquanto a assimetria ocorre com a fase não linear. A fase linear garante que as bordas ascendentes do sinal filtrado parecem bordas descendentes. Figura 2: 160 (a) Gráfico ilustrando a fase linear simétrica. (B) A fase não-linear assimétrica. A resposta de freqüência é importante em aplicativos de domínio de freqüência. A resposta, mostrada na Figura 3. Tem uma banda passante e uma faixa de parada para selecionar as frequências de interesse e descartar todas as outras. O limite entre o passband e stopband é a banda de transição, que ocorre em torno da freqüência de corte dos filtros. A largura desta faixa de transição é o filtro roll-off, que é um dos parâmetros importantes de um filtro de domínio de freqüência. Em geral, um roll-off mais rápido é melhor. Figura 3: 160Illustração da banda passante, stopband e faixa de transição em um filtro com boa atenuação de parada. Passband ripple é um segundo parâmetro importante. Representa uma distorção dos sinais que ocorrem na banda passante. Idealmente, não deve haver ondulação de banda passante para que os sinais desejados passem inalterados. O filtro ideal também elimina completamente os sinais na parada. Na prática, no entanto, uma certa energia em frequências de stopband passará. A quantidade pela qual o filtro reduz o sinal de stopband é a atenuação de parada de filtros, o terceiro parâmetro de filtro de domínio de tempo importante. Existem quatro tipos comuns de filtros de domínio de freqüência: todos eles podem ser avaliados usando os três parâmetros. Embora as respostas de passo e frequência sejam importantes para avaliar um filtro digital, há um terceiro tipo de resposta que é importante na implementação do filtro: a resposta de impulso. A resposta ao impulso, ilustrada na Figura 4. É a saída dos filtros ao receber um sinal que possui apenas uma amostra não-zero, chamada de função delta (d 91n93). A maneira mais direta de implementar um filtro digital é criar um FIR que convoca uma resposta de impulso h91n93 (também chamado de kernel de filtro) com o sinal de entrada x91n93 usando: onde M é o número de pontos usados ​​para expressar o kernel de filtro. Figura 4: 160Illustração da resposta ao impulso. Cada uma das três respostas contém informações completas sobre o filtro, para saber que um lhe dá os outros dois. A resposta passo a passo é a integração discreta da resposta ao impulso. A resposta de freqüência vem da transformada discreta de Fourier (DFT) da resposta de impulso. Um design de filtro pode, portanto, começar com uma descrição de resposta em qualquer um dos formulários. Esses projetos não precisam necessariamente ser complexos. Um dos filtros de domínio do tempo FIR mais úteis, o filtro de média móvel, é ideal para remover o ruído aleatório (branco) de um sinal de domínio do tempo, como um fluxo de bit serial. A função de transferência de uma média móvel do comprimento M é Isso é facilmente implementado em uma FIR simplesmente armazenando as últimas M amostras e adicionando-as. Para um IIR, o que se deve perceber é que a média móvel toma uma nova amostra e deixa cair a amostra mais antiga em cada período de amostra, portanto, o filtro médio móvel reduz o ruído aleatório em um sinal por uma raiz quadrada fator. Então, um ponto de 100 pontos O filtro reduziria o ruído em um factor de 10. Infelizmente, a resposta de passo de um filtro médio móvel tem um tempo de subida que aumenta com o M, o que é indesejável. No entanto, como se mostra, ele tem o tempo de subida mais rápido para um determinado nível de redução de ruído de qualquer filtro de domínio do tempo. Não importa o que, então, você terá que comprometer-se entre redução de ruído e tempo de subida. A média móvel é um excelente filtro de suavização, mas o deslocamento da freqüência é lento e a atenuação da sua barreira é horrível, tornando-se um filtro passa-baixa terrível. Isso é típico, um filtro digital pode ser otimizado para o desempenho do domínio do tempo ou o desempenho do domínio de freqüência, mas não os dois. Windpass Sinc Low-Pass Filter Um filtro FIR apropriado para domínio de freqüência é o filtro windowed-sinc. Este filtro de passagem baixa usa a função sinc (sin (x) x) para seu kernel de filtro, onde o valor dos componentes do kernel é dado por: Onde f c é a freqüência de corte desejada, expressa como uma fração da freqüência de amostragem. Se o kernel de filtro tivesse um número infinito de pontos, o resultado seria um filtro de passagem baixa ideal sem ondulação de banda passante, atenuação infinita na faixa de parada e uma faixa de transição infinitesimal. Infelizmente, um número infinito de pontos não é um bom tamanho para um kernel de filtro. Uma solução simples é limitar o número de pontos no kernel escolhendo pontos M1 em torno do centro de simetria e ignorando o resto. Isso, de fato, ajusta os valores restantes para zero. Escolhendo uma janela O valor de M define as características de roll-off dos filtros. Com um número infinito de pontos, o roll-off é infinitamente íngreme: a saída vai de um para zero em uma única amostra. Com um número finito, a largura de banda da banda de transição é dada por: Onde a largura de banda é expressa como uma fração da freqüência de amostragem e deve estar entre 0 e 0,5. Basta truncar a função sinc para limitar o número de pontos introduz alguns problemas na resposta de freqüência resultante, como mostra a Figura 5. A descontinuidade na resposta ao impulso causa ondulação na banda passante e reduz a atenuação da banda de parada. Para resolver esse problema, o filtro window-sinc usa um kernel de filtro que é o produto da função sinc e uma função de janela suavemente cônica. Figura 5: 160 A detecção da função sinc para limitar o número de pontos apresenta alguns problemas na resposta de freqüência resultante. Uma variedade dessas funções de janela são possíveis, mas duas das mais úteis são as janelas Blackman e Hamming. Ambas são funções derivadas matematicamente que trazem a função e sua primeira derivada para zero nos pontos finais, resultando em uma resposta de freqüência muito mais suave. A janela Blackman tem a melhor atenuação de stopband dos dois: -74 dB versus -53 dB para a janela Hamming. A janela de Hamming, por outro lado, tem cerca de 20 roteiros mais rápidos. Formando outros filtros Com um bom filtro de passagem baixa na mão, os outros tipos comuns de filtros de domínio de freqüência são fáceis de obter. Você pode, por exemplo, projetar um filtro passa-alto diretamente da resposta de impulso de um filtro passa-baixa. Existem duas maneiras de lidar com essa conversão: inversão espectral e reversão espectral. A inversão espectral dá uma resposta de freqüência que é uma inversão (virada de cima para baixo) do filtro passa-baixa correspondente. Você calcula os coeficientes ao reverter o sinal de todos os componentes do kernel, exceto o centro. O novo componente central é simplesmente (1- o componente central antigo). A Figura 6 mostra esquematicamente como isso funciona. A saída do filtro passa-alto é simplesmente a saída de filtros passa-baixa subtraída de um filtro de passagem total (a função delta). Figura 6: filtro 160High-pass. A inversão espectral é menos intuitiva. Nesta abordagem, você altera o sinal de componentes alternativos do kernel. Com efeito, você multiplicou o kernel de filtro por uma sinusoide com uma freqüência de metade da taxa de amostragem, que desloca a resposta de freqüência dos filtros por f s 2. Isso resulta em uma resposta de freqüência que é virada da esquerda para a direita. A abordagem funciona porque a resposta de freqüência de qualquer filtro digital é simétrica em torno de zero de freqüência e repete na freqüência de amostragem. Conforme mostrado na Figura 7. A inversão espectral efetivamente desliza a resposta de freqüência do filtro passa-baixa. Figura 7: 160 A reversão espectral efetivamente desliza a resposta de freqüência do filtro passa-baixa. Com os filtros passa-baixa e alta passagem na mão, é fácil ver como construir um filtro de rejeição de banda. Basta adicionar os resultados dos dois filtros juntos para obter a resposta total. O kernel de rejeição de banda é a soma vetorial dos dois kernels de filtro. Você pode usar inversão espectral ou inversão espectral no filtro de rejeição de banda para obter um filtro de passagem de banda. Você também pode criar um filtro passa-banda conectando os filtros de passagem alta e alta como mostrado na Figura 8. Se você precisa de um único filtro com as mesmas características, você deve convolver os kernels dos dois filtros para gerar o kernel do filtro de passagem de banda. Figura 8: 160Bandpass filter. Esses filtros FIR simples podem atender a muitas necessidades de aplicações modestas. Eles podem ser ineficientes para implementar, no entanto, e um filtro IIR (recursivo) pode ser o que você precisa. Para criar um IIR, você terá que usar a transformada em Z. A transformada Z é o equivalente digital da transformação de Laplace que utilizam os criadores de filtros analógicos: Onde s s j w. Os eixos reais e imaginários do plano S em que os filtros e os zeros são plotados. Se você substituir a variável de tempo com o número de amostra n, deixe r e - s. E definir o z re jw que você obtém: a equação geral para um filtro de recursão é a equação de diferença: Tomando a transformação Z dessa equação e coletando os termos que você obtém: Esta é a função de transferência do filtro IIR expresso em uma forma que diretamente Dá os coeficientes do filtro. Tomando apenas os primeiros termos, a estrutura do projeto IIR é mostrada na Figura 9. Figura 9: 160 Estrutura do projeto IIR. No entanto, você não precisa de toda essa complexidade. Se tudo o que quiser é um filtro passa-baixa simples, equivalente a um circuito RC, você pode usar a versão single-pole. Neste caso, um 0 1-x e b 1 x. Todos os outros termos são zero. O parâmetro x determina a quantidade de decaimento entre as amostras e pode ser encontrado a partir de xe -1 d onde d é o número de amostras necessárias para uma entrada de passo para decadência para 36,8 do seu valor final. Isto é equivalente à constante de tempo RC do circuito analógico correspondente. Da mesma forma, o equivalente a um circuito RC passe alto tem os valores a 0 (1x) 2, a 1 - (1x) 2 e b 0 x. Uma maneira alternativa de escolher x é usar x e -2 p fc. Aqui fc é a frequência de corte 3dB, expressa como uma fração da freqüência de amostragem com um valor entre 0 e 0,5. Se você precisa ir além desses filtros simples, sua melhor opção é usar alguns dos excelentes softwares de design DSP disponíveis. Se você quiser tentar sua mão sem uma ferramenta especial, você pode projetar um filtro digital arbitrário como faria com um filtro analógico. Primeiro, determine os pólos e zeros analógicos no plano S, depois use as substituições da derivação da transformada Z. Isso lhe dá os pólos e os zeros no plano Z, permitindo que você escreva a função de transferência como: Uma vez que você conhece os pólos e os zeros que deseja, pode conectá-los, faça uma pequena manipulação algébrica para colocar a equação na outra forma , E leia os coeficientes do filtro. Claro, não termina lá. Os erros de aritmética e de arredondamento de comprimento de palavra finito podem deslocar os pólos efetivos e os zeros longe o suficiente para tornar o filtro instável. Somente testes e ajustes cuidadosos permitem que você desenvolva um filtro personalizado que funciona como previsto.

No comments:

Post a Comment