Tuesday 9 May 2017

Moving Average Filter Applet


Alongamento Gaussiano Nomes Comuns: Suavização Gaussiana Breve Descrição O operador de suavização gaussiano é um operador de convolução bidimensional que é usado para desfocar imagens e remover detalhes e ruídos. Neste sentido, é semelhante ao filtro médio. Mas usa um kernel diferente que representa a forma de uma corcova Gaussiana (em forma de sino). Este kernel tem algumas propriedades especiais que são detalhadas abaixo. Como funciona A distribuição gaussiana em 1-D tem a forma: onde é o desvio padrão da distribuição. Também assumimos que a distribuição tem uma média de zero (isto é, está centrada na linha x 0). A distribuição é ilustrada na Figura 1. Figura 1 Distribuição Gaussiana 1-D com média 0 e 1 Em 2-D, um gaussiano isotrópico (isto é, circularmente simétrico) tem a forma: Esta distribuição é mostrada na Figura 2. Figura 2 2-D Distribuição gaussiana com média (0,0) e 1 A idéia de suavização gaussiana é usar esta distribuição 2-D como uma função de propagação de pontos, e isso é conseguido por convolução. Como a imagem é armazenada como uma coleção de pixels discretos, precisamos produzir uma aproximação discreta à função gaussiana antes que possamos realizar a convolução. Em teoria, a distribuição gaussiana não é zero em todos os lugares, o que exigiria um núcleo de convolução infinitamente grande, mas na prática é efetivamente zero mais do que cerca de três desvios padrão da média, e assim podemos truncar o kernel neste ponto. A Figura 3 mostra um núcleo de convolução de valor inteiro adequado que se aproxima de um Gaussiano com a de 1,0. Não é óbvio como escolher os valores da máscara para aproximar um Gaussiano. Pode-se usar o valor do Gaussiano no centro de um pixel na máscara, mas isso não é preciso porque o valor do Gaussiano varia de forma não linear ao longo do pixel. Nós integramos o valor do Gaussiano em todo o pixel (somando o gaussiano em incrementos de 0,001). As integrais não são inteiros: nós redimensionamos a matriz de modo que os cantos tivessem o valor 1. Finalmente, o 273 é a soma de todos os valores na máscara. Figura 3 Aproximação discreta à função gaussiana com 1,0 Uma vez que um kernel adequado foi calculado, então o alisamento gaussiano pode ser realizado usando métodos convencionais de convolução. A convolução pode, de facto, ser executada rapidamente, uma vez que a equação para o 2-D isotrópico gaussiano mostrado acima é separável em componentes xey. Assim, a convolução 2-D pode ser realizada pela primeira convolução com um Gaussiano 1-D na direção x, e então convolução com outro Gaussiano 1-D na direção y. (O Gaussiano é de fato o único operador circularmente simétrico que pode ser decomposto dessa forma.) A Figura 4 mostra o kernel do componente 1-D que seria usado para produzir o núcleo completo mostrado na Figura 3 (após a escala por 273 , Arredondando e truncando uma linha de pixels em torno do limite porque eles têm principalmente o valor 0. Isso reduz a matriz 7x7 para o 5x5 mostrado acima.). O componente y é exatamente o mesmo, mas é orientado verticalmente. Figura 4 Um do par de grãos de convolução 1-D usado para calcular o núcleo completo mostrado na Figura 3 mais rapidamente. Uma outra maneira de calcular uma suavização gaussiana com um grande desvio padrão é convolver uma imagem várias vezes com um Gaussiano menor. Embora este seja computacionalmente complexo, ele pode ter aplicabilidade se o processamento é realizado usando um pipeline de hardware. O filtro Gaussiano não só tem utilidade em aplicações de engenharia. Também está atraindo a atenção de biólogos computacionais porque foi atribuído com alguma quantidade de plausibilidade biológica, e. Algumas células nos caminhos visuais do cérebro muitas vezes têm uma resposta aproximadamente gaussiana. Diretrizes de Uso O efeito da suavização gaussiana é desfocar uma imagem, de forma semelhante ao filtro médio. O grau de suavização é determinado pelo desvio padrão do Gaussiano. O Gaussiano produz uma média ponderada de cada vizinhança de pixels, com a média ponderada mais para o valor dos pixels centrais. Isto é em contraste com a média dos filtros média uniformemente ponderada. Devido a isso, um Gaussiano proporciona alisamento mais suave e preserva bordas melhor do que um filtro médio de tamanho semelhante. Uma das principais justificativas para usar o Gaussiano como filtro de suavização é devido à sua resposta de freqüência. A maioria dos filtros de suavização à base de convolução atua como filtros de freqüência de passagem baixa. Isto significa que seu efeito é remover componentes de alta freqüência espacial de uma imagem. A resposta em frequência de um filtro de convolução, isto é, o seu efeito em diferentes frequências espaciais, pode ser observada tomando a transformada de Fourier do filtro. A Figura 5 mostra as respostas de freqüência de um filtro médio 1-D com largura 5 e também de um filtro gaussiano com 3 pixels. O eixo de frequência espacial é marcado em ciclos por pixel e, portanto, nenhum valor acima de 0,5 tem um significado real. Ambos os filtros atenuam freqüências altas mais do que baixas freqüências, mas o filtro médio exibe oscilações em sua resposta de freqüência. O gaussiano, por outro lado, não mostra oscilações. De fato, a forma da curva de resposta em frequência é ela própria (metade a) gaussiana. Assim, escolhendo um filtro gaussiano de tamanho adequado, podemos estar bastante confiantes sobre qual faixa de freqüências espaciais ainda estão presentes na imagem após a filtragem, o que não é o caso do filtro médio. Isso tem consequências para algumas técnicas de detecção de bordas, como mencionado na seção sobre passagens por zero. (O filtro gaussiano também se revela muito semelhante ao filtro de suavização ideal para a detecção de bordas segundo os critérios utilizados para derivar o detector de borda Canny) para ilustrar o efeito de alisamento com filtros Gaussianos maiores e maiores sucessivamente. Mostra o efeito da filtragem com um Gaussiano de 1,0 (e tamanho do kernel 52155). Mostra o efeito da filtragem com um Gaussiano de 2,0 (e tamanho do kernel 92159). Mostra o efeito da filtragem com um Gaussiano de 4,0 (e tamanho do kernel 1521515). Consideramos agora a utilização do filtro gaussiano para a redução do ruído. Por exemplo, considere a imagem que foi corrompida por ruído gaussiano com uma média de zero e 8. Suavizando isto com um rendimento de 52155 Gaussiano (Compare este resultado com o obtido pelos filtros médio e mediano.) O ruído de sal e pimenta é mais desafiador Para um filtro Gaussiano. Aqui vamos suavizar a imagem que foi corrompida por 1 ruído de sal e pimenta (isto é, bits individuais foram invertidos com probabilidade 1). A imagem mostra o resultado da suavização gaussiana (usando a mesma convolução acima). Compare isso com o original Observe que grande parte do ruído ainda existe e que, embora tenha diminuído de magnitude um pouco, ele foi manchado em uma região espacial maior. Aumentar o desvio padrão continua a reduzir o brilho da intensidade do ruído, mas também atenua significativamente o detalhe de alta freqüência (por exemplo, as arestas), como mostrado na Experimentação Interativa Você pode interativamente experimentar com este operador clicando aqui. A partir do ruído gaussiano (média 0, 13), a imagem corrompida calcula tanto o filtro médio como o filtro gaussiano de suavização em várias escalas e compara cada um em termos de remoção de ruído versus perda de detalhe. Em quantos desvios-padrão da média, um Gaussiano cai para 5 de seu valor máximo. Com base nisso, sugerimos um tamanho de grão quadrado adequado para um filtro Gaussiano com s. Estimar a resposta de freqüência para um filtro gaussiano por suavização gaussiana de uma imagem e tomar sua transformada de Fourier antes e depois. Compare isso com a resposta de freqüência de um filtro médio. Como o tempo gasto para suavizar com um filtro gaussiano se compara com o tempo gasto para alisar com um filtro médio para um kernel do mesmo tamanho Observe que em ambos os casos a convolução pode ser acelerada consideravelmente explorando certas características do kernel. Referências E. Davies Visão da Máquina: Teoria, Algoritmos e Práticas. Academic Press, 1990, pp 42 - 44. R. Gonzalez e R. Woods Processamento de Imagem Digital. Addison-Wesley Publishing Company, 1992, pág. 191. R. Haralick e L. Shapiro Computador e Robot Vision. Addison-Wesley Publishing Company, 1992, vol. 1, Cap. 7. B. Visão do robô Horn. MIT Press, 1986, Cap. 8. Visão da máquina de D. Vernon. Prentice-Hall, 1991, pp 59-61, 214. Informações locais Informações específicas sobre este operador podem ser encontradas aqui. Mais informações gerais sobre a instalação local do HIPR estão disponíveis na seção Introdução às Informações Locais. Este applet java é uma demonstração de filtros digitais. Você deve ouvir uma forma de onda de ruído quando o applet é iniciado. Se você receber uma mensagem Precisa de java 2 para som, então você deve obter o plug-in Java. O applet é iniciado com um filtro passa-baixa. Mostra a resposta de freqüência do filtro, o espectro da forma de onda filtrada que está sendo reproduzida, a própria forma de onda ea resposta de impulso do filtro. Clique na curva de resposta para alterar a frequência de corte. O gráfico de resposta de freqüência mostra a resposta do filtro (mostrada verticalmente, em dB, com linhas em intervalos de 10 dB) em relação à freqüência (mostrada horizontalmente, com linhas verticais marcando octaves). O gráfico de espectro mostra o espectro da saída de som. O menu popup Input permite que você selecione uma forma de onda de entrada. As opções são: Noise Sine Wave - selecione a freqüência clicando no espectro. Sawtooth Wave Triangle Onda Onda quadrada Periodic Noise - selecione a freqüência clicando no espectro. Sweep - uma onda senoidal que varre o espectro de freqüência em uma taxa ajustável. Impulsos Vários arquivos mp3 (você pode adicionar o seu próprio, baixando o applet e, em seguida, editando o arquivo index. html) O menu popup Filtro permite que você selecione um filtro. Consulte este site para obter detalhes técnicos sobre os tipos de filtro. As opções são: FIR Low-pass - filtra as altas freqüências (tudo abaixo da freqüência de corte, que é ajustável clicando no gráfico de resposta com o mouse). FIR High-pass - filtra as frequências baixas. FIR Passo de banda - filtra tudo, exceto um intervalo de freqüências. Use os controles deslizantes de Freqüência central e largura de banda passante para ajustar o alcance. FIR Band-stop - filtra uma gama de frequências. Aqui estão alguns parâmetros ajustáveis ​​que afetam a qualidade dos filtros FIR: o número de pontos, que você pode ajustar com o controle deslizante Order (mais pontos é melhor) ea janela, que você seleciona com o popup Window. Um filtro FIR é definido por sua resposta ao impulso, que você pode ver perto da parte inferior da janela. Para exibir a função de janela, selecione FIR Low-pass. Ajuste a frequência de corte perto de zero e observe a resposta ao impulso. Custom FIR - desenhe no gráfico de resposta de freqüência para especificar seu próprio filtro. A resposta real, mostrada em vermelho, é afetada pelo controle deslizante Ordem e janela pop-up. Nenhum filtro Butterworth Low-pass - um filtro plano que filtra as altas freqüências Butterworth High-pass - um filtro plano que filtra as freqüências baixas Butterworth Band-pass - um filtro plano que filtra freqüências fora de uma determinada banda Butterworth Band - Stop - um filtro plano que filtra as frequências dentro de uma certa banda Chebyshev Low-pass - um filtro passa-baixo com uma quantidade ajustável de ondulação na passband Chebyshev High-pass, Band-pass, Band-stop Inv Cheby Low-pass - Chebyshev inverso (também conhecido como Chebyshev tipo II), um filtro passa-baixa com uma banda de passagem plana, mas uma quantidade ajustável de ondulação na banda de interrupção Inv Cheby High-pass, Band-pass, Band-stop Elliptic Low-pass - Também conhecido como Cauer) um filtro passa-baixa com uma quantidade ajustável de ondulação na banda de passagem e stopband. Ajustar a largura da banda de transição alterará a atenuação da banda de interrupção. Elíptico High-pass, Band-pass, Band-stop Comb () - este filtro (usado no ruído) soa como alguém soprando em um tubo. Pente (-) - este é um tubo com uma extremidade coberta. Delay - um filtro de eco (o mesmo que um filtro de pente, mas com atrasos mais longos) Filtro de cordas arrancadas - quando o popup de Entrada é definido como Impulsos, isso soa como uma seqüência de caracteres sendo arrancada. Inverse Comb Reson - ressoa em uma freqüência Reson w Zeros - um filtro reson com zeros adicionado a 0 ea metade da taxa de amostragem Notch - filtra uma faixa estreita de freqüências Moving Average - uma simples FIR tentativa de um filtro passa-baixa. Este filtro (quando usado em ruído) me lembra um Atari 2600. Triangle Allpass - passa todas as freqüências igualmente, mas com atraso de fase diferente. Use o item Resposta de fase no menu Exibir para exibir a resposta de fase. Para frequências baixas, este filtro age como um atraso fracionário (um atraso de menos de uma amostra). Gaussian - a resposta de impulso ea resposta de freqüência são gaussianas em forma de Random Custom IIR - arrastar os pólos e zeros em torno de mudar o filtro. O popup Taxa de amostragem permite que você visualize ou altere a taxa de amostragem. Você não pode mudar a taxa se a entrada é um MP3. O menu Ver permite activar ou desactivar as várias vistas. O item de escala de freqüência de registro que mostra a resposta de freqüência usando um gráfico logarítmico ao invés de linear. O item Mostrar toda a forma de onda irá comprimir os segmentos da forma de onda horizontalmente para que cada um encaixe na janela desta forma, toda a forma de onda será exibida, mas geralmente a janela não será ampla o suficiente para mostrar cada amostra separadamente. O item Ferris Plot exibirá um gráfico Ferris da função de transferência. Ao exibir a resposta de freqüência, o applet mostra apenas a parte do espectro de 0 para a freqüência de Nyquist (pi). O resto da resposta até 2pi é apenas uma imagem espelhada deste e, em seguida, a resposta repete a cada 2pi. Por exemplo, aqui está uma resposta de freqüência como exibido no applet (até pi): Aqui está a resposta até 4pi: Livros bons sobre filtros digitais: Steiglitz (excelente introdução ao DSP tem informações sobre filtros de pente, resons, cordas arrancadas ) Smith (downloadable) Winder MitraSignal Processing O Processamento de Sinal é a arte ea ciência de modificar os dados de séries de tempo adquiridos para fins de análise ou aprimoramento. Exemplos incluem análise espectral (usando o Fast Fourier ou outras transformações) e aprimorando dados adquiridos usando a filtragem digital. Igor é ideal para o processamento de sinais devido ao seu forte suporte para dados de séries temporais longas (ou quotwaveformquot). E porque os seus comandos de processamento de sinal incorporados podem ser facilmente utilizados através de diálogos simples. Além disso, a linguagem de programação Igoracutes facilita a implementação de qualquer tipo de algoritmo de processamento de sinal personalizado, muito auxiliado pelo poder de Igoracutes Fourier (e outras) Transformações. Igor usa o algoritmo Fast Fourier Transform (FFT) para calcular uma Transformação de Fourier Discreta (DFT). A FFT pode ser usada para caracterizar simplesmente a magnitude e fase de um sinal, ou pode ser usada em combinação com outras operações para executar cálculos mais envolvidos, tais como convolução ou correlação. A computação FFT pressupõe que os dados de entrada se repetem uma e outra vez. Isto é importante quando os valores iniciais e finais de seus dados não são os mesmos: a descontinuidade causa aberrações no espectro computado pela FFT. QuotWindowingquot suaviza as extremidades dos dados para eliminar essas aberrações. A resposta é na forma de uma distribuição de valores de potência em função da freqüência, em que quotpowerquot é considerado como a média dos sinaisup2. No domínio da frequência, este é o quadrado da magnitude de FFTacutes. Os espectros de energia podem ser calculados para todo o sinal de uma vez (um quotperiodograma) ou periodogramas de segmentos do sinal de tempo podem ser calculados em média em conjunto para formar a densidade espectral de potência quot. A Transformada de Hilbert calcula um sinal no domínio do tempo que está desfasado em 90 graus com o sinal de entrada. As aplica�es unidimensionais incluem computar o envelope de um sinal modulado e a medi�o da taxa de decaimento de uma sinus�de exponencialmente em decomposi�o frequentemente encontrada em sistemas lineares e n� lineares amortecidos. Quando você calcula o espectro de Fourier (ou Spectra de Potência) de um sinal você descarta toda a informação de fase contida na transformada de Fourier. Você pode descobrir quais freqüências um sinal contém, mas você não sabe quando essas freqüências aparecem no sinal. Por exemplo, considere o sinal: A representação espectral de f (t) permanece essencialmente inalterada se trocarmos as duas frequências f 1 e f 2. Claramente o espectro de Fourier não é a melhor ferramenta de análise para sinais cujos espectros flutuam no tempo. Uma solução para esse problema é a chamada Transformada de Fourier de Curto Prazo (ou quotonograma) na qual você pode calcular o espectro de Fourier usando uma janela temporal deslizante. Ajustando a largura da janela, você pode determinar a resolução temporal dos espectros resultantes. Você pode usar a convolução para calcular a resposta de um sistema linear a um sinal de entrada. O sistema linear é definido pela sua resposta ao impulso. A convolução do sinal de entrada ea resposta ao impulso é a resposta do sinal de saída. A filtragem digital é conseguida através da definição de um sistema linear que estimula a resposta ao impulso que quando convolvido com o sinal obtém o resultado desejado (filtro passa-baixa ou passa-alta). O algoritmo de correlação é muito semelhante matematicamente à convolução, mas é usado para propósitos diferentes. É mais freqüentemente usado para identificar o atraso de tempo no qual dois sinais se aproximam ou são semelhantes. Suavização remove variações de curto prazo, ou quotnoisequot para revelar a forma subjacente importante dos dados. A forma mais simples de suavização é a média quotmoving que simplesmente substitui cada valor de dados pela média de valores vizinhos. (Outros termos para este tipo de suavização são quotsliding averagequot, quotbox smoothingquot, ou quotboxcar smoothingquot.) Igoracutes Smooth operação executa caixa suavização, quotbinomialquot (Gaussian) alisamento, e Savitzky-Golay (polinomial) suavização. Os diferentes algoritmos de suavização calculam médias ponderadas que multiplicam valores vizinhos por pesos diferentes ou quotcoeficientes para calcular o valor suavizado. Os filtros digitais são uma ferramenta natural quando os dados já estão digitalizados. Os motivos para aplicar a filtragem digital aos dados incluem: Eliminação de componentes de sinal indesejados (quotnoisequot) Melhoria dos componentes de sinal desejados Detecção da presença de certos sinais Simulação de sistemas lineares (computa o sinal de saída dado o sinal de entrada eo sistema acutes função de transferência) Vêm em dois sabores: Resposta de Impulso Finito (FIR) e Filtros de Resposta de Impulso Infinito (IIR). Igor implementa a filtragem digital FIR principalmente através da convolução do domínio do tempo usando os comandos Smooth ou SmoothCustom. (Apesar do nome itacutes, SmoothCustom convolve os dados com coeficientes de filtro fornecidos pelo usuário para implementar qualquer tipo de filtro FIR, low-pass, high-pass, band-pass, etc.) O design dos coeficientes de filtro FIR usados ​​com SmoothCustom é mais Facilmente realizado usando o Igor Filter Design Laboratory (um produto separado que também requer Igor Pro). Os filtros digitais IIR são projetados e aplicados a dados usando IFDL. Detecção de nível é o processo de localizar a coordenada X na qual seus dados passam ou atingem um determinado valor de Y. Isso às vezes é chamado de interpolação quotinverse. Dito de outra forma, a detecção de nível responde a pergunta: quotgiven um nível Y, qual é o valor X correspondente Igor fornece dois tipos de respostas a essa pergunta. Uma resposta supõe que seus dados Y são uma lista de valores Y exclusivos que aumentam ou diminuem monotonicamente. A outra resposta pressupõe que seus dados de Y variam irregularmente, como faria com dados adquiridos. Neste caso, pode haver vários valores X que cruzam o nível Y. Exemplos importantes disso são estatísticas de ponta e pulso. Uma questão relacionada, mas diferente, é dada por uma função y f (x), encontre x onde y é zero (ou algum outro valor) quot. Esta questão é respondida pela operação FindRoots.

No comments:

Post a Comment