Friday 12 January 2018

Matlab processamento de sinal médio móvel


Eu preciso calcular uma média móvel em uma série de dados, dentro de um loop for. Eu tenho que obter a média móvel em N9 dias. A matriz Im computação é uma série de 365 valores (M), que em si é valores médios de outro conjunto de dados. Eu quero traçar os valores médios dos meus dados com a média móvel em um gráfico. Eu procurei um pouco sobre as médias móveis e o comando conv e encontrei algo que eu tentei implementar no meu código. Então, basicamente, eu calculo o meu significado e traço-o com uma média móvel (errada). Eu escolhi o valor de Wts diretamente do site Mathworks, então isso é incorreto. (Fonte: mathworks. nlhelpeconmoving-average-trend-estimation. html) Meu problema, porém, é que eu não entendo o que é esse wts. Alguém poderia explicar Se isso tem algo a ver com os pesos dos valores: isso é inválido neste caso. Todos os valores são ponderados da mesma forma. E se eu estiver fazendo isso inteiramente errado, eu poderia obter alguma ajuda com isso, meus mais sinceros agradecimentos. Perguntou 23 de setembro 14 às 19:05 Usando conv é uma excelente maneira de implementar uma média móvel. No código que você está usando, é o quanto você está pesando cada valor (como você adivinhou). A soma desse vetor deve ser sempre igual a uma. Se você deseja pesar cada valor de forma uniforme e fazer um filtro móvel N de tamanho, então você gostaria de fazer. Usando o argumento válido em conv resultaria em ter menos valores na Ms do que em M. Use o mesmo se você não se importar com os efeitos de Zero preenchimento. Se você tiver a caixa de ferramentas de processamento de sinal, você pode usar o cconv se quiser testar uma média móvel circular. Algo como Você deve ler a documentação conv e cconv para obter mais informações se você não tiver havido. O que está suavizando e como posso fazê-lo Eu tenho uma matriz em Matlab, que é o espectro de magnitude de um sinal de fala (a magnitude de 128 pontos da FFT ). Como liso isso usando uma média móvel Do que eu entendo, eu deveria ter um tamanho de janela de um certo número de elementos, ter uma média, e isso se torna o novo elemento 1. Em seguida, deslize a janela para a direita por um elemento, leve a média, que se torna o 2º elemento, e assim por diante. É realmente assim que funciona, não tenho certeza de mim mesmo, se eu fizer isso, no meu resultado final terei menos de 128 elementos. Então, como isso funciona e como ele ajuda a alisar os pontos de dados? Ou existe alguma outra maneira que eu possa fazer o alisamento de dados solicitado? 15 de outubro às 6:30 migrou do stackoverflow 15 de outubro às 14:51 Esta questão veio de nossa Site para programadores profissionais e entusiasta. Para um espectro, você provavelmente quer medir em conjunto (na dimensão do tempo) vários espectros em vez de uma média de corrida ao longo do eixo de freqüência de um único ndash de espectro de ndash em 16 de outubro às 1:04 de endolito, ambas são técnicas válidas. A média no domínio da frequência (às vezes chamado de Danielle Periodogram) é igual a janelar no domínio do tempo. A média de periodogramas múltiplos (quotspectraquot) é uma tentativa de imitar a média de conjunto requerida do verdadeiro Periodograma (o chamado Periodograma Welch). Além disso, como uma questão de semântica, eu argumentaria que o quotsmoothingquot é uma filtragem passiva não-causal. Veja a filtragem de Kalman contra o alisamento de Kalman, a filtragem de Wiener e o alisamento de Wiener, etc. Existe uma distinção não trivial e dependente da implementação. Ndash Bryan 12 de dezembro 12 às 19:18 O alisamento pode ser feito de muitas maneiras, mas em termos muito básicos e gerais, significa que você mesmo faz um sinal, misturando seus elementos com seus vizinhos. Você manuseia o sinal um pouco para se livrar do ruído. Por exemplo, uma técnica de suavização muito simples seria, para 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 máximo. Então, se o sinal for bastante constante, o alisamento não o altera muito. Mas se o sinal continha uma mudança súbita e brusca, então a contribuição de seus vizinhos ajudará a esclarecer esse ruído um pouco. 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 aspirado Abaixo: sinal suavizado Exemplos de alguns kernels: Além da boa resposta do Junuxx, gostaria de soltar algumas notas. O alisamento está relacionado à filtragem (infelizmente um artigo vago da Wikipedia) - você deve escolher o mais suave com base em suas propriedades. Um dos meus favoritos é o filtro médio. 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 seu sinal comporta um filtro de Kalman vale a pena olhar. Seu alisamento é na verdade uma estimativa bayesiana de máxima verossimilhança do sinal com base em observações. Respondeu 15 de outubro 12 às 11:07 1 por mencionar o filtro kalman ndash Diego 13 de dezembro 12 às 18:48 Suavização implica usar informações de amostras vizinhas para mudar a relação entre amostras vizinhas. Para vetores finitos, nas extremidades, não há informações vizinhas de um lado. Suas escolhas são: não limpe facilmente as extremidades, aceite um vetor suavizado resultante mais curto, compense dados e suavize com isso (depende da exatidão de qualquer previsão fora das extremidades), ou talvez use diferentes kernels de suavização assimétricos nas extremidades (o que acaba Encurtando o conteúdo da informação no sinal de qualquer maneira). Respondeu 15 de outubro 12 às 19:44 Outros mencionaram como você suaviza, eu gostaria de mencionar por que o suavização funciona. Se você oversample adequadamente o seu sinal, ele irá variar relativamente pouco de uma amostra para a próxima (amostra de pontos de tempo, pixels, etc.), e espera-se que tenha uma aparência geral suave. Em outras palavras, seu sinal contém poucas freqüências altas, ou seja, componentes de sinal que variam a uma taxa semelhante à sua taxa de amostragem. No entanto, as medidas são muitas vezes corrompidas pelo ruído. Em uma primeira aproximação, geralmente consideramos o ruído seguir uma distribuição gaussiana com zero médio e um certo desvio padrão que é simplesmente adicionado em cima do sinal. Para reduzir o ruído em nosso sinal, geralmente fazemos os quatro pressupostos seguintes: o ruído é aleatório, não está correlacionado entre as amostras, tem uma média de zero e o sinal está suficientemente superamplegado. Com estes pressupostos, podemos usar um filtro de média deslizante. Considere, por exemplo, três amostras consecutivas. Uma vez que o sinal está muito superamplegado, o sinal subjacente pode ser considerado como variável de forma linear, o que significa que a média do sinal nas três amostras seria igual ao sinal verdadeiro na amostra do meio. Em contraste, o ruído tem zero médio e não está correlacionado, o que significa que sua média deve tender a zero. Assim, podemos aplicar um filtro de média deslizante de três amostras, onde substituimos cada amostra pela média entre si e seus dois vizinhos adjacentes. Claro, quanto maior, fazemos a janela, quanto mais o ruído será igual a zero, mas menor será a nossa suposição de linearidade do sinal verdadeiro. Assim, temos que fazer um trade-off. Uma maneira de tentar obter o melhor dos dois mundos é usar uma média ponderada, onde damos amostras de amostras mais pequenas, de modo que nós produjamos efeitos médios de ruído em intervalos maiores, ao mesmo tempo em que não ponderamos o sinal verdadeiro demais, onde ele se desvia da 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-se que tem havido muito trabalho nos últimos anos para nos permitir relaxar algumas das quatro premissas, por exemplo, criando esquemas de suavização com janelas de filtro variáveis ​​(difusão anisotrópica) ou esquemas que realmente não usam o Windows (Meios não locais). Respondeu 27 de dezembro às 15:10

No comments:

Post a Comment