Monday 20 November 2017

Moving average 2d no Brasil


Calculando a média móvel Este VI calcula e exibe a média móvel, usando um número pré-selecionado. Primeiro, o VI inicializa dois registros de deslocamento. O registro de deslocamento superior é inicializado com um elemento e, continuamente, adiciona o valor anterior com o novo valor. Este registro de deslocamento mantém o total das últimas medições x. Depois de dividir os resultados da função de adicionar com o valor pré-selecionado, o VI calcula o valor médio móvel. O registro de deslocamento de baixo contém uma matriz com a dimensão Média. Este registro de deslocamento mantém todos os valores da medição. A função de substituição substitui o novo valor após cada loop. Este VI é muito eficiente e rápido porque usa a função de elemento de substituição dentro do loop while e ele inicializa a matriz antes de entrar no loop. Este VI foi criado no LabVIEW 6.1. Bookmark amp ShareI tem uma matriz onde os valores discretos de onda senoidal são gravados e armazenados. Quero encontrar o máximo e o mínimo da forma de onda. Uma vez que os dados de onda senoidal são tensões gravadas usando um DAQ, haverá algum ruído, então eu quero fazer uma média ponderada. Supondo que self. yArray contém meus valores de onda sinusoidal, aqui está o meu código até agora: Meu problema parece estar no segundo loop, onde, dependendo do tamanho da janela da média (filtro), quero resumir os valores na janela a seguir A média deles. Recebo um erro dizendo: Eu sou um EE com pouca experiência em programação, então qualquer ajuda seria muito apreciada, pedida 29 de maio às 18:09 Paul, obrigado pela recomendação. No entanto, deve-se notar que, embora x: y não produza um erro, ele não obteve o resultado esperado no código OP39s. O OP precisaria usar sua correção, mas com yxfiltersize e retirado do loop ou a soma deve ser removida, com a indexação xy deixada no lugar. Ndash tom10 30 de maio 13 às 17:18 tom10, eu tenho certeza de que você está certo. Minha resposta foi principalmente interrompendo a intuição sobre o problema mais provável, não estou informado sobre o domínio do problema para conhecer a precisão do algoritmo real. É por isso que encaminhei o OP para a sua resposta. Ndash Paul Woolcock 30 de maio 13 às 17:22 As outras respostas descrevem corretamente seu erro, mas esse tipo de problema realmente exige o uso de numpy. Numpy irá correr mais rápido, seja mais eficiente em memória e seja mais expressivo e conveniente para esse tipo de problema. Seu exemplo: se você não quiser usar numpy, também deve notar que há um erro lógico no seu programa que resulta no TypeError. O problema é que na linha você está usando a soma dentro do loop onde você também está calculando a soma. Então, você precisa usar a soma sem o loop, ou percorrer a matriz e adicionar todos os elementos, mas não os dois (e está fazendo ambos, ou seja, aplicar soma ao elemento da matriz indexada, que leva ao erro no primeiro Lugar, colocar). Ou seja, aqui estão duas soluções:

No comments:

Post a Comment