Moving average and convolution


A Média Móvel como um Filtro A média móvel é freqüentemente usada para suavizar dados na presença de ruído. A média móvel simples nem sempre é reconhecida como o filtro FIR (resposta ao impulso finito) que é, embora seja, na verdade, um dos filtros mais comuns no processamento de sinais. Tratar isso como um filtro permite compará-lo com, por exemplo, filtros windowed-sinc (veja os artigos sobre passa-baixa, passa-banda e filtros de rejeição de banda para exemplos deles). A principal diferença com esses filtros é que a média móvel é adequada para sinais para os quais a informação útil está contida no domínio do tempo. das quais as medições de suavização pela média são um excelente exemplo. Por outro lado, os filtros windowed-sinc são fortes no domínio da frequência. com equalização no processamento de áudio como um exemplo típico. Há uma comparação mais detalhada dos dois tipos de filtros no Domínio do Tempo versus o Desempenho do Domínio de Freqüência dos Filtros. Se você tiver dados para os quais o tempo e o domínio da frequência são importantes, convém dar uma olhada em Variações na Média Móvel. que apresenta um número de versões ponderadas da média móvel que são melhores nisso. A média móvel de comprimento (N) pode ser definida como escrita, como é tipicamente implementada, com a amostra de saída atual como a média das amostras anteriores (N). Visto como um filtro, a média móvel executa uma convolução da seqüência de entrada (xn) com um pulso retangular de comprimento (N) e altura (1 / N) (para fazer a área do pulso e, portanto, o ganho de o filtro, um). Na prática, é melhor tomar (N) ímpar. Embora uma média móvel também possa ser calculada usando um número par de amostras, usar um valor ímpar para (N) tem a vantagem de que o atraso do filtro será um número inteiro de amostras, já que o atraso de um filtro com (N) amostras é exatamente ((N-1) / 2). A média móvel pode então ser alinhada exatamente com os dados originais, deslocando-os por um número inteiro de amostras. Domínio de Tempo Como a média móvel é uma convolução com pulso retangular, sua resposta de freqüência é uma função sinc. Isso faz com que seja algo parecido com o dual do filtro windowed-sinc, já que é uma convolução com um pulso sinc que resulta em uma resposta de freqüência retangular. É essa resposta de frequência sinc que faz da média móvel um mau desempenho no domínio da frequência. No entanto, ele funciona muito bem no domínio do tempo. Portanto, é perfeito para suavizar os dados para remover o ruído e, ao mesmo tempo, manter uma resposta rápida (Figura 1). Para o típico Additive White Gaussian Noise (AWGN) que é frequentemente assumido, a média das amostras (N) tem o efeito de aumentar o SNR por um fator de (sqrt N). Como o ruído para as amostras individuais não é correlacionado, não há razão para tratar cada amostra de forma diferente. Assim, a média móvel, que dá a cada amostra o mesmo peso, eliminará a quantidade máxima de ruído para uma determinada nitidez de resposta de passo. Implementação Por ser um filtro FIR, a média móvel pode ser implementada por meio de convolução. Terá então a mesma eficiência (ou falta dela) que qualquer outro filtro FIR. No entanto, também pode ser implementado recursivamente, de uma maneira muito eficiente. Segue diretamente da definição que Esta fórmula é o resultado das expressões para (yn) e (yn1), isto é, onde notamos que a mudança entre (yn1) e (yn) é que um termo extra (xn1 / N) aparece no final, enquanto o termo (xn-N1 / N) é removido do começo. Em aplicações práticas, muitas vezes é possível deixar de fora a divisão por (N) para cada termo, compensando o ganho resultante de (N) em outro lugar. Esta implementação recursiva será muito mais rápida que a convolução. Cada novo valor de (y) pode ser calculado com apenas duas adições, em vez das adições (N) que seriam necessárias para uma implementação direta da definição. Uma coisa a ser observada com uma implementação recursiva é que os erros de arredondamento se acumularão. Isso pode ou não ser um problema para seu aplicativo, mas também implica que essa implementação recursiva funcionará melhor com uma implementação de número inteiro do que com números de ponto flutuante. Isso é bastante incomum, já que uma implementação de ponto flutuante é geralmente mais simples. A conclusão de tudo isso deve ser que você nunca deve subestimar a utilidade do filtro de média móvel simples em aplicativos de processamento de sinal. Ferramenta de Design de Filtro Este artigo é complementado com uma ferramenta de Design de Filtro. Experimente com valores diferentes para (N) e visualize os filtros resultantes. Experimente agora29 Setembro, 2013 Média móvel por convolução O que é a média móvel e o que é bom para Como a média móvel é feita usando a convolução A média móvel é uma operação simples usada normalmente para suprimir o ruído de um sinal: definimos o valor de cada ponto para a média dos valores em sua vizinhança. Por uma fórmula: Aqui x é a entrada e y é o sinal de saída, enquanto o tamanho da janela é w, suposto ser ímpar. A fórmula acima descreve uma operação simétrica: as amostras são obtidas de ambos os lados do ponto real. Abaixo está um exemplo da vida real. O ponto em que a janela é colocada, na verdade, é vermelho. Os valores fora de x devem ser zeros: para brincar e ver os efeitos da média móvel, dê uma olhada nesta demonstração interativa. Como fazer isso por convolução Como você pode ter reconhecido, o cálculo da média móvel simples é semelhante à convolução: em ambos os casos, uma janela é deslizada ao longo do sinal e os elementos na janela são resumidos. Então, tente fazer a mesma coisa usando convolução. Use os seguintes parâmetros: A saída desejada é: Como primeira abordagem, vamos tentar o que obtemos convolvendo o sinal x pelo seguinte k kernel: A saída é exatamente três vezes maior que o esperado. Também pode ser visto que os valores de saída são o resumo dos três elementos na janela. É porque durante a convolução a janela é deslizada, todos os elementos nela são multiplicados por um e então resumidos: yk 1 cdot x 1 cdot x 1 cdot x Para obter os valores desejados de y. a saída deve ser dividida por 3: Por uma fórmula incluindo a divisão: Mas não seria ótimo fazer a divisão durante a convolução? Aqui vem a idéia reorganizando a equação: Então vamos usar o seguinte k kernel: Desta forma nós iremos obter a saída desejada: Em geral: se quisermos fazer média móvel por convolução tendo um tamanho de janela de w. usaremos o seguinte k kernel: Uma função simples que faz a média móvel é: Um exemplo de uso é: The Scientist and Engineers Guide to Digital Signal Processing Por Steven W. Smith, Ph. D. Como o nome indica, o filtro de média móvel opera calculando 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, isso está escrito: Onde está o sinal de entrada, é o sinal de saída e M é o número de pontos na média. Por exemplo, em um filtro de média móvel de 5 pontos, o ponto 80 no sinal de saída é dado por: Como alternativa, o grupo de pontos do sinal de entrada pode ser escolhido simetricamente em torno do ponto de saída: . 15-1 de: j 0 a M -1, a: j - (M -1) / 2 a (M -1) / 2. Por exemplo, em um filtro de média móvel de 10 pontos, o índice, j. pode executar de 0 a 11 (média de um 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 é um pouco mais fácil com os pontos em apenas um lado, no entanto, isso produz um deslocamento relativo entre os sinais de entrada e 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 tem o kernel do filtro: 82300, 0, 1/5, 1/5, 1/5, 1/5, 1/5, 0, 08230. Ou seja, o filtro da média móvel é uma convolução do sinal de entrada com um pulso retangular com uma área de um. A Tabela 15-1 mostra um programa para implementar o filtro de média móvel.

Comments

Popular Posts