Saturday 29 July 2017

Aplicação De Filtro Móvel Em Média


Filtro médio, ou categoria de filtro médio. Desenvolvimento de software de processamento de sinal e imagem digital (DSP e DIP). Abstrato. O artigo é um guia prático para o filtro médio, ou a compreensão e implementação média do filtro. O artigo contém teoria, código-fonte C, instruções de programação e aplicação de amostra. 1. Introdução ao filtro médio, ou filtro médio do filtro médio. Ou filtro médio é um filtro de janela de classe linear, que suaviza o sinal (imagem). O filtro funciona como de passagem baixa. A idéia básica por trás do filtro é que qualquer elemento do sinal (imagem) tenha uma média em sua vizinhança. Para entender como isso é feito na prática, comecemos com a idéia da janela. 2. Filtrar a janela ou a máscara. Imagine, você deve ler uma carta e o que você vê em texto restrito por furo em um gabarito especial como este. Então, o resultado da leitura é som t. Ok, deixe-nos ler a carta novamente, mas com a ajuda de outro estêncil: agora o resultado da leitura é o som 240. Vamos fazer a terceira tentativa: agora você está lendo a letra t como som 952. O que acontece aqui Para dizer isso Em linguagem matemática, você está fazendo um elemento de operação (leitura) sobre (letra t). E o resultado (som) depende da vizinhança do elemento (letras próximas a t). E esse estêncil, que ajuda a retirar a vizinhança de elementos, é janela Sim, a janela é apenas um estêncil ou padrão, por meio do qual você está selecionando a vizinhança do elemento 0151 um conjunto de elementos em torno do dado 0151 para ajudá-lo a tomar uma decisão. Outro nome para janela de filtro é máscara 0151 máscara é um estêncil, que esconde elementos que não estamos prestando atenção. No nosso exemplo, o elemento em que estamos operando posiciona-se no lado esquerdo da janela, na prática, no entanto, sua posição usual é o centro da janela. Deixe-nos ver alguns exemplos de janelas. Em uma dimensão. FIG. 4. Janela ou máscara de tamanho 5 em 1D. Em duas dimensões. FIG. 5. Janela ou máscara de tamanho 3x3 em 2D. Em três dimensões. Pense em construir. E agora mdash sobre o quarto nesse edifício. A sala é como janela 3D, que corta algum subespaço de todo o espaço do edifício. Você pode encontrar a janela 3D em volume (voxel) processamento de imagem. 3. Compreendendo o filtro médio Agora, vejamos, como ldquota uma média entre os elementos vizinhança. A fórmula é simples 0151 resumir elementos e dividir a soma pelo número de elementos. Por exemplo, vamos calcular uma média para o caso, representada na fig. 7. FIG. 7. Tomando uma média. E isso é tudo. Sim, acabamos de filtrar o sinal 1D por meio do filtro. Realizemos currículo e anote instruções passo a passo para processamento por meio do filtro. Filtro médio ou algoritmo de filtro médio: Coloque uma janela sobre o elemento Pegue uma média de 0151 elementos resumidos e divida a soma pelo número de elementos. Agora, quando temos o algoritmo, é hora de escrever algum código mdash, vamos até a programação. 4. Programação de filtro médio 1D Nesta seção, desenvolvemos 1D filtro médio com janela de tamanho 5. Deixe-nos ter sinal 1D de comprimento N como entrada. O primeiro passo é a janela colocando 0151, fazemos isso alterando o índice do elemento principal: preste atenção, que estamos começando com o terceiro elemento e terminando com os últimos, mas dois. O problema é que não podemos começar com o primeiro elemento, porque neste caso, a parte esquerda da janela do filtro está vazia. Vamos discutir a seguir, como resolver esse problema. O segundo passo é tomar a média, ok: agora, digamos o algoritmo como função: O elemento de tipo pode ser definido como: 5. Bordas de tratamento Para todos os filtros de janela, há algum problema. Isso é um tratamento de borda. Se você colocar a janela sobre o primeiro (último) elemento, a parte esquerda (direita) da janela estará vazia. Para preencher a lacuna, o sinal deve ser estendido. Para o filtro médio, há uma boa idéia para estender o sinal ou a imagem simetricamente, assim: então, antes de passar o sinal para a nossa função de filtro média, o sinal deve ser estendido. Deixe-nos escrever o invólucro, o que faz todos os preparativos. Como você pode ver, nosso código leva em conta alguns problemas práticos. Antes de tudo, verificamos os nossos parâmetros de entrada. O sinal 0151 não deve ser NULL e o comprimento do sinal deve ser positivo: o segundo passo 0151 verificamos o caso N1. Este caso é especial, porque para construir a extensão precisamos de pelo menos dois elementos. Para o sinal de 1 elemento, o resultado é o próprio sinal. Além disso, preste atenção, nosso filtro médio funciona no local, se o resultado do parâmetro de saída for NULL. Agora, alocemos a memória para a extensão do sinal. E verificar a alocação de memória. Guia de cientistas e engenheiros para processamento de sinal digital Por Steven W. Smith, Ph. D. Capítulo 15: Filtros médios móveis Parentes do filtro de média móvel Em um mundo perfeito, os designers de filtros só precisam lidar com informações codificadas no domínio do tempo ou no domínio da freqüência, mas nunca uma mistura dos dois no mesmo sinal. Infelizmente, existem algumas aplicações em que ambos os domínios são simultaneamente importantes. Por exemplo, sinais de televisão se enquadram nesta categoria desagradável. As informações de vídeo são codificadas no domínio do tempo, ou seja, a forma da forma de onda corresponde aos padrões de brilho na imagem. No entanto, durante a transmissão, o sinal de vídeo é tratado de acordo com sua composição de freqüência, como sua largura de banda total, como as ondas de suporte para cor de amplificador de som são adicionadas, restauração de amplificação de eliminação do componente de CC, etc. Como outro exemplo, interferência eletromagnética É melhor entendido no domínio de freqüência, mesmo que a informação de sinais seja codificada no domínio do tempo. Por exemplo, o monitor de temperatura em uma experiência científica pode estar contaminado com 60 hertz das linhas de energia, 30 kHz de uma fonte de alimentação de comutação ou 1320 kHz de uma estação de rádio AM local. Parentes do filtro de média móvel têm melhor desempenho de domínio de freqüência e podem ser úteis nestas aplicações de domínio misto. Os filtros médios móveis de passagem múltipla envolvem passar o sinal de entrada através de um filtro médio móvel duas ou mais vezes. A Figura 15-3a mostra o kernel geral do filtro resultante de uma, duas e quatro passagens. Duas passagens equivalem a usar um kernel de filtro triangular (um kernel de filtro retangular convolvido com ele próprio). Após quatro ou mais passagens, o kernel de filtro equivalente parece um Gaussiano (lembre-se do Teorema do Limite Central). Conforme mostrado em (b), as passagens múltiplas produzem uma resposta de passo em forma de S, em comparação com a linha reta da única passagem. As respostas de freqüência em (c) e (d) são dadas pela Eq. 15-2 multiplicado por si mesmo por cada passagem. Ou seja, cada vez que a convolução do domínio resulta em uma multiplicação dos espectros de freqüência. A Figura 15-4 mostra a resposta de freqüência de dois outros familiares do filtro de média móvel. Quando um Gaussiano puro é usado como um kernel de filtro, a resposta de freqüência também é gaussiana, conforme discutido no Capítulo 11. O gaussiano é importante porque é a resposta de impulso de muitos sistemas naturais e manmade. Por exemplo, um breve pulso de luz entrando em uma longa linha de transmissão de fibra óptica sairá como um pulso gaussiano, devido aos diferentes caminhos captados pelos fótons dentro da fibra. O kernel de filtro gaussiano também é usado extensivamente no processamento de imagens porque possui propriedades únicas que permitem rápidas ondulações bidimensionais (ver Capítulo 24). A segunda resposta de freqüência na Fig. 15-4 corresponde ao uso de uma janela Blackman como kernel de filtro. (A janela do termo não tem significado aqui é simplesmente parte do nome aceito desta curva). A forma exata da janela Blackman é dada no Capítulo 16 (Eq. 16-2, Fig. 16-2) no entanto, parece muito com um gaussiano. Como estes parentes do filtro de média móvel melhor do que o filtro de média móvel em si. Três maneiras: primeiro e mais importante, esses filtros têm melhor atenuação de parada do que o filtro de média móvel. Em segundo lugar, os grãos de filtro se afilam a uma amplitude menor perto das extremidades. Lembre-se de que cada ponto no sinal de saída é uma soma ponderada de um grupo de amostras da entrada. Se o kernel do filtro diminui, as amostras no sinal de entrada que estão mais distantes recebem menos peso do que as próximas. Em terceiro lugar, as respostas passo a passo são curvas suaves, em vez da linha direta abrupta da média móvel. Estes últimos dois geralmente são de benefício limitado, embora você possa encontrar aplicativos onde eles são vantagens genuínas. O filtro de média móvel e seus parentes são quase iguais em reduzir o ruído aleatório enquanto mantém uma resposta passo a passo. A ambigüidade reside na forma como o tempo de subida da resposta passo é medido. Se o tempo de subida for medido de 0 a 100 da etapa, o filtro médio móvel é o melhor que você pode fazer, como mostrado anteriormente. Em comparação, medir o tempo de subida de 10 a 90 torna a janela Blackman melhor do que o filtro de média móvel. O argumento é que isso é apenas dificuldades teóricas consideram esses filtros iguais neste parâmetro. A maior diferença nesses filtros é a velocidade de execução. Usando um algoritmo recursivo (descrito em seguida), o filtro de média móvel funcionará como um raio em seu computador. Na verdade, é o filtro digital mais rápido disponível. Várias passagens da média móvel serão correspondentemente mais lentas, mas ainda muito rápidas. Em comparação, os filtros gaussianos e negros são incrivelmente lentos, porque devem usar convolução. Acho um fator de dez vezes o número de pontos no kernel do filtro (com base na multiplicação sendo cerca de 10 vezes mais lento do que a adição). Por exemplo, espere que um gaussiano de 100 pontos seja 1000 vezes mais lento do que uma média móvel usando recursão. Filtragem média do filtro de movimento O MovingAverageFilter implementa um filtro de média móvel de passagem baixa. O MovingAverageFilter é parte dos módulos de pré-processamento. Um exemplo de sinal (ruído aleatório de onda sinusoidal) filtrada usando um filtro médio móvel. O sinal vermelho é o ruído de sinal original, o sinal verde é o sinal filtrado usando um filtro médio móvel com um tamanho de janela de 5 e o sinal azul é o sinal filtrado usando um filtro médio móvel com um tamanho de janela de 20. MovingAverageFilterExampleImage1. Jpg Vantagens O MovingAverageFilter é bom para remover uma pequena quantidade de ruído de alta freqüência de um sinal N dimensional. Desvantagens A principal desvantagem do MovingAverageFilter é que, para filtrar alto ruído de alta freqüência, o tamanho da janela do filtro precisa ser grande. O problema de ter uma janela de filtro grande é que isso induzirá uma latência grande em qualquer sinal que passe pelo filtro, o que pode não ser vantajoso para aplicações em tempo real. Se você achar que você precisa de uma janela de filtro grande para filtrar o ruído de alta freqüência e a latência induzida por esse tamanho de janela não é adequada para seu aplicativo em tempo real, então você pode querer tentar um Filtro Médico de Movimento Duplo ou Filtro de Passagem Baixa em vez de. Exemplo de código GRT MovingAverageFilter Exemplo Este exemplo demonstra como criar e usar o módulo de pré-processamento GRT MovingAverageFilter. O MovingAverageFilter implementa um filtro de média móvel de passagem baixa. Neste exemplo, criamos uma instância de um MovingAverageFilter e usamos isso para filtrar alguns dados falsos, gerados a partir de um ruído aleatório de onda senoidal. O sinal de teste e os sinais filtrados são salvos em um arquivo (para que você possa traçar os resultados em Matlab, Excel, etc., se necessário). Este exemplo mostra como: - Criar uma nova instância do MovingAverageFilter com um tamanho de janela específico para um sinal de 1 dimensional - Filtrar alguns dados usando o MovingAverageFilter - Salvar as configurações do MovingAverageFilter em um arquivo - Carregar as configurações do MovingAverageFilter de um arquivo incluem quotGRT. hquot Usando namespace GRT int main 40 int argc. Const char argv 91 93 41 123 Crie uma nova instância de um filtro de média móvel com um tamanho de janela de 5 para um sinal de 1 dimensional. MovingAverageFilter filter 40 5. 1 41 Crie e abra um arquivo para salvar o arquivo de dados fstream. Abra 40 quotMovingAverageFilterData. txtquot. Fstream. 41 Gerar alguns dados (ruído das ondas sinusoidais) e filtrá-lo duplo x 0 const UINT M 1000 Random aleatório para 40 UINT i 0 i lt M i 41 123 duplo sinal sin 40 x 41 aleatório. GetRandomNumberUniform 40 - 0.2. 0,2 41 filtro de filtro duplo filtrado. Filtro 40 sinal 41 arquivo ltlt sinal ltlt quot tt ltlt filterValue ltlt endl x TWOPI duplo 40 M 41 10 125 Feche o arquivo de arquivo. Fechar 40 41 Salve as configurações do filtro em um filtro de arquivo. SaveSettingsToFile 40 quotMovingAverageFilterSettings. txtquot 41 Podemos então carregar as configurações mais tarde, se necessário, o filtro. LoadSettingsFromFile 40 quotMovingAverageFilterSettings. txtquot 41 return EXITSUCCESS 125 O MovingAverageFilter também funciona com qualquer sinal N dimensional: Crie uma nova instância do MovingAverageFilter com um tamanho de janela de 10 para um sinal tridimensional MovingAverageFilter filter 40 10. 3 41 O valor que deseja filtrar Vetor lt dados gt duplo 40 3 41 dados 91 0 93 0. Obtenha valor dos dados do sensor 91 1 93 0. Obtenha valor dos dados do sensor 91 2 93 0. Obter valor do sensor Filtrar o vetor de sinal lt filtro gt filterValue duplo. Filtro 40 dados 41 Amplificador de código Recursos

No comments:

Post a Comment