Monday 13 November 2017

Gaussian Moving Average Code


Eu tenho dados amostrados em intervalos essencialmente aleatórios. Gostaria de calcular uma média móvel ponderada usando numpy (ou outro pacote de python). Eu tenho uma implementação grosseira de uma média móvel, mas estou tendo problemas para encontrar uma boa maneira de fazer uma média móvel ponderada, de modo que os valores para o centro da lixeira sejam ponderados mais do que valores em direção às bordas. Aqui eu gerar alguns dados de amostra e depois tomar uma média móvel. Como posso implementar mais facilmente uma média móvel ponderada Obrigado Usando o conselho da crs17 para usar pesos na função np. average, eu encontrei uma função média ponderada, que usa uma função Gaussiana para pesar os dados: Variações na Média Mover A movimentação O filtro de média é mais ou menos perfeito para suavizar dados na presença de ruído, se a informação útil em seus dados estiver completamente no domínio do tempo. Nesse caso, você não se preocupa com seu desempenho bastante fraco no domínio da freqüência. A Figura 1 mostra as respostas de impulso, passo e freqüência do filtro básico de média móvel (com três amostras extras em ambos os lados que não fazem parte das respostas de impulso e passo, para maior clareza). Às vezes, no entanto, você precisa trabalhar com dados para os quais ambos os domínios são importantes. Para esses casos, existem versões ponderadas da média móvel que são mais ou menos equivalentes no domínio do tempo, mas que têm um desempenho muito melhor no domínio da freqüência. Média móvel repetida A primeira coisa que você pode fazer para melhorar a resposta de freqüência da média móvel é aplicá-la várias vezes. Após duas repetições, isso equivale a uma ponderação triangular dos coeficientes (Figura 2). Uma vez que a aplicação do mesmo filtro duplica duas vezes seu efeito, o primeiro lóbulo lateral da resposta de freqüência é apenas metade tão alto quanto o da Figura 1. O motivo da forma triangular é que a média móvel é uma convolução com um pulso retangular. A aplicação de duas vezes provoca uma convolução desse pulso retangular, resultando em uma janela triangular para o filtro combinado. Observe que Ive tirou o mesmo comprimento de filtro na Figura 2 como na Figura 1, deslocando assim o primeiro zero da resposta de freqüência. Uma verdadeira convolução do filtro retangular original resultaria em um filtro mais longo e teria mantido os zeros exatamente no mesmo lugar, é claro. Se o filtro de média móvel for repetido várias vezes, seus coeficientes convergem para uma janela gaussiana (Figura 3) devido ao teorema do limite central. Claro, um Gaussiano real se estende infinitamente em ambas as direções, então não há outra opção do que cortá-la em algum ponto (ou talvez multiplicá-la com uma segunda janela). Além disso, o desvio padrão do gaussiano deve ser escolhido. Para esta ilustração (e para a implementação do Designer de filtros), adotei as configurações padrão do MATLAB. Na prática, você pode querer simplesmente aplicar repetidamente a média móvel em vez de aplicar uma janela gaussiana. Quando implementado de forma recursiva, a média móvel é muito eficiente. Enquanto a janela gaussiana deve ser implementada através da convolução. Blackman Window Outra possibilidade é escolher uma das funções de janela clássicas que são usadas para filtros windowed-sinc, e usá-lo como kernel de filtro (veja a excelente página da Wikipedia em funções de janela). Por exemplo, eu escolhi a janela Blackman (Figura 4). Isso melhora a atenuação da faixa de parada ainda mais, enquanto ainda mostra uma resposta de domínio do tempo suave sem qualquer toque ou superação. Em conclusão, se você precisa alisar dados, mas precisa de um melhor desempenho de freqüência do que a média móvel básica tem para oferecer, várias alternativas estão disponíveis. Ferramenta de design de filtro Este artigo é complementado com uma ferramenta de design de filtro. Experimente as diferentes funções da janela e o comprimento do filtro e veja o efeito na resposta de freqüência. Experimente agora. Uma nota sobre modelos em média móveis para campos aleatórios Gaussianos Linda V. Hansen a Thordis L. Thorarinsdottir b. Centro de Geometria Estocástica e Bioimagem Avançada, Universidade de Aarhus, Dinamarca b Centro de Informática Norueguês, Oslo, Noruega Recebido em 20 de julho de 2012. Revisado em 5 de dezembro de 2012. Aceito em 6 de dezembro de 2012. Disponível on-line em 12 de dezembro de 2012. A classe de modelos de média móvel oferece uma Estrutura de modelagem flexível para campos aleatórios gaussianos com muitos modelos bem conhecidos, como a família de covariância Matrn e a covariância gaussiana que se enquadram neste quadro. Os modelos médios móveis também podem ser vistos como um alinhamento do kernel de uma base Lvy, uma estrutura de modelagem geral que inclui vários tipos de modelos não gaussianos. Propomos um novo modelo de correlação espacial de um parâmetro que surge de um kernel de poder e mostra que a dimensão Hausdorff associada dos caminhos da amostra pode levar qualquer valor entre e. Como resultado, o modelo oferece flexibilidade semelhante nas propriedades fractals do campo resultante como o modelo Matrn. Função de correlação Dimensão Hausdorff Média em movimento Poder kernel Campo aleatório Copyright 2012 Elsevier B. V. Todos os direitos reservados.

No comments:

Post a Comment