Friday 22 September 2017

Filtro De Média Móvel Ponderada


Filtros FIR, filtros IIR e equação de diferença de coeficiente constante linear Filtros de média móvel causal (FIR) Nós discutimos sistemas em que cada amostra da saída é uma soma ponderada de (algumas das) amostras da entrada. Vamos tomar um sistema de soma ponderada causal, onde causal significa que uma dada amostra de saída depende apenas da amostra de entrada atual e outros insumos mais cedo na seqüência. Nem os sistemas lineares em geral, nem os sistemas finitos de resposta ao impulso em particular, precisam ser causais. No entanto, a causalidade é conveniente para um tipo de análise que iria explorar em breve. Se simbolizamos as entradas como valores de um vetor x. E as saídas como valores correspondentes de um vetor y. Então tal sistema pode ser escrito como onde os valores de b são quotweights aplicados às amostras de entrada atuais e anteriores para obter a amostra de saída atual. Podemos pensar na expressão como uma equação, com o sinal de igual signo igual a, ou como uma instrução processual, com o sinal de igual significação atribuição. Vamos escrever a expressão para cada amostra de saída como um loop MATLAB de instruções de atribuição, onde x é um vetor N-comprimento de amostras de entrada, e b é um vetor M-comprimento de pesos. A fim de lidar com o caso especial no início, vamos incorporar x em um vetor mais longo xhat cujas primeiras M-1 amostras são zero. Vamos escrever a soma ponderada para cada y (n) como um produto interno, e faremos algumas manipulações das entradas (como inverter b) para este fim. Esse tipo de sistema é muitas vezes chamado de filtro de média móvel, por razões óbvias. De nossas discussões anteriores, deve ser óbvio que tal sistema é linear e invariante ao deslocamento. Claro, seria muito mais rápido usar a convolução de função MATLAB conv () em vez do nosso mafilt (). Em vez de considerar as primeiras amostras M-1 da entrada como sendo zero, poderíamos considerá-las iguais às últimas amostras M-1. Isso é o mesmo que tratar a entrada como periódica. Bem, use cmafilt () como o nome da função, uma pequena modificação da função mafilt () anterior. Na determinação da resposta de impulso de um sistema, não há geralmente nenhuma diferença entre estes dois, desde que todas as amostras não-iniciais da entrada são zero: Uma vez que um sistema deste tipo é linear e shift-invariante, sabemos que seu efeito em qualquer Sinusoid será apenas a escala e deslocá-lo. Aqui é importante que usemos a versão circular A versão circularmente convoluta é deslocada e escalada um pouco, enquanto a versão com convolução ordinária é distorcida no início. Vamos ver o que a escala exata e deslocamento é usando um fft: Tanto a entrada ea saída têm amplitude apenas nas freqüências 1 e -1, que é como deveria ser, uma vez que a entrada era uma sinusoid eo sistema era linear. Os valores de saída são maiores numa razão de 10,62518 1,3281. Este é o ganho do sistema. E quanto à fase Nós só precisamos olhar onde a amplitude é diferente de zero: A entrada tem uma fase de pi2, como nós pedimos. A fase de saída é deslocada por um adicional 1.0594 (com sinal oposto para a freqüência negativa), ou cerca de 16 de um ciclo à direita, como podemos ver no gráfico. Agora vamos tentar uma sinusoid com a mesma freqüência (1), mas em vez de amplitude 1 e fase pi2, vamos tentar amplitude 1,5 e fase 0. Sabemos que apenas a freqüência 1 e -1 terá amplitude não-zero, então vamos apenas olhar Para eles: Novamente a razão de amplitude (15.937712.0000) é 1.3281 - e quanto à fase é novamente deslocada por 1.0594 Se esses exemplos são típicos, podemos prever o efeito do nosso sistema (resposta de impulso .1 .2 .3 .4 .5) em qualquer sinusoide com freqüência 1 - a amplitude será aumentada em um fator de 1,3281 e a fase (freqüência positiva) será deslocada em 1,0594. Poderíamos continuar a calcular o efeito desse sistema sobre sinusóides de outras freqüências pelos mesmos métodos. Mas há uma maneira muito mais simples, e uma que estabelece o ponto geral. Dado que a circunvolução (circular) no domínio do tempo significa a multiplicação no domínio da frequência, daí decorre que, por outras palavras, a DFT da resposta de impulso é a razão da DFT da saída para a DFT da entrada. Nesta relação os coeficientes de DFT são números complexos. Desde abs (c1c2) abs (c1) abs (c2) para todos os números complexos c1, c2, esta equação nos diz que o espectro de amplitude da resposta de impulso será sempre a relação entre o espectro de amplitude da saída para a da entrada . No caso do espectro de fase, ângulo (c1c2) ângulo (c1) - ângulo (c2) para todos os c1, c2 (com a condição de que as fases diferentes por n2pi são considerados iguais). Portanto, o espectro de fase da resposta ao impulso será sempre a diferença entre os espectros de fase da saída e da entrada (com quaisquer correções de 2pi são necessárias para manter o resultado entre - pi e pi). Podemos ver os efeitos de fase mais claramente se desempacotarmos a representação da fase, isto é, se adicionarmos vários múltiplos de 2pi conforme necessário para minimizar os saltos que são produzidos pela natureza periódica da função ângulo (). Embora a amplitude e a fase sejam normalmente utilizadas para apresentação gráfica e mesmo tabular, uma vez que são uma forma intuitiva de pensar os efeitos de um sistema sobre os vários componentes de frequência de sua entrada, os coeficientes de Fourier complexos são mais úteis algébricamente, A expressão simples da relação A abordagem geral que acabamos de ver funcionará com filtros arbitrários do tipo esboçado, em que cada amostra de saída é uma soma ponderada de algum conjunto de amostras de entrada. Como mencionado anteriormente, estes são muitas vezes chamados filtros de resposta de impulso finito, porque a resposta ao impulso é de tamanho finito, ou às vezes filtros de média móvel. Podemos determinar as características de resposta de freqüência de tal filtro a partir da FFT de sua resposta de impulso e também podemos projetar novos filtros com características desejadas por IFFT a partir de uma especificação da resposta de freqüência. Filtros Autoregressivos (IIR) Não haveria nenhum ponto em ter nomes para filtros FIR, a menos que houvesse algum outro tipo de distinção, de modo que aqueles que estudaram pragmática não ficarão surpresos ao saber que existe de fato outro tipo principal Do filtro tempo-invariante linear. Estes filtros são às vezes chamados recursivos porque o valor de saídas anteriores (assim como entradas anteriores) importa, embora os algoritmos sejam geralmente escritos usando construções iterativas. Eles também são chamados filtros Infinite Impulse Response (IIR), porque em geral sua resposta a um impulso continua para sempre. Eles também são chamados de filtros auto-regressivos, porque os coeficientes podem ser considerados como o resultado de fazer uma regressão linear para expressar valores de sinal como uma função de valores de sinal anteriores. A relação dos filtros FIR e IIR pode ser vista claramente numa equação de diferença de coeficiente constante linear, isto é, estabelecendo uma soma ponderada de saídas igual a uma soma ponderada de entradas. Isto é como a equação que damos anteriormente para o filtro causal FIR, exceto que, além da soma ponderada de insumos, também temos uma soma ponderada de saídas. Se quisermos pensar nisso como um procedimento para gerar amostras de saída, precisamos reorganizar a equação para obter uma expressão para a amostra de saída atual y (n), Adotando a convenção de que a (1) 1 (por exemplo, escalando outros como E bs), podemos nos livrar do termo 1a (1): y (n) b (1) x (n) b (2) x (n-1). B (Nb1) x (n-nb) - a (2) y (n-1) -. - a (Na1) y (n-na) Se todos os a (n) diferentes de a (1) são zero, isso reduz a nosso velho amigo o filtro FIR causal. Este é o caso geral de um filtro (causal) LTI, e é implementado pelo filtro de função MATLAB. Vejamos o caso em que os coeficientes b diferentes de b (1) são zero (em vez do caso FIR, onde a (n) são zero): Neste caso, a amostra de saída corrente y (n) é calculada como um (N-1), y (n-2), etc. Para ter uma idéia do que acontece com esses filtros, vamos começar com o caso em que: Isto é, a amostra de saída atual é a soma da amostra de entrada corrente e metade da amostra de saída anterior. Bem, tome um impulso de entrada através de alguns passos de tempo, um de cada vez. Deve ficar claro neste ponto que podemos facilmente escrever uma expressão para o n-ésimo valor de amostra de saída: é apenas (se MATLAB contado a partir de 0, isso seria simplesmente .5n). Uma vez que o que estamos calculando é a resposta ao impulso do sistema, temos demonstrado por exemplo que a resposta ao impulso pode de fato ter infinitas amostras diferentes de zero. Para implementar esse filtro trivial de primeira ordem no MATLAB, poderíamos usar o filtro. A chamada será assim: eo resultado é: Este negócio é realmente ainda linear Podemos olhar para isto empiricamente: Para uma abordagem mais geral, considere o valor de uma amostra de saída y (n). Por substituição sucessiva poderíamos escrever isto como Isto é exatamente como o nosso velho amigo a forma convolução-soma de um filtro FIR, com a resposta ao impulso fornecida pela expressão .5k. E o comprimento da resposta ao impulso é infinito. Assim, os mesmos argumentos que usamos para mostrar que os filtros FIR eram lineares agora se aplicam aqui. Até agora isso pode parecer um monte de barulho por não muito. O que é toda esta linha de investigação bom para Bem responder esta questão em etapas, começando com um exemplo. Não é uma grande surpresa que possamos calcular uma amostra exponencial por multiplicação recursiva. Vamos olhar para um filtro recursivo que faz algo menos óbvio. Desta vez, torná-lo um filtro de segunda ordem, de modo que a chamada para filtrar será da forma Vamos definir o segundo coeficiente de saída a2 para -2cos (2pi40) eo terceiro coeficiente de saída a3 para 1, e olhar para o impulso resposta. Não é muito útil como um filtro, na verdade, mas gera uma onda senoidal amostrada (de um impulso) com três multiplicações por amostra. Para entender como e por que faz isso, e como filtros recursivos podem ser projetados e analisados ​​em O caso mais geral, precisamos dar um passo atrás e dar uma olhada em algumas outras propriedades de números complexos, no caminho para a compreensão da transformada z. Quais são as desvantagens do filtro média móvel quando usá-lo com dados de séries temporais Heres a MATLAB Exemplo Para ver o efeito de correr meios. Como exemplo, a aplicação do filtro a um sinal com um período de aproximadamente 10.09082 elimina completamente esse sinal. Além disso, uma vez que a magnitude da resposta de frequência é o absoluto da resposta de frequência complexa, a resposta de magnitude é realmente negativa entre 0,3633 e entre 0,4546 ea frequência de Nyquist. Todos os componentes de sinal com frequências dentro destes intervalos são espelhados no eixo t. Como um exemplo, tentamos uma onda senoidal com um período de 7.0000, e. Uma frequência de aproximadamente 0,1429, que está dentro do primeiro intervalo com uma resposta de magnitude negativa: t (1: 100) x10 2sin (2pit7) b10 unidades (1,11) 11 m10 comprimento (b10) y10 filtro (b10,1, x10 ) Y10 y10 (1 (m10-1) 2: extremidade (m10-1) 2,1) y10 (extremidade 1: endm10-1,1) zeros (m10-1,1) traçado (t, x10, t, y10 ) Aqui está a resposta de amplitude do filtro mostrando os zeros e o recorte: h, w w (b10,1,512) f 1w (2pi) magnitude abs (h) parcela (f, magnitude) A onda senoidal com um período de 7 experiências Uma redução de amplitude de Cerca de 80, mas também mudou de sinal como você pode ver a partir da trama. A eliminação de certas frequências ea inversão do sinal têm consequências importantes ao interpretar a causalidade nas ciências da terra. Esses filtros, embora oferecidos como padrão em programas de planilhas para suavização, devem, portanto, ser completamente evitados. Como alternativa, filtros com uma resposta de freqüência específica devem ser usados, como um filtro passa-baixa Butterworth. Recomendar 2 Recomendações Philippe de Peretti middot Universit Paris 1 Panthon-Sorbonne, Paris, França Um bom negócio seria usando séries temporais estruturais, e nele o modelo de tendência linear locar que é basicamente um modelo IMA. Eu sugiro ter um looka em Durbin e Koopman (2001) sobre métodos de filtragem de Kalman. Usar o filtro de Kalman é ótimo em meu ponto de vista. Recomendo 1 Recomendação Oi Bilal Esmael, a função de peso do seu filtro de média móvel deve ser simétrica. Caso contrário, os valores filtrados são deslocados em fase: dependendo da estrutura da função de peso, o desfasamento de fase pode atingir metade do comprimento da função de peso. Por exemplo: um filtro unilateral de Kalman tem uma função de peso assimétrico. Mais adiante, tenha cuidado ao interpretar os valores filtrados nas duas extremidades de uma série de tempo, eles têm um atraso de fase estrutural sempre. Atenciosamente, Michael HeinertEste é um filtro de média móvel simétrica ponderada de 3 pontos ponderada: Assim, minhas suposições sobre como um filtro de média móvel simétrica ponderada em n pontos funcionariam são as seguintes: Meu objetivo final é criar uma média móvel simétrica ponderada Filtro que tem um número modular de pontos sobre o qual pode média. A parte que realmente me recebe é a ponderação em si, e enquanto estou certo de que um aninhado para loop de algum tipo faria o truque, eu não posso ver como eu iria até mesmo começar algo assim. Obrigado por tomar o tempo para inspecionar a minha pergunta, qualquer feedback seria muito apreciada. Selecionar sua documentação de país Este exemplo mostra como usar filtros de média móvel e reamostragem para isolar o efeito de componentes periódicos da hora do dia em leituras de temperatura por hora, bem como remover o ruído de linha indesejável de uma medida de voltagem em malha aberta. O exemplo também mostra como suavizar os níveis de um sinal de relógio enquanto preserva as bordas usando um filtro mediano. O exemplo também mostra como usar um filtro Hampel para remover outliers grandes. Motivação A suavização é como descobrimos padrões importantes em nossos dados enquanto deixamos de lado coisas que não são importantes (ou seja, ruído). Utilizamos a filtragem para realizar este alisamento. O objetivo do alisamento é produzir mudanças lentas no valor de modo que seu mais fácil ver tendências em nossos dados. Às vezes, quando você examinar os dados de entrada, você pode desejar suavizar os dados para ver uma tendência no sinal. No nosso exemplo, temos um conjunto de leituras de temperatura em Celsius tomadas a cada hora no Aeroporto Logan para todo o mês de janeiro de 2011. Note que podemos ver visualmente o efeito que a hora do dia tem sobre as leituras de temperatura. Se você está interessado somente na variação diária da temperatura durante o mês, as flutuações de hora em hora só contribuem o ruído, que pode fazer as variações diárias difíceis de discernir. Para remover o efeito da hora do dia, gostaríamos agora de suavizar nossos dados usando um filtro de média móvel. Um Filtro de Média Móvel Em sua forma mais simples, um filtro de média móvel de comprimento N toma a média de cada N amostras consecutivas da forma de onda. Para aplicar um filtro de média móvel a cada ponto de dados, construímos nossos coeficientes de nosso filtro de modo que cada ponto seja igualmente ponderado e contribua 124 para a média total. Isso nos dá a temperatura média ao longo de cada período de 24 horas. Filter Delay Note que a saída filtrada está atrasada em cerca de doze horas. Isto é devido ao fato de que nosso filtro de média móvel tem um atraso. Qualquer filtro simétrico de comprimento N terá um atraso de (N-1) 2 amostras. Podemos contabilizar esse atraso manualmente. Extraindo Diferenças Médicas Alternativamente, também podemos usar o filtro de média móvel para obter uma melhor estimativa de como a hora do dia afeta a temperatura global. Para fazer isso, primeiro, subtraia os dados suavizados das medições de temperatura por hora. Em seguida, segmente os dados diferenciados em dias e tome a média em todos os 31 dias do mês. Extraindo o Envelope de Pico Às vezes gostaríamos também de ter uma estimativa suavemente variável de como os altos e baixos do nosso sinal de temperatura mudam diariamente. Para fazer isso, podemos usar a função envelope para conectar altos e baixos extremos detectados em um subconjunto do período de 24 horas. Neste exemplo, garantimos que haja pelo menos 16 horas entre cada extrema alta e extrema baixa. Podemos também ter uma noção de como os altos e baixos tendem tomando a média entre os dois extremos. Filtros de Média Móvel Ponderada Outros tipos de filtros de média móvel não pesam igualmente cada amostra. Outro filtro comum segue a expansão binomial de (12,12) n Este tipo de filtro se aproxima de uma curva normal para grandes valores de n. É útil para filtrar o ruído de alta freqüência para pequenas n. Para encontrar os coeficientes para o filtro binomial, convolve 12 12 com ele mesmo e então convolua iterativamente a saída com 12 12 um número prescrito de vezes. Neste exemplo, use cinco iterações totais. Outro filtro um pouco semelhante ao filtro de expansão gaussiano é o filtro de média móvel exponencial. Este tipo de filtro de média móvel ponderada é fácil de construir e não requer um tamanho de janela grande. Você ajusta um filtro de média móvel ponderado exponencialmente por um parâmetro alfa entre zero e um. Um valor maior de alfa terá menos suavização. Amplie as leituras durante um dia. Escolha o seu país

No comments:

Post a Comment