Sunday 9 June 2019

Movimento média filtro convolução


A média móvel como um filtro A média móvel é frequentemente utilizada para suavização de dados na presença de ruído. A média móvel simples nem sempre é reconhecida como o filtro de Resposta de Impulso Finito (FIR) que é, enquanto é realmente um dos filtros mais comuns no processamento de sinal. Tratá-lo como um filtro permite compará-lo com, por exemplo, windowed-sinc filtros (ver os artigos sobre low-pass, high-pass, band-pass e band-reject filtros para exemplos desses). 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 medidas de alisamento por média são um excelente exemplo. Filtros windowed-sinc, por outro lado, são fortes performers no domínio da freqüência. Com equalização no processamento de áudio como um exemplo típico. Há uma comparação mais detalhada de ambos os tipos de filtros no domínio do tempo versus desempenho de domínio de freqüência de filtros. Se você tiver dados para os quais o tempo e o domínio de freqüência são importantes, então você pode querer 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 corrente como a média das amostras (N) anteriores. 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 (1N) (para fazer a área do pulso e, portanto, o ganho do filtro , 1 ). Na prática, é melhor tomar (N) ímpar. Embora uma média móvel possa também 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, uma vez que o atraso de um filtro com (N) Amostras é exactamente ((N-1) 2). A média móvel pode então ser alinhada exatamente com os dados originais deslocando-o por um número inteiro de amostras. Domínio Dado que a média móvel é uma convolução com um pulso retangular, a sua resposta de frequência é uma função sinc. Isso torna algo como o dual do filtro windowed-sinc, uma vez que é uma convolução com um pulso sinc que resulta em uma resposta de freqüência retangular. É esta resposta de freqüência de sinc que faz com que a média móvel seja um desempenho fraco no domínio da freqüência. No entanto, ele funciona muito bem no domínio do tempo. Portanto, é perfeito para suavizar os dados para remover o ruído, enquanto ao mesmo tempo ainda mantém uma rápida resposta passo (Figura 1). Para o típico Ruído Gaussiano Branco Aditivo (AWGN) que é freqüentemente assumido, a média (N) de amostras tem o efeito de aumentar a SNR por um fator de (sqrt N). Como o ruído para as amostras individuais não está 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, vai se livrar da quantidade máxima de ruído para uma dada nitidez resposta passo. Implementação Porque é um filtro FIR, a média móvel pode ser implementada através de convolução. Ele terá então a mesma eficiência (ou falta dela) como qualquer outro filtro FIR. No entanto, também pode ser implementado recursivamente, de uma forma muito eficiente. Segue-se diretamente a partir da definição de que esta fórmula é o resultado das expressões para (yn) e (yn1), ou seja, onde observamos que a mudança entre (yn1) e (yn) é que um termo extra (xn1N) aparece em O final, enquanto o termo (xn-N1N) é removido desde o início. Nas 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 (N) adições que seriam necessárias para uma implementação direta da definição. Uma coisa a olhar para fora com uma implementação recursiva é que os erros de arredondamento irá acumular. Isso pode ou não pode ser um problema para o aplicativo, mas também implica que essa implementação recursiva realmente funcionará melhor com uma implementação inteira do que com números de ponto flutuante. Isso é bastante incomum, uma vez 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 simples filtro de média móvel em aplicações de processamento de sinal. Filter Design Tool Este artigo é complementado com uma ferramenta Filter Design. Experimente com diferentes valores para (N) e visualize os filtros resultantes. Experimente agora 29 de setembro de 2017 Média móvel por convolução O que é média móvel e para que é bom Como a média móvel é feita usando a convolução A média móvel é uma operação simples usada geralmente 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 ey é 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 tomadas de ambos os lados do ponto real. Abaixo está um exemplo da vida real. O ponto em que a janela é colocada realmente é vermelho. Valores fora de x são supostos ser zeros: Para brincar e ver os efeitos da média móvel, dê uma olhada nesta demonstração interativa. Como fazê-lo 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, dar-lhe uma tentativa de fazer a mesma coisa usando convolução. Use os seguintes parâmetros: A saída desejada é: Como primeira aproximação, vamos tentar o que obtemos ao converter o sinal x pelo k kernel seguinte: A saída é exatamente três vezes maior do 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 ao longo, todos os elementos nele são multiplicados por um e, em seguida, resumido: 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 para fazer a divisão durante convolução Aqui vem a idéia, reorganizando a equação: Então vamos usar o k kernel seguinte: Desta forma, vamos Obter a saída desejada: Em geral: se queremos fazer a média móvel por convolução tendo um tamanho de janela de w. Vamos usar o k kernel k: Uma função simples fazendo a média móvel é: Um exemplo de uso é: O cientista e engenheiros guia para processamento de sinal digital Por Steven W. Smith, Ph. D. Como o nome indica, o filtro de média móvel opera fazendo a média de um número de pontos a partir do sinal de entrada para produzir cada ponto no sinal de saída. Na forma de equação, isto é escrito: Onde está o sinal de entrada, é o sinal de saída, e M é o número de pontos na média. Por exemplo, num 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: Isto corresponde à alteração da soma em Eq . 15-1 de: j 0 para M -1, para: j - (M -1) 2 para (M -1) 2. Por exemplo, em um filtro de média móvel de 10 pontos, o índice, j. Pode variar 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. 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 saída. Você deve reconhecer que o filtro de média móvel é uma convolução usando um kernel de filtro muito simples. Ou seja, o filtro de média móvel é uma convolução do sinal de entrada com um impulso rectangular que tem um comprimento de onda de 5 mm, ou seja, um filtro de 5 pontos com o núcleo de filtro 82300, 0, 15, 15, 15, 15, 15, Área de um. Tabela 15-1 mostra um programa para implementar a média móvel filter. Using MATLAB, como posso encontrar a média móvel de 3 dias de uma coluna específica de uma matriz e acrescentar a média móvel para a matriz que eu estou tentando calcular a 3- Dia média móvel de baixo para cima da matriz. Eu forneci o meu código: Dada a seguinte matriz a e máscara: Tentei implementar o comando conv, mas estou recebendo um erro. Aqui está o comando conv que eu tenho tentado usar na segunda coluna da matriz a: A saída que desejo é dada na seguinte matriz: Se você tiver alguma sugestão, eu gostaria muito. Obrigado Para a coluna 2 da matriz a, estou computando a média móvel de 3 dias da seguinte maneira e colocando o resultado na coluna 4 da matriz a (I renomeado como a matriz 39 como 39desiredOutput39 apenas para ilustração). A média de 3 dias de 17, 14, 11 é 14 a média de 3 dias de 14, 11, 8 é 11 a média de 3 dias de 11, 8, 5 é 8 ea média de 3 dias de 8, 5, 2 é 5. Não há nenhum valor nas 2 linhas inferiores para a 4a coluna porque a computação para a média móvel de 3 dias começa na parte inferior. A saída 39valid39 não será mostrada até pelo menos 17, 14 e 11. Espero que isso faz sentido ndash Aaron Jun 12 13 em 1:28 Em geral, seria útil se você mostrar o erro. Neste caso você está fazendo duas coisas erradas: Primeiro, sua convolução precisa ser dividida por três (ou o comprimento da média móvel) Segundo, observe o tamanho de c. Você não pode apenas caber c em um. A maneira típica de obter uma média móvel seria usar o mesmo: mas isso não se parece com o que você quer. Em vez disso, você é forçado a usar um par de linhas:

No comments:

Post a Comment