Saturday, 21 October 2017

Movendo média filtro acelerômetro no Brasil


Um filtro simples, de um único pólo, de passagem baixa, recursivo IIR é rápido e fácil de implementar, e. Onde x, y são os sinais de acelerômetro XY brutos (não filtrados), xf, yf são os sinais de saída filtrados, e k determina a constante de tempo dos filtros (tipicamente um valor entre 0,9 e 0,9999. Onde k maior significa uma constante de tempo mais longa ). Você pode determinar k de forma empírica, ou se você conhece sua freqüência de corte requerida, Fc. Então você pode usar a fórmula: onde Fs é a taxa de amostragem. Note que xf, yf são os valores anteriores do sinal de saída no RHS e os novos valores de saída no LHS da expressão acima. Observe também que estamos assumindo aqui que você estará amostragem dos sinais do acelerômetro em intervalos de tempo regulares, p. A cada 10 ms. A constante de tempo será uma função de k e desse intervalo de amostragem. Filtro de abrangência Este exemplo mostra o fluxo de trabalho recomendado para gerar código C de uma função MATLAB usando o comando codegen. Estas são as etapas: 1. Adicione a diretiva codegen à função MATLAB para indicar que ela se destina a geração de código. Esta diretiva também permite que o analisador de código MATLAB identifique avisos e erros específicos para MATLAB para geração de código. 2. Gerar uma função MEX para verificar se o código MATLAB é adequado para geração de código. Se ocorrerem erros, você deve corrigi-los antes de gerar o código C. 3. Teste a função MEX no MATLAB para garantir que seja funcionalmente equivalente ao código MATLAB original e que não ocorrem erros de tempo de execução. 4. Gerar código C. 5. Inspecione o código C. Pré-requisitos Não há pré-requisitos para este exemplo. Criar uma nova pasta e copiar arquivos relevantes O código a seguir criará uma pasta na sua pasta de trabalho atual (pwd). A nova pasta apenas conterá os arquivos relevantes para este exemplo. Se você não quiser afetar a pasta atual (ou se você não pode gerar arquivos nesta pasta), você deve mudar sua pasta de trabalho. Comando Executar: Crie uma Nova Pasta e Copie Arquivos Relevantes Sobre a Função de Filtragem de média A função de média de filtragem. m atua como um filtro de média no sinal de entrada, ele toma um vetor de valores de entrada e calcula uma média para cada valor no vetor. O vetor de saída é do mesmo tamanho e forma que o vetor de entrada. A diretiva de compilação do codegen indica que o código MATLAB destina-se à geração de código. Crie alguns dados de amostra Gerar uma onda seno ruidosa e traçar o resultado. Gerar uma função MEX para testes Gerar uma função MEX usando o comando codegen. O comando codegen verifica se a função MATLAB é adequada para geração de código e gera uma função MEX que você pode testar no MATLAB antes de gerar código C. Como C usa tipagem estática, codegen deve determinar as propriedades de todas as variáveis ​​nos arquivos MATLAB em tempo de compilação. Aqui, a opção de linha de comando - args fornece um exemplo de entrada para que o codegen possa inferir novos tipos com base nos tipos de entrada. Usando o sinal de amostra criado acima como o exemplo de entrada garante que a função MEX possa usar a mesma entrada. Por padrão, codegen gera uma função MEX chamada médiafiltermex na pasta atual. Isso permite que você teste o código MATLAB e a função MEX e compare os resultados. Teste a função MEX no MATLAB Execute a função MEX no MATLAB Cria o código C Inspecione o código gerado O comando codegen com a opção - config coder. config (lib) gera o código C empacotado como uma biblioteca C autônoma. O código C gerado está na pasta codegenlibaveragingfilter. Os arquivos são: Inspecione o código C para o filtro de média. c Função Selecione seu país

No comments:

Post a Comment