Saturday, 5 October 2019

Second order moving average filter


Preciso projetar um filtro de média móvel que tenha uma freqüência de corte de 7.8 Hz. Eu usei filtros de média móvel antes, mas, na medida em que eu estou ciente, o único parâmetro que pode ser alimentado é o número de pontos a serem calculados. Como isso se relaciona com uma freqüência de corte O inverso de 7,8 Hz é de 130 ms, e estou trabalhando com dados que são amostrados a 1000 Hz. Isso implica que eu deveria estar usando um tamanho médio da janela de filtro móvel de 130 amostras, ou há algo mais que eu estou faltando aqui? 18 de julho 13 às 9:52 O filtro de média móvel é o filtro usado no domínio do tempo para remover O som adicionado e também para fins de suavização, mas se você usar o mesmo filtro de média móvel no domínio de freqüência para a separação de freqüência, o desempenho será o pior. Então, nesse caso, use filtros de domínio de freqüência ndash user19373 3 de fevereiro 16 às 5:53 O filtro de média móvel (às vezes conhecido coloquialmente como um filtro de caixa) tem uma resposta de impulso retangular: Ou, afirmado de forma diferente: lembrando que uma resposta de freqüência de sistemas de tempo discreto É igual à transformação de Fourier de tempo discreto de sua resposta de impulso, podemos calcular da seguinte maneira: O que mais interessou para o seu caso é a resposta de magnitude do filtro, H (omega). Usando algumas manipulações simples, podemos obter isso de forma mais fácil de entender: isso pode não parecer mais fácil de entender. No entanto, devido à identidade do Eulers. Lembre-se que: Portanto, podemos escrever o acima como: Como eu disse anteriormente, o que você realmente está preocupado é a magnitude da resposta de freqüência. Então, podemos tomar a magnitude do acima para simplificá-lo ainda mais: Nota: Podemos soltar os termos exponenciais porque eles não afetam a magnitude do resultado e 1 para todos os valores de omega. Uma vez que xy xy para dois números complexos finitos x e y, podemos concluir que a presença dos termos exponenciais não afeta a resposta global de magnitude (em vez disso, eles afetam a resposta de fase de sistemas). A função resultante dentro dos suportes de magnitude é uma forma de um kernel Dirichlet. Às vezes, é chamado de função periódica sinc, porque se parece com a função sinc algo em aparência, mas é periodicamente. De qualquer forma, uma vez que a definição de frequência de corte é pouco especificada (ponto -3 dB -6 dB ponto primeiro sidelobe nulo), você pode usar a equação acima para resolver o que você precisa. Especificamente, você pode fazer o seguinte: Ajuste H (omega) para o valor correspondente à resposta do filtro que você deseja na freqüência de corte. Defina omega igual à frequência de corte. Para mapear uma freqüência de tempo contínuo para o domínio de tempo discreto, lembre-se de que omega 2pi frac, onde fs é a taxa de amostragem. Encontre o valor de N que lhe dá o melhor acordo entre os lados esquerdo e direito da equação. Esse deve ser o comprimento da sua média móvel. Se N é o comprimento da média móvel, então uma frequência de corte aproximada F (válida para N gt 2) na frequência normalizada Fffs é: O inverso disso é Esta fórmula é assintoticamente correta para N grande e tem cerca de 2 erros Para N2, e menos de 0,5 para N4. P. S. Depois de dois anos, aqui, finalmente, qual era a abordagem seguida. O resultado baseou-se na aproximação do espectro de amplitude MA em torno de f0 como uma parábola (série de 2ª ordem) de acordo com MA (Omega) aprox. 1 (frac - frac) Omega2 que pode ser feita mais exata perto do cruzamento zero de MA (Omega) Frac, multiplicando Omega por um coeficiente de obtenção de MA (Omega) aproximadamente 10.907523 (frac-frac) Omega2 A solução de MA (Omega) - frac 0 dá os resultados acima, onde 2pi F Omega. Todo o acima se relaciona com a frequência de corte -3dB, o assunto desta publicação. Às vezes, é interessante obter um perfil de atenuação em stop-band que é comparável ao de um filtro de passagem baixa IIR de 1ª ordem (LPF de um único pólo) com uma freqüência de corte de -3dB dada (como um LPF também é chamado de integrador vazado, Tendo um pólo não exatamente na DC, mas perto disso). De fato, tanto o MA quanto o LPR de 1ª ordem IIR têm uma inclinação de -20dBdecade na banda de parada (um precisa de um N maior do que o usado na figura, N32, para ver isso), mas enquanto o MA tem nulos espectrales no FkN e um Por um lado, o filtro IIR possui apenas um perfil 1f. Se alguém quiser obter um filtro MA com capacidades semelhantes de filtragem de ruído como este filtro IIR e corresponda às freqüências de corte 3dB para serem iguais, ao comparar os dois espectros, ele perceberia que a ondulação da faixa de parada do filtro MA termina 3dB abaixo do do filtro IIR. Para obter a mesma ondulação de banda de parada (ou seja, a mesma atenuação de potência de ruído) como o filtro IIR, as fórmulas podem ser modificadas da seguinte forma: encontrei o script Mathematica onde eu calculava o corte para vários filtros, incluindo o MA. O resultado foi baseado na aproximação do espectro MA em torno de f0 como uma parábola de acordo com o MA (Omega) Sin (OmegaN2) Sin (Omega2) Omega 2piF MA (F) aproximadamente N16F2 (N-N3) pi2. E derivando o cruzamento com 1 quadrado a partir daí. Ndash Massimo 17 de janeiro 16 às 2: 08 É bem sabido que um algoritmo médio móvel feito no domínio do tempo é equivalente a um filtro com resposta de freqüência mathrm (omegatau) onde tau é o tempo médio. (Veja esta resposta relacionada) Esta tem a seguinte propriedade benéfica: você está transmitindo uma série temporal de dados e a média em qualquer ponto (um) é apenas: uma fração frac. Assim, você pode aplicar o algoritmo recursivo acima por uma quantidade arbitrária de tempo (tau) e, quando você pára, o valor que você possui é filtrado por mathrm (omegatau) e tem uma variação correspondentemente reduzida. Agora, a função mathrm é uma passagem baixa de primeira ordem, modulada por um envelope de pecado. Então, na verdade, você realizou uma passagem baixa de primeira ordem, onde a constante característica tau de tempo de passagem baixa é igual ao comprimento do fluxo de dados, e tau não era necessariamente conhecido antes de começar. A minha pergunta é: existe algum procedimento análogo que permite uma passagem baixa (aproximada) de segunda ordem onde a constante de tempo não é conhecida a priori. Uma possibilidade é a média das médias, mas isso requer manter todas as médias na memória. Existe alguma lei que impede esse procedimento com pequenos requisitos de memória solicitados em 26 de março às 17h38. Você pode calcular as médias do mesmo modo que você significa o seu sinal de entrada. Isso pode ser feito pelo mesmo procedimento recursivo sem armazenar todas as médias. A única coisa que você precisa fazer é armazenar dois números em vez de um. Seja xn os dados a serem promediados e seja yn a saída do primeiro procedimento de média: ynalpha y (1-alfa) xn, quad 0ltalpha lt1 Aplicando o mesmo tipo de recursão novamente (apenas com uma constante de tempo possivelmente diferente) resulta em A saída final zn: znbeta z (1-beta) yn, quad 0ltbeta lt1 Você também pode escrever o procedimento total como uma única recursão de segunda ordem (eliminando yn): Então você possui um filtro recursivo de segunda ordem que só precisa armazenar duas saídas passadas Valores. Se você quer um sistema de segunda ordem, este é o armazenamento mínimo possível. Respondeu 27 de março às 13:11 Esta resposta não teria sido possível sem a resposta de Matt L.. Bem como alguma comunicação fora de banda com nibot. Vejamos uma maneira de derivar a fórmula para calcular a média que é dada na pergunta. A partir de um conjunto de números, temos a definição da média até a nona amostra: uma soma de fração n xj frac sn e sn é a soma de todas as amostras até n. Agora, sn pode ser definido de forma recursiva: sns xn, e dado que nansn, temos: anfrac a frac. E temos a fórmula média da questão. Agora queremos basicamente executar esta operação de média novamente nas amostras. Então, nós apenas repetimos a mesma fórmula, mas agora para as médias de um. Mas podemos substituir um em termos de d e d. E, finalmente, após a simplificação. Agora, esse conjunto de números equivale a uma média das médias e requer apenas dois valores armazenados Abaixo, traço um sinal que é um ruído aleatório onde o RMS é 20 vezes o valor médio. Eu também mostro as médias de primeira e segunda ordem. Como se pode ver, a média da segunda ordem leva mais tempo para se aproximar do valor médio verdadeiro, mas tem flutuações menores em relação à média. As flutuações ficam menores à medida que mais e mais amostras são gravadas, por isso tem o benefício adicional de que a escala de tempo do filtro de passagem baixa efetivo está sempre aumentando. Se este fosse um filtro passa-baixa simples com uma freqüência de pólo fixo, então, em algum momento, estariamos jogando fora informações de amostras muito antigas. Este filtro usa informações de todas as amostras, independentemente da idade deles. Finalmente, acho que esta receita pode ser repetida e a média pode ser feita para qualquer ordem. Sim, você pode fazer um filtro passa-baixa de segundo pedido sem usar muita memória. A chave é usar o fato de que a convolução é uma operação linear. Você quer fazer o seguinte: y (t) (x (t) f1 (t)) f2 (t) onde f1 (t) e f2 (t) são seus dois filtros de média móvel da largura a priori desconhecida. Se usarmos a propriedade associativa de linearidade, podemos fazer o seguinte: y (t) (x (t) f1 (t)) f2 (t) x (t) (f1 (t) f2 (t)) Você cria um novo Filtrar por convolver os dois filtros de média e, em seguida, usar esse filtro composto para filtrar seus dados. Respondeu 26 de março às 18:23. Propriedade sóciativa da convolução. Eu suponho. Ndash Matt L. 26 de março às 21:06 MattL. Compreendo que a linearidade implica associatividade. Este não é o caso ndash Jim Clay 26 de março às 21:50 Quando eu li sua resposta, eu tinha certeza de que você realmente queria dizer propriedade quotassociativa da convolução, porque é sempre algum tipo de operação binária que é associativa ou não , E você usou a associatividade da convolução. Eu acho que não podemos falar sobre a propriedade associativa da linearidade39, porque a linearidade 39 não é uma operação binária. Eu não queria ser muito difícil, mas talvez eu fosse. Mas, de qualquer forma, sua pergunta é interessante (quanto à relação entre linearidade e associatividade) e devo admitir que não tenho uma resposta satisfatória. Ndash Matt L. 27 de março 14 em 11: 33Processamento de assinatura Filtros digitais Os filtros digitais são, por essência, sistemas amostrados. Os sinais de entrada e saída são representados por amostras com distância de tempo igual. Os filtros de resposta de Implulgação finita (FIR) são caracterizados por uma resposta de tempo dependendo apenas de um dado número das últimas amostras do sinal de entrada. Em outros termos: uma vez que o sinal de entrada caiu para zero, a saída do filtro fará o mesmo após um determinado número de períodos de amostragem. A saída y (k) é dada por uma combinação linear das últimas amostras de entrada x (k i). Os coeficientes b (i) dão o peso para a combinação. Eles também correspondem aos coeficientes do numerador da função de transferência de filtro do domínio z. A figura a seguir mostra um filtro FIR da ordem N 1: Para os filtros de fase linear, os valores dos coeficientes são simétricos em torno do meio e a linha de atraso pode ser dobrada em volta desse ponto do meio para reduzir o número de multiplicações. A função de transferência de filtros FIR apenas permite um numerador. Isso corresponde a um filtro totalmente zero. Os filtros FIR normalmente requerem pedidos elevados, na magnitude de várias centenas. Assim, a escolha deste tipo de filtros precisará de uma grande quantidade de hardware ou CPU. Apesar disso, uma das razões para escolher uma implementação do filtro FIR é a capacidade de alcançar uma resposta de fase linear, o que pode ser um requisito em alguns casos. No entanto, o designer fiter tem a possibilidade de escolher filtros IIR com uma boa linearidade de fase na banda passante, como os filtros Bessel. Ou para projetar um filtro allpass para corrigir a resposta de fase de um filtro IIR padrão. Filtros médios móveis (MA) Os modelos Editar modelo médio móvel (MA) são modelos de processo na forma: os processos MA são uma representação alternativa dos filtros FIR. Filtros médios Editar Um filtro calculando a média das N últimas amostras de um sinal É a forma mais simples de um filtro FIR, sendo todos os coeficientes iguais. A função de transferência de um filtro médio é dada por: A função de transferência de um filtro médio possui N zeros igualmente espaçados ao longo do eixo de freqüência. No entanto, o zero em DC é mascarado pelo pólo do filtro. Por isso, existe um lóbulo maior, um DC que explica a banda de passagem do filtro. Filtros Integrator-Comb (CIC) em cascata Edit A O filtro integrador-pente em cascata (CIC) é uma técnica especial para a implementação de filtros médios colocados em série. A colocação em série dos filtros médios melhora o primeiro lobo em DC em comparação com todos os outros lóbulos. Um filtro CIC implementa a função de transferência de N filtros médios, cada um calculando a média de amostras R M. Sua função de transferência é assim dada por: os filtros CIC são usados ​​para dizimar o número de amostras de um sinal por um fator de R ou, em outros termos, reescrever um sinal a uma freqüência mais baixa, descartando amostras R 1 de R. O fator M indica quanto do primeiro lobo é usado pelo sinal. O número de estádios de filtro médio, N. Indica quão bem outras bandas de freqüência são amortecidas, à custa de uma função de transferência menos plana em torno de DC. A estrutura CIC permite implementar todo o sistema com apenas agregadores e registros, não usando multiplicadores que sejam gananciosos em termos de hardware. O downsampling por um fator de R permite aumentar a resolução do sinal pelos bits log 2 (R) (R). Filtros canônicos Edit Canonical filters implementam uma função de transferência de filtro com vários elementos de atraso iguais à ordem do filtro, um multiplicador por coeficiente de numerador, um multiplicador por coeficiente de denominador e uma série de elementos de som. De forma semelhante às estruturas canónicas de filtros ativos, esse tipo de circuitos mostrou-se muito sensível aos valores dos elementos: uma pequena alteração em coeficientes teve um grande efeito na função de transferência. Aqui também, o design de filtros ativos mudou de filtros canônicos para outras estruturas, como cadeias de seções de segunda ordem ou filtros de salto. Cadeia de secções de segunda ordem Editar uma seção de segunda ordem. Muitas vezes referido como biquad. Implementa uma função de transferência de segunda ordem. A função de transferência de um filtro pode ser dividida em um produto de funções de transferência associadas a um par de pólos e possivelmente um par de zeros. Se a ordem das funções de transferência for estranha, então uma seção de primeira ordem deve ser adicionada à cadeia. Esta seção está associada ao pólo real e ao zero real se houver um. Forma direta 1 forma direta 2 forma direta 1 transposição de forma direta 2 transposta A forma direta 2 transposta da figura a seguir é especialmente interessante em termos de hardware exigido, bem como a quantificação de sinal e coeficiente. Digital Leapfrog Filters Editar estrutura de filtro Editar filtros de salto digital base na simulação de filtros de salto analógico ativo. O incentivo para esta escolha é herdar das excelentes propriedades de sensibilidade à banda passante do circuito de escada original. O seguinte filtro de 4passões de allpass do allpass do pólo pode ser implementado como um circuito digital, substituindo os integradores analógicos por acumuladores. A substituição dos integradores analógicos por acumuladores corresponde a simplificar a transformada Z em z 1 s T. Quais são os dois primeiros termos da série Taylor de z e x p (s T). Essa aproximação é boa o suficiente para filtros onde a freqüência de amostragem é muito maior do que a largura de banda do sinal. Transferir Função A representação do espaço de estado do filtro precedente pode ser escrita como: A partir deste conjunto de equações, pode-se escrever as matrizes A, B, C, D como: A partir desta representação, as ferramentas de processamento de sinais, como Octave ou Matlab, permitem traçar A resposta de freqüência dos filtros ou para examinar seus zeros e pólos. No filtro de salto digital, os valores relativos dos coeficientes definem a forma da função de transferência (Butterworth. Chebyshev.), Enquanto suas amplitudes definem a freqüência de corte. Dividir todos os coeficientes por um fator de dois desloca a frequência de corte para baixo em uma oitava (também um fator de dois). Um caso especial é o filtro Buterworth de 3ª ordem, que possui constantes de tempo com valores relativos de 1, 12 e 1. Devido a isso, este filtro pode ser implementado em hardware sem qualquer multiplicador, mas usando mudanças em vez disso. Os modelos Autoregressive Filters (AR) Edit Autoregressive Filters (AR) Edit Autoregressive (AR) são modelos de processo na forma: Onde u (n) é a saída do modelo, x (n) é a entrada do modelo e u (n - m) são anteriores Amostras do valor de saída do modelo. Esses filtros são chamados de autorregressivos porque os valores de saída são calculados com base em regressões dos valores de saída anteriores. Os processos AR podem ser representados por um filtro de todos os pólos. Filtros ARMA Edit Autoregressive Moving-Average (ARMA) filtros são combinações de AR e MA filtros. A saída do filtro é dada como uma combinação linear tanto da entrada ponderada como das amostras de saída ponderadas: os processos ARMA podem ser considerados como um filtro IIR digital, com pólos e zeros. Os filtros AR são preferidos em muitos casos porque podem ser analisados ​​usando as equações de Yule-Walker. Os processos MA e ARMA, por outro lado, podem ser analisados ​​por equações não-lineares complicadas, difíceis de estudar e modelar. Se tivermos um processo AR com coeficientes de peso de toque a (um vetor de a (n), a (n - 1).) Uma entrada de x (n). E uma saída de y (n). Podemos usar as equações de Yule-Walker. Dizemos que x 2 é a variância do sinal de entrada. Tratamos o sinal de dados de entrada como um sinal aleatório, mesmo que seja um sinal determinista, porque não sabemos qual será o valor até que o receba. Podemos expressar as equações de Yule-Walker como: Onde R é a matriz de correlação cruzada da saída do processo E r é a matriz de autocorrelação da saída do processo: Variance Edit Podemos mostrar que: Podemos expressar a variância do sinal de entrada como: Ou , Expandindo e substituindo in para r (0). Podemos relacionar a variância de saída do processo com a variância de entrada:

No comments:

Post a Comment