Friday 1 September 2017

Labview Moving Average Vi


Filter Express VI Especifica os seguintes tipos de filtros para usar: lowpass, highpass, bandpass, striptop ou suavização. O padrão é Lowpass. Contém as seguintes opções: Freqüência de corte (Hz) 8212 Especifica a freqüência de corte do filtro. Esta opção está disponível somente quando você seleciona Lowpass ou Highpass no menu suspenso Tipo de filtragem. O padrão é 100. Baixa freqüência de corte (Hz) 8212 Especifica a baixa freqüência de corte do filtro. A baixa freqüência de corte (Hz) deve ser inferior à alta freqüência de corte (Hz) e observar o critério de Nyquist. O padrão é 100. Esta opção está disponível somente quando você seleciona Bandpass ou Bandstop no menu suspenso Tipo de filtragem. Alta freqüência de corte (Hz) 8212 Especifica a alta freqüência de corte do filtro. A alta freqüência de corte (Hz) deve ser maior que a baixa freqüência de corte (Hz) e observar o critério de Nyquist. O padrão é 400. Esta opção está disponível somente quando você seleciona Bandpass ou Bandstop no menu suspenso Tipo de filtragem. Filtro de resposta de impulso finito (FIR) 8212Creado um filtro FIR. Que depende apenas das entradas atuais e passadas. Como o filtro não depende das saídas passadas, a resposta ao impulso decai para zero em uma quantidade limitada de tempo. Como os filtros FIR retornam uma resposta de fase linear, use filtros FIR para aplicativos que requerem respostas de fase linear. Torneiras 8212 Especifica o número total de coeficientes de FIR, que deve ser maior que zero. O padrão é 29. Esta opção está disponível somente quando você seleciona a opção de filtro de resposta de impulso finito (FIR). Aumentar o valor de Taps faz com que a transição entre o passband e o stopband se torne mais íngreme. No entanto, à medida que o valor de Taps aumenta, a velocidade de processamento torna-se mais lenta. Filtro infinito de resposta ao impulso (IIR) 8212Creado um filtro IIR que é um filtro digital com respostas de impulso que, teoricamente, podem ter duração ou duração infinitas. Topologia 8212Determina o tipo de projeto do filtro. Você pode criar um projeto de filtro Butterworth, Chebyshev, Inverse Chebyshev, Elliptic ou Bessel. Esta opção está disponível somente quando você seleciona a opção de filtro de resposta de impulso infinito (IIR). O padrão é Butterworth. Ordem 8212Order do filtro IIR, que deve ser maior que zero. Esta opção está disponível somente quando você seleciona a opção de filtro de resposta de impulso infinito (IIR). O padrão é 3. Aumentar o valor da Ordem faz com que a transição entre a banda passante e a faixa de parada se torne mais íngreme. No entanto, à medida que o valor da Ordem aumenta, a velocidade de processamento torna-se mais lenta e o número de pontos distorcidos no início do sinal aumenta. Métodos de migração direta de média 8212 para a frente (FIR). Esta opção está disponível somente quando você seleciona Suavização no menu suspenso Tipo de filtragem. Rectangular 8212 Especifica que todas as amostras na janela da média móvel são ponderadas igualmente no cálculo de cada amostra de saída suavizada. Esta opção está disponível somente quando você seleciona Suavização no menu suspenso Tipo de filtragem e na opção Mover média. Triangular 8212 Especifica que a janela de ponderação em movimento aplicada às amostras é triangular com o pico centrado no meio da janela, descendo de forma simétrica em ambos os lados da amostra central. Esta opção está disponível somente quando você seleciona Suavização no menu suspenso Tipo de filtragem e na opção Mover média. Meia largura da média móvel 8212 Especifica a metade da largura da janela da média móvel em amostras. O padrão é 1. Para uma meia largura da média móvel de M, a largura total da janela de média móvel é N 1 amostras de 2M. Portanto, a largura total N é sempre um número ímpar de amostras. Esta opção está disponível somente quando você seleciona Suavização no menu suspenso Tipo de filtragem e na opção Mover média. Exponencial 8212Istrói os coeficientes IIR de primeiro orden. Esta opção está disponível somente quando você seleciona Suavização no menu suspenso Tipo de filtragem. Constante de tempo da média exponencial 8212 Especifica a constante de tempo do filtro de ponderação exponencial em segundos. O padrão é 0.001. Esta opção está disponível somente quando você seleciona Suavização no menu suspenso Tipo de filtragem e na opção Exponencial. Exibe o sinal de entrada. Se você transmitir dados para o Express VI e executá-lo, o sinal de entrada exibe dados reais. Se você fechar e reabrir o Express VI, o Sinal de Entrada exibe dados de amostra até que você execute o Express VI novamente. Exibe uma pré-visualização da medição. O gráfico de Exibição de resultados indica o valor da medida selecionada com uma linha pontilhada. Se você transmitir dados para o Express VI e executar o VI, a Visualização de resultados exibe dados reais. Se você fechar e reabrir o Express VI, a Visualização do resultado exibe os dados da amostra até que você execute novamente o VI. Se os valores da frequência de corte forem inválidos, a Visualização do resultado não exibirá dados válidos. Contém as seguintes opções: Nota: Alterar as opções na seção Modo de Visualização não afeta o comportamento do VI Filtro Express. Use as opções do modo de exibição para visualizar o que o filtro faz para o sinal. O LabVIEW não guarda essas opções quando você fecha a caixa de diálogo de configuração. Sinais 8212 Exibe a resposta do filtro como sinais reais. Mostrar como espectro 8212 Especifica se deseja exibir os sinais reais da resposta do filtro como um espectro de freqüência ou deixar a exibição como uma exibição baseada no tempo. A exibição de freqüência é útil para ver como o filtro afeta os vários componentes de freqüência do sinal. O padrão é exibir a resposta do filtro como uma exibição baseada no tempo. Esta opção está disponível somente quando você seleciona a opção Sinais. Função de transferência 8212 Exibe a resposta do filtro como uma função de transferência. Contém as seguintes opções: Magnitude em dB 8212Presenta a resposta de magnitude do filtro em decibéis. Frequência no log 8212Presenta a resposta de freqüência do filtro em uma escala logarítmica. Exibe a resposta de magnitude do filtro. Esta exibição está disponível somente quando você configura o modo Exibir para a função Transferir. Exibe a resposta de fase do filtro. Esta exibição está disponível somente quando você configura o Modo de Visualização para a função de Transferência. Média de Movimento de Cálculo 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 x medições. 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 inferior contém uma matriz com a dimensão Média. 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 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 ShareSimple Media móvel 6 Normalmente, quando as pessoas falam sobre uma média móvel, significam substituir o ponto N pela média dos pontos M em torno do ponto N. Suponha que eu tenho 100 pontos cujos valores são 1, 2, 3. 100 e eu quero Faça uma média móvel de 5 pontos. A primeira coisa a notar é que existe uma média móvel do terceiro ponto é a média de 1, 2, 3, 4, 5 3. A média do quarto ponto é a média de 2, 3, 4, 5, 6 4. No entanto, este é talvez um exemplo muito simples. Como sobre a média de uma função Step, 0 de 1 a 10, então 20 depois. Novamente, jogue fora os pontos 1 e 2. A média dos pontos 1-5 (para entrar no ponto 3) 0 (já que todos os pontos são 0). Da mesma forma com o ponto 4, 5, 6,7 e 8. No entanto, o ponto 9 é a média de 0, 0, 0, 0, 20 4. Como sobre o ponto 10 Bem, deve ser a média de 0, 0, 0 , 20, 20 8, mas você se lembrou de não substituir Point 9 Hmm, parece que precisamos manter duas cópias da matriz (o que, em geral, é caro). Há várias maneiras de evitar isso. Você entende onde o problema surge no parágrafo anterior Se não, tente fazer isso com lápis e papel (ou tente codificá-lo no LabVIEW). Eu vou dar-lhe a resposta para que você possa verificar - a média móvel da função Step é -, -, 0, 0, 0, 0, 0, 0, 0, 4, 8, 12, 16, 20, 20 , 20. -, - (onde - são os valores vazios nas extremidades da matriz, os pontos que você não tem vizinhos suficientes). P. S. - não me surpreenderia se houvesse uma função LabVIEW que faça isso por você. Mas se você está aprendendo o LabVIEW e quer ter uma melhor compreensão de como os algoritmos que você está conectando no trabalho, nunca dói jogar e experimentá-lo sozinho. Você pode até encontrar uma melhoria (vários de nós já o fizeram). Obrigado por sensibilizar sobre os pontos mais finos do método da Moeda Variável. Esta é uma ferramenta estatística que ajuda a ver o que você deseja ver, abstraindo os distractores. Portanto, o método é obrigado a ter algumas falhas em algumas situações ou contexto. Mas acho que é perfeitamente adequado para o meu tipo de registro de dados dof - é uma pressão ou temperatura ou sinal de fluxo - e adquiro em algo como 400 amostras de segundo e depois use uma amostra única calculada em média. E o processo é bastante lento, pois meu código principal é executado a uma velocidade não superior a 20 Hz. Então, quando eu faço uma média de 5 amostras, minha primeira amostra chega 5 x 50 ms depois, então, por cada 50 ms, recebo uma amostra válida. Basicamente, estou mais preocupado com as tendências e sem valores pontuais. Nisto há pouca preocupação com amostras perdidas ou valores desonesto. Claro, eu não ousaria usar isso para uma função Step. Isso seria cruel. Raghunathan LV2012 para automatizar plataformas de teste hidráulico. Mensagem 4 de 15 (883 Visualizações) Re: Simple Moving Average VI 03-30-2016 11:58 PM Há ptbypt médio que faz o mesmo. Você pode inspecionar o código se desejar. Uma grande falha em seu código é o fato de que você cresce constantemente e encolhe uma matriz existente. Você deve tentar encontrar uma solução que funcione no local em uma matriz de tamanho fixo. Alguns exemplos foram postados no fórum ao longo dos anos (veja hee, por exemplo). A média não se importa se os elementos estão fora de ordem, então você pode simplesmente substituir o elemento mais antigo, não importa onde ele esteja localizado. Você também está antecipando o novo elemento ao início de uma matriz existente, que é sempre muito mais cara do que adicionar até o fim. O tamanho da amostra não pode mudar quando o VI estiver sendo executado. Seu registro de deslocamento deve ser inicializado com uma matriz vazia, não uma matriz que já contém um único elemento que é zero. (Este zero extra dará médias erradas) Seu código deve ser transformado em um subVI para que ele possa ser reutilizado (semelhante à versão Ptbypt). Seu VI nunca pode ser interrompido, apenas abortado. Boas dicas de otimização. O ponto de inicialização com o Zero me perdeu. E sim, o usuário não deve alterar o tamanho da amostra uma vez que ele começa a ser executado. Finalmente, vou fazer um SubVI e lidar com coisas como parar, etc. Quanto ao ponto de prepender do que acrescentar o novo valor à matriz, talvez haja uma penalidade de desempenho, mas dado o tamanho da minha matriz, estou certo de que a CPU não se importa com a velocidade . Mas para mim tem que ser assim, pois uso os dados finais para traçar uma tendência de um parâmetro físico. Obrigado pelo seu tempo. Raghunathan LV2012 para automatizar plataformas de teste hidráulico. Obrigado por sensibilizar sobre os pontos mais finos do método da Moeda Variável. Esta é uma ferramenta estatística que ajuda a ver o que você deseja ver, abstraindo os distractores. Portanto, o método é obrigado a ter algumas falhas em algumas situações ou contexto. Mas acho que é perfeitamente adequado para o meu tipo de registro de dados dof - é uma pressão ou temperatura ou sinal de fluxo - e adquiro em algo como 400 amostras de segundo e depois use uma amostra única calculada em média. E o processo é bastante lento, pois meu código principal é executado a uma velocidade não superior a 20 Hz. Então, quando eu faço uma média de 5 amostras, minha primeira amostra chega 5 x 50 ms depois, então, por cada 50 ms, recebo uma amostra válida. Aha Então você não quer uma média móvel, mas apenas uma média simples. Isso é muito mais fácil. É a idéia (o que funciona muito melhor com um Design ProducerConsumer) - Digamos que você esteja fazendo amostragem a 400Hz, quer salvar os dados em 400 Hz (ou seja, salvar todos os dados no disco), mas deseja exibir a 20 Hz (porque você Quer ver tendências, uma base de tempo mais longa, etc.). Configure seu sistema AD para coletar 20 amostras a 400Hz (note que você pode coletar N Canais ao mesmo tempo, dando-lhe uma matriz 2D de amostras. À medida que você obtém os dados (a 20 Hz) do AD (tornando este o Produtor) O consumidor começa escrevendo os dados no disco (não deve demorar muito tempo). Agora você tem uma matriz 2D - em um Loop For, em um canal por canal, média dos 20 pontos. Agora você tem uma matriz 1D, com um ponto invertido para cada canal. Avance e trafique. Observe que este esquema (a) usa todos os dados, (b) manipula dados multicanal com aplomo (e, se você estiver Do Oriente Médio, onde eles crescem, você também pode lidar com seus dados com uma ameixa suculenta), e (c) permite que você colete seus dados do equipamento AD, guarde seus dados no disco mantendo todos os pontos e mostre seus dados em A tela usando todos os seus pontos, mas também progride para melhorar a relação sinal / ruído visual, tudo sem perder dados (Ive fez exatamente isso com 24 canais a 1KHz, com Os dados foram retirados em um sistema remoto e enviados para o PC via TCPIP, então também temos processamento TCP no loop). Bem-vindo ao mundo emocionante de aquisição e processamento de dados com o LabVIEW. Confie em mim, este é um sistema maravilhoso para fazer este tipo de trabalho Com base nos comentários que recebi no meu VI original, eu refinei o código da Moeda Mínima para um subVI. Então usei-o para uma média de dados simulados de 10 canais, apenas para manter as coisas simples, certifiquei-me de que todos os canais tinham dados idênticos. Espera-se então obter a mesma média móvel para os 10 canais. Estou surpreso com a pequena variação que notei entre canais - geralmente eles são próximos, mas não exatos. E apenas para explicar o processo que estou tentando, eu também encerrei um XLS. Então, de onde vem a variação. O registro de desligamento não inicializado dentro do Sub VI. Raghunathan LV2012 para automatizar plataformas de teste hidráulico. Mensagem 9 de 15 (786 Visualizações) Re: Simple Moving Average VI altenbach 04-01-2016 10:25 AM Seu código ainda não faz sentido. Quando você está chamando o subalterno um escalar de cada vez, você não está recebendo o que deseja porque o registro de desligamento apenas relembra os últimos N escalares, independentemente do canal de que seja. Seu código ainda é muito ineficiente e complicado. (Por exemplo, por que você ainda está usando a inserção na matriz para anexar (tanto no mani nad no sub). (Você poderia usar um subVI reenetrante e um loop FOR mais interno paralelo, mas isso parece excessivamente complicado também) Se você quer fazer um A média de execução em cada canal, o subVI precisa manter uma matriz 2D no subVI. Tudo isso foi feito antes. Mensagem 10 de 15 (770 Visualizações)

No comments:

Post a Comment