Monday 20 November 2017

Moving Average Filter In Matlab


Criado em quarta-feira, 08 de outubro de 2008 20:04 Atualizado em Quinta-feira, 14 de Março de 2013 01:29 Escrito por Batuhan Osmanoglu Hits: 41410 Moving Average Em Matlab Muitas vezes eu me encontro na necessidade de calcular a média dos dados que tenho para reduzir o ruído um pouco pouco. Eu escrevi funções de casal para fazer exatamente o que eu quero, mas matlabs construído em função de filtro funciona muito bem também. Aqui Ill escrever sobre 1D e 2D média de dados. 1D filtro pode ser realizado usando a função de filtro. A função de filtro requer pelo menos três parâmetros de entrada: o coeficiente do numerador para o filtro (b), o coeficiente do denominador para o filtro (a) e os dados (X), é claro. Um filtro de média em execução pode ser definido simplesmente por: Para dados 2D, podemos usar a função Matlabs filter2. Para obter mais informações sobre como o filtro funciona, você pode digitar: Aqui está uma implementação rápida e suja de um filtro de média móvel 16 por 16. Primeiro precisamos definir o filtro. Uma vez que tudo o que queremos é a contribuição igual de todos os vizinhos, podemos apenas usar a função uns. Nós dividimos tudo com 256 (1616) desde que nós não queremos mudar o nível geral (amplitude) do sinal. Para aplicar o filtro podemos simplesmente dizer o seguinte Abaixo estão os resultados para a fase de um interferograma SAR. Neste caso Range está no eixo Y e Azimuth é mapeado no eixo X. O filtro tinha 4 pixels de largura na faixa e 16 pixels de largura no Azimute. Filtro médio de movimentação (filtro MA) Carregando. O filtro de média móvel é um filtro simples Low Pass FIR (Finite Impulse Response) comumente usado para alisar uma matriz de datasign amostrada. Ele toma M amostras de entrada de cada vez e pegue a média dessas M-amostras e produz um único ponto de saída. É uma estrutura de LPF (Low Pass Filter) muito simples que vem à mão para cientistas e engenheiros para filtrar componentes indesejados ruidosos dos dados pretendidos. À medida que o comprimento do filtro aumenta (o parâmetro M) a lisura da saída aumenta, enquanto que as transições nítidas nos dados são tornadas cada vez mais sem corte. Isto implica que este filtro tem uma excelente resposta no domínio do tempo mas uma resposta de frequência pobre. O filtro MA executa três funções importantes: 1) Toma M pontos de entrada, calcula a média desses pontos M e produz um único ponto de saída 2) Devido aos cálculos computacionais envolvidos. O filtro introduz uma quantidade definida de atraso 3) O filtro age como um Filtro de Passagem Baixa (com resposta de domínio de freqüência fraca e uma boa resposta de domínio de tempo). Código Matlab: O código matlab seguinte simula a resposta do domínio do tempo de um filtro M-point Moving Average e também traça a resposta de freqüência para vários comprimentos de filtro. Time Domain Response: No primeiro gráfico, temos a entrada que está entrando no filtro de média móvel. A entrada é ruidosa e nosso objetivo é reduzir o ruído. A figura seguinte é a resposta de saída de um filtro de média móvel de 3 pontos. Pode-se deduzir da figura que o filtro de média móvel de 3 pontos não fez muito na filtragem do ruído. Nós aumentamos as torneiras de filtro para 51 pontos e podemos ver que o ruído na saída reduziu muito, o que é descrito na próxima figura. Nós aumentamos as derivações para 101 e 501 e podemos observar que mesmo que o ruído seja quase zero, as transições são drasticamente apagadas (observe a inclinação de cada lado do sinal e compare-as com a transição ideal da parede de tijolo em Nossa entrada). Resposta de Freqüência: A partir da resposta de freqüência pode-se afirmar que o roll-off é muito lento ea atenuação da banda de parada não é boa. Dada esta atenuação de banda de parada, claramente, o filtro de média móvel não pode separar uma banda de freqüências de outra. Como sabemos, um bom desempenho no domínio do tempo resulta em fraco desempenho 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 de passa-baixa excepcionalmente ruim (a ação no domínio da freqüência) Links externos: Livros recomendados: Por convolução O que é média móvel e o que é bom para Como a média móvel é feita usando a convolução Média móvel é uma operação simples usada geralmente para suprimir o ruído de um sinal: nós ajustamos o valor de cada ponto à média dos valores em seu 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 seguinte k kernel: Uma função simples fazendo a média móvel é: Um exemplo de uso é:

No comments:

Post a Comment