Monday, 5 February 2018

Movendo média 2d


Eu tenho uma matriz onde valores de onda senoidal discreta são gravados e armazenados Eu quero encontrar o máximo e min da forma de onda Como os dados de onda senoidal é gravado tensões usando um DAQ, haverá algum ruído, então eu quero fazer uma média ponderada Assumindo contém Meus valores sinewave, aqui está o meu código até agora. Meu problema parece estar no segundo para loop, onde, dependendo da minha média de tamanho de janela filterize, eu quero resumir os valores na janela para tomar a média deles Eu recebo um Erro dizendo. Eu sou um EE com muito pouca experiência na programação, então qualquer ajuda seria muito apreciada. asked May 29 13 at 18 09. Paul, obrigado pela recomendação Deve-se notar, porém, que embora xy doesn t produzir um erro , Ele não vai dar o resultado esperado no código OP s Ou OP precisaria usar sua correção, mas com yx filtersize e retirado do loop ou a soma deve ser removido, com a indexação xy esquerda no lugar tom10 30 de maio 13 Às 17 18. tom10, tenho certeza que você está certo Minha resposta Er foi principalmente ir fora alguma intuição sobre o que o problema mais provável era, eu não sou qualificado sobre o domínio do problema para saber a precisão do algoritmo real Que é por isso que eu me referi ao OP a sua resposta Paul Woolcock 30 de maio 13 em 17 22. As outras respostas corretamente descrevem seu erro, mas este tipo de problema realmente chama para usar Numpy numpy será executado mais rápido, ser mais eficiente de memória, e é mais expressivo e conveniente para este tipo de problema Aqui está um exemplo. Se você não quiser Para usar numpy, também deve ser observado que há um erro lógico em seu programa que resulta no TypeError O problema é que na linha. Você está usando soma dentro do loop onde o seu também calcular a soma Ou então você precisa usar a soma Sem o laço ou loop através da matriz e adicionar todos os elementos, mas não tanto e está fazendo ambos, ou seja, aplicando soma ao elemento de matriz indexada, que leva ao erro no primeiro lugar Que é, aqui estão duas soluções. Criado em quarta-feira, 0 8 de Outubro de 2008 20 04 Atualizado em Quinta-feira, 14 de Março de 2017 01 29 Escrito por Batuhan Osmanoglu Acessos 41542.Moving Average Em Matlab. Often Eu me encontro na necessidade de calcular a média dos dados que tenho para reduzir o ruído um pouco Eu escrevi funções par Para fazer exatamente o que eu quero, mas matlab s construído em função de filtro funciona muito bem também Aqui vou escrever sobre 1D e 2D média de dados. Filtro de D pode ser realizado usando a função de filtro A função de filtro requer pelo menos três parâmetros de entrada a O coeficiente do numerador para o filtro b, o coeficiente do denominador para o filtro a, e os dados X naturalmente. Um filtro da média running pode ser definido simplesmente por. Para dados 2D nós podemos usar a função filter2 de Matlab s Para mais informação em como o filtro Funciona, você pode digitar. Aqui está uma implementação rápida e suja de um filtro 16 por 16 média móvel Primeiro precisamos definir o filtro Uma vez que todos nós queremos é a contribuição igual de todos os vizinhos, podemos apenas usar a função ones We dividir everyth Com 256 16 16, uma vez que não queremos alterar a amplitude de nível geral do sinal. Para aplicar o filtro, podemos simplesmente dizer o seguinte. São os resultados da fase de um interferograma SAR. Neste caso, Range está no eixo Y e Azimute é mapeado no eixo X O filtro era 4 pixels de largura em Gama e 16 pixels de largura em Azimute. Calculando 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 registradores de deslocamento O registrador é inicializado com um elemento e, em seguida, adiciona continuamente o valor anterior com o novo valor Este registrador de desvio mantém o total das últimas medidas de x Após dividir os resultados da função de adição com o valor pré-selecionado, Shift contém uma matriz com a dimensão Average Este registro de deslocamento mantém todos os valores da medida A função de substituição substitui o novo valor após cada loop. Este VI é muito eficiente um D rápido porque ele usa a função replace element dentro do loop while e inicializa a matriz antes de entrar no loop. Este VI foi criado no LabVIEW 6 1.Bookmark Share.

No comments:

Post a Comment