Tuesday 26 December 2017

Coeficientes do filtro médio móvel


Filtros FIR, filtros IIR e equação de diferença de coeficientes constantes lineares 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 M-1 amostras da entrada de ser zero, poderíamos considerá-los a ser o mesmo que as últimas M-1 amostras. 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 em uma proporção de 10,6251 / 8 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 pi / 2, como nós pedimos. A fase de saída é deslocada por um 1,0594 adicional (com sinal oposto para a freqüência negativa), ou cerca de 1/6 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 pi / 2, 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 Basta olhar para eles: Novamente a relação de amplitude (15.9377 / 12.0000) é 1.3281 - e quanto à fase é novamente deslocado por 1.0594 Se esses exemplos são típicos, podemos prever o efeito do nosso sistema (resposta ao impulso .1.2 .3 .4 .5) em qualquer sinusoide com frequê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 (c1 / c2) 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 do espectro de amplitude da saída para que Da entrada. No caso do espectro de fase, ângulo (c1 / c2) ângulo (c1) - ângulo (c2) para todos os c1, c2 (com a ressalva de que as fases que diferem 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 desempacotar 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 maneira intuitiva de pensar sobre 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 freqüentemente 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 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 das 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 às vezes 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 em 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 corrente y (n), Adotando a convenção de que a (1) 1 (por exemplo, escalando outros como E bs), podemos nos livrar do termo 1 / a (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: Ou seja, a amostra de saída atual é a soma da amostra de entrada atual 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). Como o que estamos calculando é a resposta ao impulso do sistema, demonstrámos 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 nosso velho amigo a forma convolução-soma de um filtro FIR, com a resposta de 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. Este tempo bem torná-lo um filtro de segunda ordem, de modo que a chamada para filtro será da forma Permite definir o segundo coeficiente de saída a2 para -2cos (2pi / 40), eo terceiro coeficiente de saída a3 para 1, e olhar para A resposta ao impulso. Não muito útil como um filtro, na verdade, mas ele gera uma onda senoidal amostrada (de um impulso) com três multiplicações por amostra. Para entender como e por que ele faz isso, e como os 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 z transform. Documentation dfilt. latticearma O mais importante é a posição do rótulo no diagrama, que identifica onde o formato Aplica-se. Como um exemplo, veja o rótulo LatticeProdFormat, que segue sempre um elemento de multiplicação de coeficientes no fluxo do sinal. O rótulo indica que os coeficientes da rede deixam o elemento de multiplicação com o comprimento da palavra e o comprimento da fração associados às operações do produto que incluem coeficientes. A partir da revisão da tabela, você verá que o LatticeProdFormat se refere às propriedades ProductWordLength. LatticeProdFracLength. E ProductMode que definem completamente o formato de coeficiente após operações de multiplicação (ou produto). Propriedades Nesta tabela você verá as propriedades associadas com a implementação de estrutura de média móvel auto-regressiva de objetos dfilt. Observação A tabela lista todas as propriedades que um filtro pode ter. Muitas das propriedades são dinâmicas, significando que elas existem apenas em resposta às configurações de outras propriedades. Você pode não ver todas as propriedades listadas o tempo todo. Para exibir todas as propriedades de um filtro a qualquer momento, use onde hd é um filtro. Para obter mais informações sobre as propriedades deste filtro ou de qualquer objeto dfilt, consulte Propriedades de filtro de ponto fixo. Define o modo usado para responder a condições de estouro em aritmética de ponto fixo. Escolha entre saturar (limitar a saída ao maior valor representável positivo ou negativo) ou envolver (definir valores de transbordamento para o valor representável mais próximo usando aritmética modular). A escolha que você faz afeta somente o aritmético do acumulador e da saída. Coeficiente e aritmética de entrada sempre satura. Finalmente, os produtos nunca sobrecarregam-se e mantêm a precisão total. Para a saída de uma operação de produto, define o comprimento da fração utilizada para interpretar os dados. Essa propriedade torna-se gravável (você pode alterar o valor) quando você definir ProductMode para SpecifyPrecision. Determina como o filtro lida com a saída das operações do produto. Escolha entre a precisão total (FullPrecision) ou se deseja manter o bit mais significativo (KeepMSB) ou o bit menos significativo (KeepLSB) no resultado quando você precisar encurtar as palavras de dados. Para que você seja capaz de definir a precisão (o comprimento de fração) usado pela saída das multiplicações, defina ProductMode como SpecifyPrecision. Especifica o comprimento da palavra a ser usado para os resultados da operação de multiplicação. Essa propriedade torna-se gravável (você pode alterar o valor) quando você definir ProductMode para SpecifyPrecision. Especifica se é necessário redefinir os estados do filtro ea memória antes de cada operação de filtragem. Permite-lhe decidir se o seu filtro mantém estados de corridas de filtragem anteriores. False é a configuração padrão. Define o modo que o filtro usa para quantificar valores numéricos quando os valores estão entre valores representáveis ​​para o formato de dados (comprimento de palavra e fração). Ceil - Rodada em direção ao infinito positivo. Convergente - Redonda para o inteiro representável mais próximo. Arredonda para o inteiro mais próximo incluso armazenado. Este é o menos preconceituoso dos métodos disponíveis neste software. Fix - Rodada em direção a zero. Chão - Rodada em direção ao infinito negativo. Mais próximo - Rodada para a mais próxima. Os laços rodam em direção ao infinito positivo. Round - Redonda para o mais próximo. Os laços rodam em direção ao infinito negativo para números negativos, e em direção ao infinito positivo para números positivos. A escolha que você faz afeta somente o aritmético do acumulador e da saída. Coeficiente e aritmética de entrada sempre redonda. Finalmente, os produtos nunca excedem 8212 mantêm a precisão total. Especifica se o filtro usa coeficientes de ponto fixo assinados ou não assinados. Apenas os coeficientes refletem essa configuração de propriedade. Selecione seu paísO filtro de média móvel simples Esta página descreve o filtro de média móvel simples. Esta página faz parte da seção sobre Filtragem que faz parte de Um Guia para Detecção e Diagnóstico de Falhas .. Visão Geral O filtro de média móvel simples faz a média dos valores recentes da entrada do filtro para um dado número de entradas. Este é o exemplo mais comum da categoria de filtros de 8220moving average 8221 (MA), também chamado filtros de resposta de impulso finito (FIR). Cada entrada recente é multiplicada por um coeficiente para todos os filtros MA lineares, e os coeficientes são todos iguais para esta média móvel simples. A soma dos coeficientes é 1,0, de modo que a saída eventualmente coincide com a entrada quando a entrada não muda. Sua saída apenas depende de entradas recentes, ao contrário do filtro exponencial que também reutiliza sua saída anterior. O único parâmetro é o número de pontos na média - o 8220window size8221. Movendo a resposta de passo média Como qualquer filtro de MA, ele completa uma resposta de passo em um tempo finito, dependendo do tamanho da janela: Este exemplo simples de média móvel acima foi baseado em 9 pontos. Sob hipóteses modestas, está fornecendo a estimativa (suavização) ideal para um valor no ponto médio do intervalo de tempo, neste caso, 4.5 intervalos de amostra no passado. O que são filtros quotFIR Os filtros FIR são um dos dois principais tipos de filtros digitais utilizados em aplicações de processamento de sinal digital (DSP), sendo o outro tipo IIR. 1.2 O que quotFIR significa quotFIR significa quotFinite Impulse Responsequot. Se você colocar um impulso, isto é, uma única amostra de 1 quot seguido de muitas amostras de quot0quot, os zeros sairão depois que a amostra de quot1quot tiver feito seu caminho através da linha de atraso do filtro. 1.3 Por que a resposta ao impulso é quotfinita? No caso comum, a resposta ao impulso é finita porque não há feedback no FIR. A falta de feedback garante que a resposta ao impulso será finita. Portanto, o termo resposta ao impulso quotfinito é quase sinônimo de quotno feedback. No entanto, se feedback é empregado ainda a resposta ao impulso é finito, o filtro ainda é um FIR. Um exemplo é o filtro de média móvel, no qual a N-ésima amostra anterior é subtraída (retrocedida) cada vez que uma nova amostra entra. Este filtro tem uma resposta de impulso finito mesmo que utilize feedback: após N amostras de um impulso, a saída Será sempre zero. 1.4 Como faço para pronunciar quotFIRquot Algumas pessoas dizem que as letras F-I-R outras pessoas pronunciam como se fosse um tipo de árvore. Nós preferimos a árvore. (A diferença é se você fala sobre um filtro F-I-R ou um filtro FIR). 1.5 Qual é a alternativa aos filtros FIR Os filtros DSP também podem ser quotInfidere Response Response (IIR). (Veja dspGurus IIR FAQ.) Os filtros IIR usam feedback, então quando você insere um impulso, a saída, teoricamente, toca indefinidamente. 1.6 Como os filtros FIR se comparam aos filtros IIR Cada um tem vantagens e desvantagens. Em geral, porém, as vantagens dos filtros FIR ultrapassam as desvantagens, por isso são usadas muito mais do que IIRs. 1.6.1 Quais são as vantagens dos filtros FIR (em comparação com os filtros IIR) Em comparação com os filtros IIR, os filtros FIR oferecem as seguintes vantagens: Podem ser facilmente concebidos para serem fase quotlinear (e normalmente são). Simplificando, os filtros de fase linear atrasam o sinal de entrada, mas não distorcem sua fase. Eles são simples de implementar. Na maioria dos microprocessadores DSP, o cálculo FIR pode ser feito através de um loop de uma única instrução. Eles são adequados para aplicações de taxa múltipla. Por multi-taxa, quer dizer quotdecimationquot (reduzindo a taxa de amostragem), quotinterpolationquot (aumentando a taxa de amostragem), ou ambos. Seja decimando ou interpolando, o uso de filtros FIR permite que alguns dos cálculos sejam omitidos, proporcionando assim uma importante eficiência computacional. Em contraste, se forem usados ​​filtros IIR, cada saída deve ser calculada individualmente, mesmo que a saída seja descartada (de modo que o feedback seja incorporado no filtro). Eles têm propriedades numéricas desejáveis. Na prática, todos os filtros DSP devem ser implementados usando aritmética de precisão finita, ou seja, um número limitado de bits. O uso de aritmética de precisão finita em filtros IIR pode causar problemas significativos devido ao uso de feedback, mas os filtros FIR sem retorno podem geralmente ser implementados usando menos bits eo designer tem menos problemas práticos a resolver relacionados à aritmética não ideal. Eles podem ser implementados usando aritmética fracionária. Ao contrário dos filtros IIR, é sempre possível implementar um filtro FIR usando coeficientes com magnitude inferior a 1,0. (O ganho global do filtro FIR pode ser ajustado na sua saída, se desejado.) Esta é uma consideração importante ao usar DSP de ponto fixo, porque torna a implementação muito mais simples. 1.6.2 Quais são as desvantagens dos filtros FIR (em comparação com os filtros IIR) Em comparação com os filtros IIR, os filtros FIR têm, por vezes, a desvantagem de necessitarem de mais memória e / ou cálculo para obter uma determinada característica de resposta do filtro. Além disso, certas respostas não são práticas para implementar com filtros FIR. 1.7 Que termos são usados ​​na descrição de filtros FIR Resposta de Impulso - A resposta de resposta de um filtro FIR é apenas o conjunto de coeficientes FIR. (Se você colocar um quotimplusequot em um filtro FIR que consiste em uma amostra quot1quot seguida por muitas quot0quot amostras, a saída do filtro será o conjunto de coeficientes, como a amostra 1 passa passado cada coeficiente, por sua vez, para formar a saída.) Tap - Um quottapquot FIR é simplesmente um par coeficiente / atraso. O número de torneiras FIR (frequentemente designado como quotNquot) é uma indicação de 1) a quantidade de memória necessária para implementar o filtro, 2) o número de cálculos necessários, e 3) a quantidade de quotfilteringquot o filtro pode fazer com efeito, Multiplicar-acumular (MAC) - Em um contexto de FIR, uma quotMACquot é a operação de multiplicar um coeficiente pela amostra de dados atrasada correspondente e acumular o resultado. FIRs geralmente requerem um MAC por toque. A maioria dos microprocessadores DSP implementa a operação MAC em um único ciclo de instrução. Banda de Transição - A faixa de freqüências entre as bordas passband e stopband. Quanto mais estreita for a banda de transição, mais torneiras serão necessárias para implementar o filtro. (Uma banda de transição quotsmallquot resulta em um filtro quotsharpquot.) Delay Line - O conjunto de elementos de memória que implementam os elementos de retardo quotZ-1quot do cálculo FIR. Buffer circular - Um tampão especial que é quotcircular porque incrementando na extremidade faz com que ele envolva ao redor para o começo, ou porque decrementando desde o início faz com que ele envolva ao redor para o fim. Os buffers circulares são frequentemente fornecidos por microprocessadores DSP para implementar o quotmovementquot das amostras através da linha de retardo FIR sem ter que literalmente mover os dados na memória. Quando uma nova amostra é adicionada ao buffer, ela substitui automaticamente a mais antiga. Variações na Média Móvel O filtro de média móvel é mais ou menos perfeito para suavizar dados na presença de ruído, se as informações úteis em seus dados estiverem completamente No domínio do tempo. Nesse caso, você não se preocupa com o seu desempenho bastante pobre 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 de passo, para maior clareza). Às vezes, no entanto, você tem que 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, isto equivale a uma ponderação triangular dos coeficientes (Figura 2). Uma vez que aplicar o mesmo filtro duas vezes duplica seu efeito, o primeiro lobo lateral da resposta de freqüência é apenas metade do que o da Figura 1. A razão para a forma triangular é que a média móvel é uma convolução com um pulso retangular. Aplicá-lo duas vezes provoca uma convolução deste pulso retangular com si mesmo, resultando em uma janela triangular para o filtro combinado. Note-se que Ive tomado o mesmo comprimento do 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 teria resultado 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) por causa do teorema do limite central. Naturalmente, 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á-lo com uma segunda janela). Adicionalmente, o desvio padrão do Gaussiano tem de ser escolhido. Para esta ilustração (e para a implementação do Designer de filtro), 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 implementada recursivamente, a média móvel é muito eficiente. Enquanto a janela gaussiana deve ser implementada por convolução. Janela Blackman Outra possibilidade é escolher uma das funções de janela clássica que são usadas para filtros de janelas-sinc, e usá-lo como um kernel de filtro (veja a página excelente de Wikipedia em funções de janela). Como exemplo, Ive escolheu a janela Blackman (Figura 4). Isto melhora ainda mais a atenuação da banda de paragem, ao mesmo tempo que mostra uma resposta de domínio de tempo suave sem qualquer toque ou ultrapassagem. Em conclusão, se você precisa suavizar os 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. Filter Design Tool Este artigo é complementado com uma ferramenta Filter Design. Experimente as diferentes funções da janela eo comprimento do filtro e veja o efeito na resposta de freqüência. Tente agora

No comments:

Post a Comment