Sunday 2 February 2020

Chapter 15 moving average filters


De vez em quando, uso uma média móvel para dados de filtro de passagem baixa. Um filtro de média móvel é muito simples e fácil de implementar em tempo real. Se você decidir a média de cinco pontos de dados juntos (M 5), então os dados filtrados são calculados por yi (xi-2 xi-1 xi xi1 xi2). Você pode até implementar isso de forma recursiva, de modo que cada cálculo subsequente apenas requer duas aritmética Operações, independentemente do tamanho de M. Por exemplo (assumindo M 5), se seu primeiro cálculo é y3 (x1 x2 x3 x4 x5) 5, então o próximo cálculo é simplesmente y4 y3 8211 x1 x6. O que eu não conheci até recentemente é como calcular a resposta de freqüência dos filtros de média móvel. A resposta de freqüência, Hf, pode ser calculada pelo pecado (pifM) (M sin (pif)), onde M é o comprimento da média móvel e f varia de 0 a 0,5 (com 0,5 representando metade da frequência da amostra). Abaixo está um gráfico das respostas de freqüência para comprimentos de 4, 8 e 16 (com uma freqüência de amostra de 500 Hz). Observe que os filtros possuem bandas de transição agradáveis ​​e suaves (o início das curvas de uma amplitude de 1 a 0) e bandas de parada horríveis (ondulações repetidas). Isso faz com que uma média móvel seja um filtro de suavização excepcionalmente bom 8220 (a ação no domínio do tempo), mas um filtro de passagem baixa excepcionalmente ruim (a ação no domínio da freqüência) 8221 (The Scientist and Engineer8217s Guide to Digital Signal Processing, Capítulo 15) . Abaixo estão exemplos de como os filtros médios móveis removem o ruído aleatório de um pulso retangular. Você pode ver que o pulso retangular é mantido relativamente íngreme pela faixa de transição gradual enquanto tira o ruído. Se você quiser remover o ruído de 60 Hz, então um comprimento de 8 funcionará bem (a linha verde no primeiro gráfico). Você pode melhorar a banda de parada, no caro de uma faixa de transição mais íngreme, aplicando o filtro várias vezes. Abaixo está um gráfico da resposta de freqüência de uma média móvel do comprimento 8 depois de ser filtrado um, dois ou quatro vezes. Estes foram calculados pela multiplicação da função de resposta de frequência por si só para cada passagem (Hf Hf de dupla passagem). Se você deseja remover o ruído de 60 Hz com um filtro de passagem dupla, então você pode usar um comprimento de 7 em vez de 8 com um filtro de passagem única. Transmissão média de filtros móveis 1 CAPÍTULO 15 Filtros médios móveis A média móvel é a mais comum Filtro no DSP, principalmente porque é o filtro digital mais fácil de entender e usar. Apesar da sua simplicidade, o filtro de média móvel é o ideal para uma tarefa comum: reduzir o ruído aleatório, mantendo uma resposta passo a passo. Isso torna o primeiro filtro para sinais codificados no domínio do tempo. No entanto, a média móvel é o pior filtro para sinais codificados de domínio de freqüência, com pouca habilidade para separar uma banda de freqüências de outra. Os parentes do filtro de média móvel incluem a média móvel gaussiana, negra e de passagem múltipla. Estes têm desempenho um pouco melhor no domínio da frequência, à custa do aumento do tempo de computação. Implementação por convolução Como o nome indica, o filtro de média móvel opera com a média de um número de pontos do sinal de entrada para produzir cada ponto no sinal de saída. Na forma de equação, está escrito: EQUAÇÃO 15-1 Equação do filtro de média móvel. Nesta equação, x é o sinal de entrada, y é o sinal de saída e M é o número de pontos utilizados na média móvel. Esta equação usa apenas pontos de um lado da amostra de saída que está sendo calculada. Yi 1 M Mamp1 j j x ij Onde é o sinal de entrada, é o sinal de saída, e M é o número x y de pontos na média. Por exemplo, em um filtro de média móvel de 5 pontos, o ponto 8 no sinal de saída é dado por: y 8 x 8 x 81 x 82 x 83 x 84 5 277 2 278 O Guia de cientistas e engenheiros para processamento de sinal digital Como alternativa, O grupo de pontos do sinal de entrada pode ser escolhido simetricamente em torno do ponto de saída: y8 x78 x79 x8 x81 x82 5 Isso corresponde a mudar a soma na Eq de: j para Mamp1 para: jamp (mamp1) 2 para (Mamp1) 2 . Por exemplo, em um filtro de média móvel de 11 pontos, o índice, j, pode passar de 11 (uma média do lado) ou -5 a 5 (média simétrica). A média simétrica requer que M seja um número ímpar. A programação é ligeiramente mais fácil com os pontos em apenas um lado no entanto, isso produz uma mudança relativa entre os sinais de entrada e de saída. Você deve reconhecer que o filtro de média móvel é uma convolução usando um kernel de filtro muito simples. Por exemplo, um filtro de 5 pontos possui o kernel de filtro: espinho. 15, 15, 15, 15, 15. espinho. Ou seja, o filtro médio móvel é uma convolução do sinal de entrada com um impulso retangular com uma área de um. A Tabela 15-1 mostra um programa para implementar o filtro de média móvel. 1 FILTRO MÉDIO MUDANTE 11 Este programa filtra 5 amostras com um filtro médio de 11 pontos em movimento, resultando em 49 amostras de dados filtrados. 13 14 DIM X4999 X mantém o sinal de entrada 15 DIM Y4999 Y mantém o sinal de saída 16 17 GOSUB XXXX Subrutina mítica para carregar X 18 19 PARA I 5 A 4949 Loop para cada ponto no sinal de saída 2 YI Zero, portanto pode ser usado Como acumulador 21 PARA J -5 A 5 Calcule a soma 22 YI YI X (IJ 23 NEXT J 24 YI YI11 Complete a média dividindo 25 NEXT I 26 27 TABELA FINAL 15-1 Redução de ruído versus resposta por etapas Muitos cientistas e engenheiros Sentir-se culpado por usar o filtro de média móvel. Por ser tão simples, o filtro de média móvel geralmente é o primeiro a ser tentado quando confrontado com um problema. Mesmo que o problema seja completamente resolvido, ainda há a sensação de que algo mais deveria ser Esta situação é realmente irônica. Não é apenas o filtro de média móvel muito bom para muitas aplicações, é ideal para um problema comum, reduzindo o ruído branco aleatório enquanto mantém a resposta passo a passo mais nítida. 3 Capítulo 15 - Filtros médios móveis a. Original Sinal 2 b. 11 poi Nt média móvel Amplitude FIGURA 15-1 Exemplo de um filtro médio móvel. Em (a), um pulso retangular é enterrado em barulho aleatório. Em (b) e (c), este sinal é filtrado com filtros de média móvel de 11 e 51 pontos, respectivamente. À medida que o número de pontos no filtro aumenta, o ruído torna-se mais baixo no entanto, as bordas tornando-se menos acentuadas. O filtro de média móvel é a solução ideal para este problema, proporcionando o menor ruído possível para uma nitidez de borda dada. Amplitude Amplitude c. Média móvel de 51 pontos A Figura 15-1 mostra um exemplo de como isso funciona. O sinal em (a) é um pulso enterrado em barulho aleatório. Em (b) e (c), a ação de suavização do filtro médio móvel diminui a amplitude do ruído aleatório (bom), mas também reduz a nitidez das bordas (ruim). De todos os filtros lineares possíveis que poderiam ser usados, a média móvel produz o menor ruído para uma nitidez da borda dada. A quantidade de redução de ruído é igual à raiz quadrada do número de pontos na média. Por exemplo, um filtro de média móvel de 1 ponto reduz o ruído por um fator de 1. Para entender por que a média móvel se a melhor solução, imagine que queremos projetar um filtro com uma nitidez de borda fixa. Por exemplo, vamos assumir que nós corrigimos a nitidez da borda, especificando que há onze pontos no aumento da resposta do passo. Isso exige que o kernel do filtro tenha onze pontos. A questão de otimização é: como escolhemos os onze valores no kernel de filtro para minimizar o ruído no sinal de saída Uma vez que o ruído que estamos tentando reduzir é aleatório, nenhum dos pontos de entrada é especial, cada um é tão barulhento quanto o vizinho . Portanto, é inútil dar tratamento preferencial a qualquer um dos pontos de entrada atribuindo-lhe um coeficiente maior no kernel de filtro. O menor ruído é obtido quando todas as amostras de entrada são tratadas igualmente, isto é, o filtro médio móvel. (Mais adiante neste capítulo, mostramos que outros filtros são essencialmente tão bons. O ponto é que nenhum filtro é melhor do que a média móvel simples). 4 28 O Guia de cientistas e engenheiros para a resposta de freqüência de processamento de sinal digital A Figura 15-2 mostra a resposta de freqüência do filtro de média móvel. É descrita matematicamente pela transformada de Fourier do pulso retangular, conforme discutido no Capítulo 11: EQUAÇÃO 15-2 Resposta de freqüência de um filtro M de média móvel. A frequência, f, corre entre e.5. Para f, use: H f 1 H f sin (bf M) M sin (bf) O roll-off é muito lento ea atenuação da banda de parada é horrível. Claramente, o filtro de média móvel não pode separar uma faixa de freqüências de outra. Lembre-se, o bom desempenho no domínio do tempo resulta em um desempenho fraco no domínio da freqüência e vice-versa. Em suma, a média móvel é um filtro de suavização excepcionalmente bom (a ação no domínio do tempo), mas um filtro passa-baixa excepcionalmente ruim (a ação no domínio da frequência). 1.2 FIGURA 15-2 Resposta de frequência do filtro de média móvel. A média móvel é um filtro passa-baixa muito pobre, devido ao seu lento deslize e a baixa atenuação da banda de batente. Essas curvas são geradas por Eq Amplitude ponto 31 ponto 3 ponto Freqüência Parentes do Filtro Médico Mover Em um mundo perfeito, os designers de filtros só teriam que lidar com o domínio do tempo ou informações codificadas por domínio de freqüência, mas nunca uma mistura dos dois no mesmo sinal. Infelizmente, existem algumas aplicações em que ambos os domínios são simultaneamente importantes. Por exemplo, sinais de televisão se enquadram nesta categoria desagradável. As informações de vídeo são codificadas no domínio do tempo, ou seja, a forma da forma de onda corresponde aos padrões de brilho na imagem. No entanto, durante a transmissão, o sinal de vídeo é tratado de acordo com sua composição de freqüência, como sua largura de banda total, como as ondas de suporte para cor de amplificador de som são adicionadas, restauração de amplificação de eliminação do componente de CC, etc. Como outro exemplo, a interferência eletromagnética é melhor Entendido no domínio da frequência, mesmo que seja 5 Capítulo 15 - Filtros médios móveis 281 Amplitude Amplitude.2.1 a. Núcleo de filtro 2 passa 1 passagem 4 passa b. Etapa resposta 1 passagem 2 pass 4 pass FFT Frequência Integrar 2 Log () d. Resposta de frequência (db) 2 passagens 4 passagens 1 passagem Frequência FIGURA 15-3 Características dos filtros de média móvel de passagem múltipla. A Figura (a) mostra os kernels de filtro resultantes da passagem de um filtro de média móvel de sete pontos sobre os dados uma vez, duas vezes e quatro vezes. A Figura (b) mostra as respostas de passo correspondentes, enquanto (c) e (d) mostram as respostas de freqüência correspondentes. Amplitude (db) Amplitude c. Resposta de frequência 1 pass 2 pass 4 pass the signals information is codificado no domínio do tempo. Por exemplo, o monitor de temperatura em uma experiência científica pode estar contaminado com 6 hertz das linhas de energia, 3 kHz de uma fonte de alimentação de comutação, ou 132 kHz de uma estação de rádio AM local. Parentes do filtro de média móvel têm melhor desempenho de domínio de freqüência e podem ser úteis nestas aplicações de domínio misto. Os filtros médios móveis de passagem múltipla envolvem passar o sinal de entrada através de um filtro médio móvel duas ou mais vezes. A Figura 15-3a mostra o kernel geral do filtro resultante de uma, duas e quatro passagens. Duas passagens equivalem a usar um kernel de filtro triangular (um kernel de filtro retangular convolvido com ele próprio). Após quatro ou mais passagens, o kernel de filtro equivalente parece um Gaussiano (lembre-se do Teorema do Limite Central). Conforme mostrado em (b), as passagens múltiplas produzem uma resposta de passo em forma de quotsquot, em comparação com a linha reta da única passagem. As respostas de freqüência em (c) e (d) são dadas pela Eq multiplicada por si por cada passagem. Ou seja, cada vez que a convolução do domínio resulta em uma multiplicação dos espectros de freqüência. 6 282 O Guia de cientistas e engenheiros para processamento de sinal digital A Figura 15-4 mostra a resposta de freqüência de dois outros parentes do filtro de média móvel. Quando um Gaussiano puro é usado como um kernel de filtro, a resposta de freqüência também é gaussiana, conforme discutido no Capítulo 11. O gaussiano é importante porque é a resposta de impulso de muitos sistemas naturais e manmade. Por exemplo, um breve pulso de luz entrando em uma longa linha de transmissão de fibra óptica sairá como um pulso gaussiano, devido aos diferentes caminhos captados pelos fótons dentro da fibra. O kernel de filtro gaussiano também é usado extensivamente no processamento de imagens porque possui propriedades únicas que permitem rápidas ondulações bidimensionais (ver Capítulo 24). A segunda resposta de freqüência na Fig corresponde ao uso de uma janela Blackman como um kernel de filtro. (A janela do termo não tem significado aqui é simplesmente parte do nome aceito desta curva). A forma exata da janela Blackman é dada no Capítulo 16 (Eq. 16-2, Fig. 16-2) no entanto, parece muito com um gaussiano. Como estes parentes do filtro de média móvel melhor do que o filtro de média móvel em si. Três maneiras: primeiro e mais importante, esses filtros têm melhor atenuação de parada do que o filtro de média móvel. Em segundo lugar, os grãos de filtro se afilam a uma amplitude menor perto das extremidades. Lembre-se de que cada ponto no sinal de saída é uma soma ponderada de um grupo de amostras da entrada. Se o kernel do filtro diminui, as amostras no sinal de entrada que estão mais distantes recebem menos peso do que as próximas. Em terceiro lugar, as respostas passo a passo são curvas suaves, em vez da linha direta abrupta da média móvel. Estes últimos dois geralmente são de benefício limitado, embora você possa encontrar aplicativos onde eles são vantagens genuínas. O filtro de média móvel e seus parentes são quase iguais em reduzir o ruído aleatório enquanto mantém uma resposta passo a passo. A ambigüidade reside na forma como o tempo de subida da resposta passo é medido. Se o tempo de subida for medido de 1 a 1, o filtro médio móvel é o melhor que você pode fazer, conforme mostrado anteriormente. Em comparação, medir o tempo de subida de 1 a 9 torna a janela Blackman melhor do que o filtro de média móvel. O argumento é que isso é apenas dificuldades teóricas consideram esses filtros iguais neste parâmetro. A maior diferença nesses filtros é a velocidade de execução. Usando um algoritmo recursivo (descrito em seguida), o filtro de média móvel funcionará como um raio em seu computador. Na verdade, é o filtro digital mais rápido disponível. Várias passagens da média móvel serão correspondentemente mais lentas, mas ainda muito rápidas. Em comparação, os filtros gaussianos e negros são incrivelmente lentos, porque devem usar convolução. Acho um fator de dez vezes o número de pontos no kernel de filtro (com base na multiplicação sendo cerca de 1 vezes mais lento do que a adição). Por exemplo, espere que um gaussiano de 1 ponto seja 1 vezes mais lento do que uma média móvel usando recursão. Implementação Recursiva Uma tremenda vantagem do filtro de média móvel é que ele pode ser implementado com um algoritmo que é muito rápido. Para entender isso 7 Capítulo 15 - Filtros médios móveis FIGURA 15-4 Resposta em freqüência da janela Blackman e kernels de filtro gaussianos. Ambos os filtros proporcionam uma melhor atenuação de parada do que o filtro de média móvel. Isso não tem vantagem em remover o ruído aleatório dos sinais codificados no domínio do tempo, mas pode ser útil em problemas de domínio misto. A desvantagem desses filtros é que eles devem usar convolução, um algoritmo terrivelmente lento. Amplitude (db) Blackman Gaussian Frequency algorithm, imagine passar um sinal de entrada, x, através de um filtro de média móvel de sete pontos para formar um sinal de saída, y. Agora, veja como dois pontos de saída adjacentes, y5 e y51 são calculados: y5 x47 x48 x49 x5 x51 x52 x53 y51 x48 x49 x5 x51 x52 x53 x54 Estes são quase os mesmos pontos de cálculo x48 a x53 devem ser adicionados para y5 e novamente Para y51. Se y5 já foi calculado, a maneira mais eficiente de calcular y51 é: y51 y5 x54amp x47 Uma vez que e51 foi encontrado usando y5, então y52 pode ser calculado a partir da amostra y51, e assim por diante. Depois que o primeiro ponto é calculado em y, todos os outros pontos podem ser encontrados com apenas uma única adição e subtração por ponto. Isso pode ser expresso na equação: EQUAÇÃO 15-3 Implementação recursiva do filtro de média móvel. Nesta equação, x é o sinal de entrada, y é o sinal de saída, M é o número de pontos na média móvel (um número ímpar). Antes que esta equação possa ser usada, o primeiro ponto no sinal deve ser calculado usando uma soma padrão. Yi yiamp1 xipamp xiampq onde: p (Mamp1) 2 q p 1 Observe que esta equação usa duas fontes de dados para calcular cada ponto na saída: pontos da entrada e pontos previamente calculados da saída. Isso é chamado de equação recursiva, o que significa que o resultado de um cálculo 8 284 O Guia do cientista e engenheiros para processamento de sinal digital é usado em cálculos futuros. (O termo quotrecursivequot também tem outros significados, especialmente em ciência da computação). O Capítulo 19 discute uma variedade de filtros recursivos com mais detalhes. Esteja ciente de que o filtro recursivo médio móvel é muito diferente dos filtros recursivos típicos. Em particular, a maioria dos filtros recursivos tem uma resposta de impulso infinitamente longa (IIR), composta de sinusoides e exponenciais. A resposta de impulso da média móvel é um pulso retangular (resposta de impulso finito, ou FIR). Este algoritmo é mais rápido do que outros filtros digitais por vários motivos. Primeiro, existem apenas dois cálculos por ponto, independentemente do comprimento do kernel de filtro. Em segundo lugar, a adição e a subtração são as únicas operações matemáticas necessárias, enquanto a maioria dos filtros digitais requer uma multiplicação demorada. Em terceiro lugar, o esquema de indexação é muito simples. Cada índice na Eq é encontrado adicionando ou subtraindo constantes inteiras que podem ser calculadas antes do início da filtragem (ou seja, p e q). Além disso, todo o algoritmo pode ser realizado com representação inteira. Dependendo do hardware utilizado, os números inteiros podem ser mais do que uma ordem de grandeza mais rápida que o ponto flutuante. Surpreendentemente, a representação de números inteiros funciona melhor do que o ponto flutuante com esse algoritmo, além de ser mais rápido. O erro de arredondamento da aritmética de ponto flutuante pode produzir resultados inesperados se você não for cuidadoso. Por exemplo, imagine um sinal de amostra de 1, sendo filtrado com este método. A última amostra no sinal filtrado contém o erro acumulado de 1, adições e 1, subtrações. Isso aparece no sinal de saída como um deslocamento de derivação. Inteiros não têm esse problema porque não há erro de arredondamento na aritmética. Se você deve usar ponto flutuante com este algoritmo, o programa na Tabela 15-2 mostra como usar um acumulador de dupla precisão para eliminar essa deriva. 1 FILTRO MÉDIO DE MOVIMENTO IMPLEMENTADO POR RECURSÃO 11 Este programa filtra 5 amostras com um filtro médio de 12 pontos em movimento 12, resultando em 49 amostras de dados filtrados. 13 Um acumulador de dupla precisão é usado para evitar a deriva de arredondamento. 14 15 DIM X4999 X mantém o sinal de entrada 16 DIM Y4999 Y mantém o sinal de saída 17 DEFDBL ACC Defina a variável ACC para ser de dupla precisão 18 19 GOSUB XXXX Subrutina mítica para carregar X 2 21 ACC Localizar Y5 pela média dos pontos X para X1 22 PARA I TO 1 23 ACC ACC XI 24 PRÓXIMO I 25 Y5 ACC11 26 Filtro médio móvel recursivo (Eq. 15-3) 27 PARA I 51 PARA ACC ACC XI5 - XI-51 29 YI ACC 3 PRÓXIMO I 31 32 TABELA FINAL 15-2O Guia de cientistas e engenheiros para processamento de sinal digital Por Steven W. Smith, Ph. D. Uma tremenda vantagem do filtro de média móvel é que ele pode ser implementado com um algoritmo que é muito rápido. Para entender esse algoritmo, imagine passar um sinal de entrada, x, através de um filtro de média móvel de sete pontos para formar um sinal de saída, y. Agora, veja como dois pontos de saída adjacentes, y 50 e y 51 são calculados: são quase os mesmos pontos de cálculo x 48 a x 53 devem ser adicionados para y 50 e novamente para y 51. Se y 50 já foi calculado , A maneira mais eficiente de calcular y 51 é: Uma vez que y 51 foi encontrado usando y 50, então y 52 pode ser calculado a partir da amostra y 51, e assim por diante. Depois que o primeiro ponto é calculado em y, todos os outros pontos podem ser encontrados com apenas uma única adição e subtração por ponto. Isso pode ser expresso na equação: Observe que esta equação usa duas fontes de dados para calcular cada ponto na saída: pontos da entrada e pontos previamente calculados da saída. Isso é chamado de equação recursiva, o que significa que o resultado de um cálculo é usado em cálculos futuros. (O termo recursivo também tem outros significados, especialmente em ciência da computação). O Capítulo 19 discute uma variedade de filtros recursivos com mais detalhes. Esteja ciente de que o filtro recursivo médio móvel é muito diferente dos filtros recursivos típicos. Em particular, a maioria dos filtros recursivos tem uma resposta de impulso infinitamente longa (IIR), composta de sinusoides e exponenciais. A resposta de impulso da média móvel é um pulso retangular (resposta de impulso finito, ou FIR). Este algoritmo é mais rápido do que outros filtros digitais por vários motivos. Primeiro, existem apenas dois cálculos por ponto, independentemente do comprimento do kernel de filtro. Em segundo lugar, a adição e a subtração são as únicas operações matemáticas necessárias, enquanto a maioria dos filtros digitais requer uma multiplicação demorada. Em terceiro lugar, o esquema de indexação é muito simples. Cada índice na Eq. 15-3 é encontrado por adicionar ou subtrair constantes inteiras que podem ser calculadas antes do início da filtragem (ou seja, p e q). Além disso, todo o algoritmo pode ser realizado com representação inteira. Dependendo do hardware utilizado, os números inteiros podem ser mais do que uma ordem de grandeza mais rápida que o ponto flutuante. Surpreendentemente, a representação de números inteiros funciona melhor do que o ponto flutuante com esse algoritmo, além de ser mais rápido. O erro de arredondamento da aritmética de ponto flutuante pode produzir resultados inesperados se você não for cuidadoso. Por exemplo, imagine um sinal de 10 000 amostras sendo filtrado com este método. A última amostra no sinal filtrado contém o erro acumulado de 10.000 adições e 10.000 subtrações. Isso aparece no sinal de saída como um deslocamento de derivação. Inteiros não têm esse problema porque não há erro de arredondamento na aritmética. Se você deve usar ponto flutuante com este algoritmo, o programa na Tabela 15-2 mostra como usar um acumulador de dupla precisão para eliminar essa deriva.

No comments:

Post a Comment