Com vetor de peso, quero dizer o vetor com pesos que você tem que multiplicar as observações na janela que desliza sobre seus dados com isso, se você adicionar esses produtos juntos, retorna o valor da EMA no lado direito da janela. Para uma média móvel ponderada linear, a fórmula para encontrar o vetor de peso é: (1: n) / soma (1: n) (no código R). Esta série de comprimento n soma 1. Para n10 serão 0.01818182 0.03636364 0.05454545 0.07272727 0.09090909 0.10909091 0.12727273 0.14545455 0.16363636 0.18181818 os números 1 a 10/55, com 55 a soma dos números 1 a 10. Como calcular o peso vetor para uma média móvel exponencial (EMA) de comprimento n se n é o comprimento da janela, depois alphalt-2 / (n1) e ilt-1: n so EmaWeightVectorlt - ((alfa (1-alfa) (1-i) ))) Isso está correto Mesmo que o EMA não esteja realmente confinado a uma janela com um começo e um fim, os pesos não devem ser somados a 1, assim como com o LWMA Obrigado Jason, quaisquer indicações de como aproximar o filtro EMA a qualquer Precisão desejada aproximando-a com um filtro FIR longo o suficiente Há um script perl em en. wikipedia. org/wiki/hellip que fez a imagem do vetor de pesos EMA, mas eu não entendo: se eles definirem o número de pesos para 15 por que existem 20 barras vermelhas em vez de 15 ndash MisterH Dez 19 12 em 22: 40O que é suavizar e como posso faço isso eu tenho uma matriz em Matlab que é o espectro de magnitude de um sinal de fala (a magnitude de 128 pontos de FFT). Como faço para suavizar isso usando uma média móvel De que eu entendo, eu deveria ter um tamanho de janela de um determinado número de elementos, pegue a média, e isso se torna o novo primeiro elemento. Em seguida, desloque a janela para a direita por um elemento, pegue a média, que se torna o segundo elemento, e assim por diante. É assim que funciona? Não tenho certeza, porque se fizer isso, no meu resultado final, terei menos de 128 elementos. Então, como isso funciona e como isso ajuda a suavizar os pontos de dados? Ou existe alguma outra maneira que eu possa fazer a suavização dos dados? 15 de outubro às 14:51 Esta pergunta veio da nossa site para programadores profissionais e entusiastas. para um espectro que você provavelmente deseja calcular em média (na dimensão temporal), vários espectros, em vez de uma média ao longo do eixo de frequência de um único espectro, endolito de 16 de outubro de 12 a 1:04 endólito, são técnicas válidas. A média no domínio da frequência (às vezes chamado de Danielle Periodogram) é o mesmo que o uso de janelas no domínio do tempo. A média de vários periodogramas (quotspectraquot) é uma tentativa de imitar a média do conjunto exigida do periodograma verdadeiro (isso é chamado de Welch Periodogram). Além disso, por uma questão de semântica, eu argumentaria que quotsmoothing é uma filtragem de passagem baixa não causal. Veja filtragem de Kalman vs alisamento de Kalman, filtragem de Wiener v suavização de Wiener, etc. Existe uma distinção não trivial e dependente da implementação do mesmo. O alisamento pode ser feito de várias formas, mas em termos muito básicos e gerais significa que você dá um sinal, misturando seus elementos com os vizinhos. Você borrar / desfocar o sinal um pouco para se livrar do ruído. Por exemplo, uma técnica de suavização muito simples seria recalcular cada elemento de sinal f (t) para 0.8 do valor original, mais 0.1 de cada um dos seus vizinhos: Observe como os fatores de multiplicação, ou pesos, somam um. Então, se o sinal é razoavelmente constante, suavizar não muda muito. Mas se o sinal contiver uma mudança brusca, a contribuição de seus vizinhos ajudará a esclarecer um pouco esse ruído. Os pesos que você usa nesta função de recálculo podem ser chamados de kernel. Uma função gaussiana unidimensional ou qualquer outro kernel básico deve fazer no seu caso. Bom exemplo de um tipo particular de suavização: Acima: sinal não suavizado Abaixo: sinal suavizado Exemplos de alguns kernels: Além da boa resposta da Junuxx, gostaria de fazer algumas anotações. Suavização está relacionada à filtragem (infelizmente muito vago artigo da Wikipedia) - você deve escolher o mais suave com base em suas propriedades. Um dos meus favoritos é o filtro mediano. Este é um exemplo de um filtro não linear. Tem algumas propriedades interessantes, preserva bordas e é bastante robusto sob grande ruído. Se você tem um modelo como o seu sinal se comporta um filtro de Kalman vale a pena dar uma olhada. Sua suavização é, na verdade, uma estimativa bayesiana de máxima verossimilhança do sinal baseada em observações. respondido outubro 15 12 at 11:07 1 para mencionar o ndash do filtro de Kalman Diego Dec 13 12 em 18:48 Suavizar implica usar a informação das amostras vizinhas a fim mudar o relacionamento entre amostras vizinhas. Para vetores finitos, nas extremidades, não há informação vizinha de um lado. Suas escolhas são: não suavizar / filtrar as extremidades, aceitar um vetor suavizado resultante mais curto, compor dados e suavizar com isso (depende da precisão / utilidade de qualquer previsão fora das extremidades), ou talvez usando diferentes kernels de suavização assimétrica nas extremidades (que acaba encurtando o conteúdo de informação no sinal de qualquer maneira). respondido outubro 15 12 em 19:44 Outros mencionaram como você faz suavização, gostaria de mencionar por que o alisamento funciona. Se você sobreavaliar corretamente o seu sinal, ele variará relativamente pouco de uma amostra para a próxima (exemplos de pontos no tempo, pixels, etc), e espera-se que tenha uma aparência geral suave. Por outras palavras, o seu sinal contém poucas frequências altas, isto é, componentes de sinal que variam a uma taxa semelhante à sua taxa de amostragem. No entanto, as medições são frequentemente corrompidas pelo ruído. Em uma primeira aproximação, geralmente consideramos que o ruído segue uma distribuição gaussiana com média zero e um certo desvio padrão que é simplesmente adicionado em cima do sinal. Para reduzir o ruído em nosso sinal, comumente fazemos os seguintes quatro pressupostos: o ruído é aleatório, não está correlacionado entre as amostras, tem uma média de zero e o sinal é suficientemente sobreamostrado. Com essas suposições, podemos usar um filtro médio deslizante. Considere, por exemplo, três amostras consecutivas. Como o sinal é altamente oversampled, o sinal subjacente pode ser considerado para mudar linearmente, o que significa que a média do sinal entre as três amostras seria igual ao sinal verdadeiro na amostra do meio. Em contraste, o ruído tem média zero e não é correlacionado, o que significa que sua média deve tender a zero. Assim, podemos aplicar um filtro médio deslizante de três amostras, onde substituímos cada amostra pela média entre si e seus dois vizinhos adjacentes. Naturalmente, quanto maior for a janela, mais o ruído terá uma média de zero, mas menor será a nossa suposição de linearidade do verdadeiro sinal. Assim, temos que fazer um trade-off. Uma forma de tentar obter o melhor dos dois mundos é usar uma média ponderada, onde damos amostras de pesos menores, para que possamos calcular a média de efeitos de ruído de faixas maiores, sem pesar muito o sinal verdadeiro quando se desvia da nossa linearidade. suposição. Como você deve colocar os pesos depende do ruído, do sinal e da eficiência computacional, e, claro, do trade-off entre se livrar do ruído e cortar o sinal. Note que tem havido muito trabalho feito nos últimos anos para nos permitir relaxar algumas das quatro suposições, por exemplo, projetando esquemas de suavização com janelas de filtro variáveis (difusão anisotrópica), ou esquemas que realmente não usam janelas em tudo (meios não-locais). Do dia 27 de dezembro às 15: 10 média móvel ponderada exponencialmente Você pode pensar em sua lista de observação como tópicos que você marcou como favorito. Você pode adicionar tags, autores, tópicos e até resultados de pesquisa à sua lista de observação. Dessa forma, você pode acompanhar facilmente os tópicos em que está interessado. Para ver sua lista de observação, clique no link "Meu Newsreader". Para adicionar itens à sua lista de observação, clique no link "Enviar para ver lista" na parte inferior de qualquer página. Como adicionar um item à minha lista de observação Para adicionar critérios de pesquisa à sua lista de observação, pesquise o termo desejado na caixa de pesquisa. Clique no link "Adicionar esta pesquisa ao meu link da lista de observação" na página de resultados da pesquisa. Você também pode adicionar uma tag à sua lista de observação pesquisando a tag com a cotação da diretiva: tagnamequot em que tagname é o nome da tag que você gostaria de assistir. Para adicionar um autor à sua lista de observação, acesse a página de perfil de autores e clique no link "Adicionar este autor à minha lista de observação" na parte superior da página. Você também pode adicionar um autor à sua lista de observação indo a um tópico para o qual o autor postou e clicando no link "Adicionar este autor à minha lista de exibição". Você será notificado sempre que o autor fizer uma postagem. Para adicionar um tópico à sua lista de observação, vá para a página de discussão e clique no link "Adicionar este tópico ao meu link da lista de observação" na parte superior da página. Sobre newsgroups, newsreaders e MATLAB Central O que são newsgroups Os newsgroups são um fórum mundial aberto a todos. Grupos de notícias são usados para discutir uma enorme variedade de tópicos, fazer anúncios e trocar arquivos. As discussões são segmentadas ou agrupadas de uma forma que permite ler uma mensagem postada e todas as suas respostas em ordem cronológica. Isso facilita acompanhar o encadeamento da conversa e ver o que já foi dito antes de postar sua própria resposta ou fazer uma nova publicação. O conteúdo do newsgroup é distribuído por servidores hospedados por várias organizações na Internet. As mensagens são trocadas e gerenciadas usando protocolos padrão aberto. Nenhuma entidade única classifica os grupos de notícias. Existem milhares de grupos de notícias, cada um abordando um único tópico ou área de interesse. O noticiário central do MATLAB publica e exibe mensagens no grupo de notícias comp. soft-sys. matlab. Como faço para ler ou postar nos grupos de notícias Você pode usar o leitor de notícias integrado no site do MATLAB Central para ler e postar mensagens neste newsgroup. O MATLAB Central é hospedado pelo MathWorks. As mensagens postadas através do Leitor de Notícias Central do MATLAB são vistas por todos que usam os grupos de notícias, independentemente de como eles acessam os grupos de notícias. Existem várias vantagens em usar o MATLAB Central. Uma conta Sua conta do MATLAB Central está vinculada à sua conta do MathWorks para fácil acesso. Use o endereço de e-mail de sua escolha O Leitor de Notícias Central do MATLAB permite que você defina um endereço de e-mail alternativo como seu endereço de postagem, evitando confusão na sua caixa de correio principal e reduzindo o spam. Controle de spam A maioria dos spam de newsgroups é filtrada pelo Leitor de Notícias Central do MATLAB. Marcação As mensagens podem ser marcadas com uma etiqueta relevante por qualquer usuário conectado. As tags podem ser usadas como palavras-chave para encontrar arquivos específicos de interesse ou como uma maneira de categorizar suas postagens marcadas como favoritos. Você pode permitir que outras pessoas vejam suas tags e visualizar ou pesquisar outras tags, bem como as da comunidade em geral. A marcação fornece uma maneira de ver as grandes tendências e as ideias e aplicativos menores e mais obscuros. Listas de observação A configuração de listas de observação permite que você seja notificado sobre atualizações feitas em postagens selecionadas por autor, thread ou qualquer variável de pesquisa. Suas notificações da lista de observação podem ser enviadas por e-mail (resumo diário ou imediato), exibidas em Meu Leitor de Notícias ou enviadas via feed RSS. Outras maneiras de acessar os grupos de notícias Use um leitor de notícias através de sua escola, empregador ou provedor de serviços de Internet Pague pelo acesso a grupos de notícias de um provedor comercial Use o Google Groups Mathforum. org fornece um leitor de notícias com acesso ao grupo de notícias comp. soft sys. matlab servidor. Para instruções típicas, veja: slyck / ng. phppage2 Selecione seu país
No comments:
Post a Comment