Eu preciso projetar um filtro de média móvel que tem uma freqüência de corte de 7,8 Hz. Eu usei filtros de média móvel antes, mas até onde eu estou ciente, o único parâmetro que pode ser alimentado é o número de pontos a serem calculados. Como isso pode se relacionar com uma freqüência de corte O inverso de 7,8 Hz é de 130 ms, e Im trabalhando com dados que são amostrados a 1000 Hz. Isso implica que eu deveria estar usando um tamanho de janela de filtro média móvel de 130 amostras, ou há algo mais que estou faltando aqui pediu Jul 18 13 at 9:52 O filtro de média móvel é o filtro usado no domínio do tempo para remover O ruído adicionado e também para o propósito de suavização, mas se você usar o mesmo filtro de média móvel no domínio da freqüência para a separação de freqüência, o desempenho será pior. Então, nesse caso, use filtros de domínio de freqüência O filtro de média móvel (por vezes conhecido coloquialmente como um filtro de caixa) tem uma resposta de impulso retangular: Ou, declarado de forma diferente: Lembrando que uma resposta de freqüência de sistemas de tempo discreto É igual à transformada de Fourier de tempo discreto da sua resposta de impulso, podemos calculá-la da seguinte forma: O que mais interessou para o seu caso é a resposta de magnitude do filtro, H (ômega). Usando algumas manipulações simples, podemos obter isso em uma forma mais fácil de compreender: Isso pode não parecer mais fácil de entender. No entanto, devido à identidade Eulers. Lembre-se que: Portanto, podemos escrever o acima como: Como eu disse antes, o que você está realmente preocupado com a magnitude da resposta de freqüência. Assim, podemos tomar a magnitude do acima para simplificá-lo ainda mais: Nota: Nós somos capazes de soltar os termos exponenciais, porque eles não afetam a magnitude do resultado e 1 para todos os valores de ômega. Como xy xy para quaisquer dois números finitos x e y, podemos concluir que a presença dos termos exponenciais não afeta a resposta da magnitude global (em vez disso, eles afetam a resposta da fase do sistema). A função resultante dentro dos parênteses de magnitude é uma forma de um kernel de Dirichlet. É chamado às vezes uma função periódica de sinc, porque se assemelha à função do sinc um tanto na aparência, mas é periódica preferivelmente. De qualquer forma, uma vez que a definição de freqüência de corte é um pouco underspecified (-3 dB ponto -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: Definir H (omega) para o valor correspondente à resposta do filtro que você deseja na freqüência de corte. Defina ômega igual à freqüência de corte. Para mapear uma freqüência de tempo contínuo para o domínio de tempo discreto, lembre-se que omega 2pi frac, onde fs é sua taxa de amostragem. Encontre o valor de N que lhe dá o melhor acordo entre os lados esquerdo e direito da equação. Isso deve ser o comprimento de 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 erro Para N2, e menos de 0,5 para N4. P. S. Depois de dois anos, aqui finalmente qual foi a abordagem seguida. O resultado foi baseado na aproximação do espectro de amplitude da MA em torno de f0 como uma parábola (série de 2ª ordem) de acordo com MA (Omega) aproximadamente 1 (frac-fra) Omega2 que pode ser feita mais exata perto do cruzamento zero de MA (Omega) Frac por multiplicação de Omega por um coeficiente de obtenção de MA (Omega) aprox. 10.907523 (frac - frac) Omega2 A solução de MA (Omega) - frac 0 dá os resultados acima, onde 2pi F Omega. Tudo o que acima se refere à freqüência de corte -3dB, o sujeito deste post. Às vezes, porém, é interessante obter um perfil de atenuação em banda de parada que é comparável ao de um filtro passa-baixo IIR de primeira ordem (LPF de um pólo) com uma determinada freqüência de corte -3dB (tal LPF é também chamado integrador com vazamento, Tendo um pólo não exatamente em DC, mas próximo a ele). De facto, tanto a MA como a Ia ordem IIR LPF têm uma inclinação de 20dBdecade na banda de paragem (é necessário um N maior do que o utilizado na figura, N32, para ver isto), mas enquanto MA tem nulos espectricos em FkN e um 1f evelope, o filtro IIR só tem um perfil 1f. Se se deseja obter um filtro MA com capacidades semelhantes de filtragem de ruído como este filtro IIR, e corresponder às frequências de corte 3dB para ser o mesmo, ao comparar os dois espectros, ele perceberá que a ondulação da banda de parada do filtro MA acaba 3dB abaixo 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: Eu encontrei de volta o script Mathematica onde eu calculou 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 MA (Omega) Sin (OmegaN2) Sin (Omega2) Omega 2piF MA (F) aproximadamente N16F2 (N-N3) pi2. E derivando o cruzamento com 1sqrt de lá. Ndash Massimo Jan 17 16 at 2:08 Filtro low-pass Estes são principalmente notas Ele não será completa em qualquer sentido. Ele existe para conter fragmentos de informações úteis. Pseudocódigo A média móvel exponencialmente ponderada (EWMA) é o nome para o que é provavelmente a mais fácil realização digital, tempo-domínio do (lowpass) de primeira ordem em dados discretos. Este filtro suaviza usando uma média local móvel, o que o torna um seguidor lento do sinal de entrada. Intuitivamente, ele responderá lentamente às mudanças rápidas (o conteúdo de alta freqüência) enquanto ainda segue a tendência geral do sinal (o conteúdo de baixa freqüência). É pesado por uma variável (ver x3b1) para poder variar a sua sensibilidade. Em aplicações que amostra em um intervalo regular (por exemplo, som) você pode relacionar x3b1 ao conteúdo de freqüência. Nestes casos, você geralmente quer calcular uma série de saída filtrada para uma série de entrada, fazendo um loop através de uma lista fazendo algo como: ou o equivalente: A última forma pode se sentir mais intuitiva informativa: a mudança na saída filtrada é proporcional à quantidade de Alterado e pesado pela resistência do filtro x3b1. Ambos podem ajudar a considerar como usar a saída filtrada recente dá a inércia do sistema: Um x3b1 menor (maior 1-x3b1 no primeiro) (também faz para RC maior) significa que a saída irá ajustar mais lentamente e deve mostrar menos ruído Freqüência de corte é menor (verifique)). Um maior x3b1 (menor 1-x3b1) (menor RC) significa que a saída irá ajustar mais rápido (têm menos inércia), mas ser mais sensível ao ruído (desde a frequência de corte é maior) Onde você só quer o valor mais recente pode evitar armazenar uma grande matriz, fazendo o seguinte para cada nova amostra (muitas vezes um monte de vezes em uma linha, para se certificar de que ajustar o suficiente). Em casos de amostragem não-tão regular x3b1 está mais relacionado à velocidade de adaptação do que ao conteúdo de freqüência. Seu ainda relevante, mas as notas sobre o conteúdo de freqüência aplicam-se menos estritamente. Você normalmente deseja implementar o arraymemory como flutuadores - mesmo se você retornar ints - para evitar problemas causados por erros de arredondamento. A maior parte do problema: quando alphadifference (ele mesmo uma multiplicação flutuante) é menor que 1, torna-se 0 em um elenco (truncatng) para um inteiro. Por exemplo, quando alfa é 0,01, então as diferenças de sinal menores que 100 farão um ajuste de 0 (via truncamento inteiro), então o filtro nunca se ajustaria ao valor ADC real. EWMA tem a palavra exponencial nela porque cada saída filtrada nova usa eficazmente todos os valores antes dele, e eficazmente com pesos exponencialmente em decomposição. Veja os links da wikipedia para mais discussão. Um exemplo gráfico: Uma captura de tela do arduinoscópio - um gráfico em movimento, com as amostras mais recentes à esquerda. O sinal em bruto na parte superior é de poucos segundos de uma amostragem ADC de um pino flutuante, com um dedo tocando de vez em quando. Os outros são versões lowpassed dele, em pontos fortes crescentes. Algumas coisas a notar sobre isso: o ajuste exponencial lento para respostas passo a passo (muito parecido com um capacitor de carga - rápido intially, então mais lento e mais lento) a supressão de spikesdeviations único grande. Que certamente é possível filtrar muito duro (embora esse julgamento depende muito da velocidade de amostragem e as freqüências de conteúdo de adaptação necessidades seu propósito). Na segunda imagem, a oscilação de gama completa sai a meio caminho não tanto por causa da filtragem, mas também em grande parte porque a maioria das amostras em bruto por aí estão saturadas em qualquer extremidade da gama de ADCs. Em x3b1, x3c4 e na freqüência de corte Este artigo é um stub x2017 provavelmente uma pilha de notas semi-ordenadas, não está bem verificado, portanto pode ter bits incorretos. (Sinta-se livre para ignorar, corrigir ou me dizer) x3b1 é o fator de suavização, teoricamente entre 0,0 e 1,0, na prática geralmente lt0,2 e, muitas vezes, lt0,1 ou menor, porque acima você está apenas fazendo qualquer filtragem. Em DSP é frequentemente baseado em: x394 t. Regularmente escrito dt. O intervalo de tempo entre as amostras (recíproco da taxa de amostragem) uma escolha de constante de tempo x3c4 (tau), também conhecido como RC (este último parece uma referência a um circuito resistor-mais-capacitor, que também faz lowpass. Que o capacitor carrega Se você escolher um RC perto de dt você obterá alphas acima de 0,5, e também uma freqüência de corte que está perto da freqüência nyquist (acontece em 0.666 (verificar)), que filtra tão pouco que torna o filtro Praticamente inútil. Na prática youll muitas vezes escolher um RC que é pelo menos alguns múltiplos de dt, o que significa que x3b1 é da ordem de 0,1 ou menos. Quando a amostragem acontece estritamente regular, como é para o som e muitas outras aplicações DSP , A frequência de corte, aka frequência do joelho, é bem definida, sendo: Por exemplo, quando RC0.002sec, o corte está em At 200Hz, 2000Hz e 20000Hz amostragem, que faz para alphas de 0,7, 0,2 e 0,024, respectivamente (Com a mesma velocidade de amostragem: o alfa inferior é, Para uma passagem baixa de primeira ordem: em frequências mais baixas, a resposta é quase completamente plana, a esta frequência a resposta é -3dB (começou a diminuir em uma frequência mais baixa). Soft bendknee) em freqüências mais altas ele cai em 6dboctave (20dBdecade) As variações de ordem mais alta caem mais rápido e têm um joelho mais duro. Observe que haverá também um deslocamento de fase, que fica atrás da entrada. Depende da frequência que começa antes da queda da amplitude, e será -45 graus na frequência do joelho (verifique). Exemplo de Arduino Esta seção de artigos é um esboço x2017 provavelmente uma pilha de notas meia-classificadas, não é bem verificada, então pode ter bits incorretos. (Sinta-se livre para ignorar, corrigir ou me dizer) Esta é uma versão de uma única peça de memória, para quando você está interessado apenas no (mais recente) valor de saída. Semi-classificadoEu tenho estudado sobre a média exponencial. Há explicações suficientes sobre isso na Internet, mas eles não explicam sobre a constante de tempo. Eu tenho um canal com um sinal de tempo de T segundos com freqüência de amostragem fs. Se eu quiser fazer a média desse sinal de tempo, precisamos usar um método linear ou exponencial. Método de média linear é bastante simples para que não haja problemas para a aplicação. No entanto, se eu tentar aplicar o método de média exponencial, existem alguns problemas. Se o sinal de tempo variar rapidamente, preferimos usar uma constante de tempo rápida de 125 ms. Além disso, o sinal de tempo varia lentamente, usando 1000 ms de tempo lento constante é melhor, mas nesta situação, eu não sei como posso aplicar esta constante de tempo com sinal de tempo. Existe alguma explicação ou qualquer exemplo para fazer média exponencial com constante de tempo Perguntou Aug 29 13 at 16: 54 Eu tenho um valor contínuo para o qual Id gostaria de calcular uma média móvel exponencial. Normalmente, apenas use a fórmula padrão para isto: onde S n é a nova média, alfa é o alfa, Y é a amostra, e S n-1 é a média anterior. Infelizmente, devido a várias questões que eu não tenho um tempo de amostragem consistente. Eu posso saber que posso provar no máximo, digamos, uma vez por milissegundo, mas devido a fatores fora do meu controle, eu não posso ser capaz de tomar uma amostra por vários milissegundos de cada vez. Um caso provável mais comum, no entanto, é que eu simples amostra um pouco cedo ou tarde: em vez de amostragem em 0, 1 e 2 ms. I amostra a 0, 0,9 e 2,1 ms. Eu antecipo que, independentemente dos atrasos, a minha freqüência de amostragem será muito, muito acima do limite de Nyquist, e assim eu não preciso se preocupar com aliasing. Eu acho que eu posso lidar com isso de uma forma mais ou menos razoável, variando o alfa adequadamente, com base no período de tempo desde a última amostra. Parte do meu raciocínio de que isso irá funcionar é que o EMA interpola linearmente entre o ponto de dados anterior eo atual. Se considerarmos o cálculo de um EMA da seguinte lista de amostras a intervalos t: 0,1,2,3,4. Devemos obter o mesmo resultado se usarmos o intervalo 2t, onde os inputs se tornam 0,2,4, right Se o EMA tivesse assumido que, em t 2, o valor tinha sido 2 desde t 0. Que seria o mesmo que o cálculo do intervalo t calculando em 0,2,2,4,4, o que não está fazendo. Ou isso faz sentido em tudo Alguém pode me dizer como variar o alfa adequadamente Por favor, mostre seu trabalho. I. e. Mostre-me a matemática que prova que seu método realmente está fazendo a coisa certa. Perguntou Jun 21 09 at 13:05 Você shouldn39t obter o mesmo EMA para entrada diferente. Pense em EMA como um filtro, amostragem em 2t é equivalente a amostragem para baixo, eo filtro vai dar uma saída diferente. Isto é claro para mim já que 0,2,4 contém componentes de freqüência mais alta do que 0,1,2,3,4. A menos que a questão seja, como faço para alterar o filtro na mosca para torná-lo dar a mesma saída. Talvez eu estou faltando algo ndash freespace Jun 21 09 em 15:52 Mas a entrada não é diferente, it39s apenas amostrado menos frequentemente. 0,2,4 em intervalos 2t é como 0,, 2, 4 em intervalos t, onde o indica que a amostra é ignorada ndash Curt Sampson Jun 21 09 at 23:45 Esta resposta baseada na minha boa compreensão do low-pass Filtros (média móvel exponencial é realmente apenas um filtro singlepass pólo único), mas a minha compreensão obscuros do que você está procurando. Eu acho que o seguinte é o que você quer: Primeiro, você pode simplificar a sua equação um pouco (parece mais complicado, mas seu mais fácil no código). Vou usar Y para saída e X para entrada (em vez de S para saída e Y para entrada, como você fez). Em segundo lugar, o valor de alfa aqui é igual a 1-e-Delatattau, onde Deltat é o tempo entre as amostras, e tau é a constante de tempo do filtro passa-baixa. Digo igual entre aspas porque isso funciona bem quando Deltattau é pequeno em comparação com 1, e alfa 1-e-Delatattau asymp Deltattau. (Mas não é muito pequeno: você terá problemas de quantização e, a menos que você recorra a algumas técnicas exóticas, geralmente precisa de mais N bits de resolução na sua variável de estado S, onde N - log 2 (alfa).) Para valores maiores de Deltattau O efeito de filtragem começa a desaparecer, até chegar ao ponto em que o alfa está próximo de 1 e você basicamente está apenas atribuindo a entrada à saída. Isso deve funcionar corretamente com vários valores de Deltat (a variação de Deltat não é muito importante, desde que o alfa é pequeno, caso contrário, você vai correr em alguns problemas bastante estranho Nyquist aliasing etc), e se você estiver trabalhando em um processador onde a multiplicação É mais barato do que a divisão, ou questões de ponto fixo são importantes, precalculate omega 1tau, e considerar tentar aproximar a fórmula para alfa. Se você realmente quer saber como derivar a fórmula alfa 1-e-Dtattattau, então considere sua fonte de equação diferencial: que, quando X é uma função de etapa unitária, tem a solução Y 1 - e - ttau. Para valores pequenos de Deltat, a derivada pode ser aproximada por DeltaYDeltat, produzindo Y tau DeltaYDeltat X DeltaY (XY) (Deltattau) alfa (XY) ea extrapolação de alfa 1-e - Detatatta vem da tentativa de igualar o comportamento com o Caso de função de etapa unitária. Você poderia por favor elaborar sobre o quottrying para combinar o behaviorquot parte Eu entendo sua solução de tempo contínuo Y 1 - exp (-t47) e sua generalização para uma função escalonada escalonada com magnitude x e condição inicial y (0). Mas não vejo como juntar essas idéias para alcançar seu resultado. Ndash Rhys Ulerich May 4 13 at 22:34 Esta não é uma resposta completa, mas pode ser o início de um. Seu até onde eu com isto em uma hora ou assim de jogar Im que afixa isto como um exemplo de que Im que procuram, e talvez uma inspiração para outros que trabalham no problema. Começo com S 0. Que é a média resultante da média anterior S -1 e da amostra Y 0 tomada em t 0. (T 1 - t 0) é o meu intervalo de amostra e alfa é ajustado para o que é apropriado para esse intervalo de amostra eo período sobre o qual eu desejo a média. Eu considerei o que acontece se eu perder a amostra em t 1 e em vez disso ter que se contentar com a amostra Y 2 tomada em t 2. Bem, podemos começar expandindo a equação para ver o que teria acontecido se tivéssemos tido Y 1: Observo que a série parece estender-se infinitamente desta maneira, porque podemos substituir o S n no lado direito indefinidamente: Ok , Então não é realmente um polinômio (bobo-me), mas se multiplicarmos o termo inicial por um, então vemos um padrão: Hm: é uma série exponencial. Quelle surpresa Imagine que saindo da equação para uma média móvel exponencial Então, de qualquer maneira, eu tenho esse x 0 x 1 x 2 x 3. Coisa que vai, e Im certeza estou cheirando e ou um logaritmo natural chutando por aqui, mas eu não consigo lembrar onde eu estava indo em seguida antes de eu acabar o tempo. Qualquer resposta a esta pergunta, ou qualquer prova de correção de tal resposta, depende muito dos dados que você está medindo. Se suas amostras foram coletadas em t 0 0ms. T 1 0,9ms e t2 2,1ms. Mas sua escolha de alfa é baseada em intervalos de 1 ms e, portanto, você quer um alfa n ajustado localmente. A prova de correção da escolha significaria conhecer os valores da amostra em t1ms e t2ms. Isso leva à pergunta: Você pode interpolar os seus dados de forma sensata para ter suposições sãs do que valores intermédios poderiam ter sido? Ou você pode mesmo interpolar a própria média? Se nenhum destes é possível, então, tanto quanto eu vejo, o lógico A escolha de um valor intermediário Y (t) é a média calculada mais recentemente. I. e. Y (t) asymp S n em que n é maxmial tal que t n ltt. Esta escolha tem uma conseqüência simples: Deixe o alfa sozinho, não importa o que a diferença de tempo era. Se, por outro lado, é possível interpolar seus valores, então isto lhe dará amostras de intervalo constante averagable. Por último, se é mesmo possível interpolar a própria média, isso tornaria a pergunta sem sentido. Resposta Eu acho que posso interpolar meus dados: dado que I39m amostragem em intervalos discretos, I39m já fazê-lo com um padrão EMA Anyway, suponha que eu preciso Um quotproofquot que mostra que funciona bem como um padrão EMA, que também tem irá produzir um resultado incorreto se os valores não estão mudando muito bem entre períodos de amostra. Ndash Curt Sampson Jun 21 09 at 15:21 Mas isso é o que I39m dizendo: Se você considerar a EMA uma interpolação de seus valores, youre feito se você deixar alfa como é (porque inserir a mais recente média como Y não muda a média) . Se você disser que precisa de algo que funciona bem como um padrão EMAquot - o que está errado com o original A menos que você tenha mais informações sobre os dados que você está medindo, quaisquer ajustes locais para alfa será no melhor arbitrário. Ndash balpha 9830 Jun 21 09 at 15:31 Eu deixaria o valor alfa sozinho, e preencher os dados em falta. Uma vez que você não sabe o que acontece durante o tempo quando você não pode amostra, você pode preencher essas amostras com 0s, ou manter o valor anterior estável e usar esses valores para a EMA. Ou alguma interpolação para trás uma vez que você tiver uma nova amostra, preencha os valores ausentes e recompite a EMA. O que estou tentando obter é que você tem uma entrada xn que tem buracos. Não há como contornar o fato de que você está faltando dados. Assim, você pode usar uma retenção de ordem zero ou defini-la como zero ou algum tipo de interpolação entre xn e xnM. Onde M é o número de amostras em falta e n o início do intervalo. Possivelmente mesmo usando valores antes de n. De gastar uma hora ou assim muco sobre um pouco com a matemática para isso, eu acho que simplesmente variando o alfa vai realmente me dar a interpolação adequada entre os dois pontos que você fala, mas em um Muito mais simples. Além disso, acho que a variação do alfa também irá tratar adequadamente amostras tomadas entre os intervalos de amostragem padrão. Em outras palavras, eu estou procurando o que você descreveu, mas tentando usar matemática para descobrir a maneira simples de fazê-lo. Ndash Curt Sampson Jun 21 09 at 14:07 Eu não acho que há uma besta tão quotproper interpolationquot. Você simplesmente não sabe o que aconteceu no tempo que você não está amostragem. Interpolação boa e má implica algum conhecimento do que você perdeu, uma vez que você precisa medir contra isso para julgar se uma interpolação é bom ou ruim. Embora isso seja dito, você pode colocar restrições, ou seja, com aceleração máxima, velocidade, etc. Eu acho que se você sabe como modelar os dados faltantes, então você apenas modelar os dados ausentes, em seguida, aplicar o algoritmo EMA sem alteração, Do que alterar alfa. Just my 2c :) ndash freespace Jun 21 09 em 14:17 Isto é exatamente o que eu estava começando em minha edição para a pergunta 15 minutos atrás: QuotYou simplesmente don39t saber o que aconteceu no tempo que você não está amostragem, mas isso é verdade Mesmo se você amostra em cada intervalo designado. Assim, minha contemplação Nyquist: desde que você saiba que a forma de onda não muda de direção mais do que cada par de amostras, o intervalo de amostra real não deve ser importante e deve ser capaz de variar. A equação de EMA parece-me exatamente calcular como se a forma de onda mudasse linearmente do último valor de amostra ao atual. Ndash Curt Sampson Jun 21 09 em 14:26 Eu don39t acho que é muito verdadeiro. O teorema de Nyquist requer requer mínimo de 2 amostras por período para ser capaz de identificar exclusivamente o sinal. Se você don39t fazer isso, você começa aliasing. Seria o mesmo que amostragem como fs1 por um tempo, então fs2, então de volta a fs1, e você começa aliasing nos dados quando você amostra com fs2 se fs2 está abaixo do limite de Nyquist. Eu também devo confessar que eu não entendo o que você quer dizer com quotwaveform muda linearmente da última amostra para um onequot atual. Poderia explicar Cheers, Steve. Ndash freespace Jun 21 09 at 14:36 Isso é semelhante a um problema aberto na minha lista de tarefas. Eu tenho um esquema funcionou até certo ponto, mas não tem trabalho matemático para apoiar esta sugestão ainda. Update amp resumo: Gostaria de manter o fator de alisamento (alfa) independente do fator de compensação (que eu me refiro como beta aqui). Jasons excelente resposta já aceito aqui funciona muito bem para mim. Se você também pode medir o tempo desde a última amostra foi tomada (em múltiplos arredondados do seu tempo de amostragem constante - 7,8 ms desde a última amostra seria de 8 unidades), que poderia ser usado para aplicar o alisamento várias vezes. Aplicar a fórmula 8 vezes neste caso. Você efetivamente fez um alisamento mais inclinado para o valor atual. Para obter uma melhor suavização, precisamos ajustar o alfa, aplicando a fórmula 8 vezes no caso anterior. O que esta aproximação de suavização perde? Já perdeu 7 amostras no exemplo acima Isto foi aproximado no passo 1 com uma aplainada re-aplicação do valor atual um adicional de 7 vezes Se definimos um fator de aproximação beta que será aplicado junto com alfa (Como alphabeta em vez de apenas alfa), estaremos assumindo que as 7 amostras perdidas estavam mudando suavemente entre os valores da amostra anterior e atual. Eu pensei sobre isso, mas um pouco de mucking sobre com a matemática me levou ao ponto onde eu acredito que, ao invés de aplicar a fórmula de oito vezes com o valor da amostra, eu posso fazer um cálculo De um novo alfa que me permitirá aplicar a fórmula uma vez, e me dar o mesmo resultado. Além disso, isso iria lidar automaticamente com a questão das amostras desviadas de tempos de amostra exata. Ndash Curt Sampson Jun 21 09 at 13:47 A única aplicação está bem. O que eu não tenho certeza sobre ainda é quão boa é a aproximação dos 7 valores em falta. Se o movimento contínuo faz com que o jitter de valor muito ao longo dos 8 milissegundos, as aproximações podem ser completamente fora da realidade. Mas, então, se você estiver amostragem em 1ms (resolução mais alta, excluindo as amostras atrasadas) você já percebeu que o jitter dentro de 1 ms não é relevante. Este raciocínio funciona para você (eu ainda estou tentando me convencer). Ndash nik Jun 21 09 em 14:08 Direito. Esse é o fator beta da minha descrição. Um fator beta seria calculado com base no intervalo de diferença e nas amostras atual e anterior. O alfa novo será (alphabeta) mas será usado somente para essa amostra. Enquanto você parece estar alinhando a alfa na fórmula, eu tento para alfa constante (fator de alisamento) e um beta independentemente calculado (um fator de ajuste) que compensa amostras perdidas agora. Ndash nik 21 jun às 15:23
No comments:
Post a Comment