Índice:

Filtragem FIR para detecção de frequência mais confiável: 5 etapas
Filtragem FIR para detecção de frequência mais confiável: 5 etapas
Anonim
Filtragem FIR para detecção de frequência mais confiável
Filtragem FIR para detecção de frequência mais confiável

Eu sou um grande fã do instrutor de Akellyirl sobre Detecção de Freqüência Confiável usando técnicas DSP, mas às vezes a técnica que ele usou não é boa o suficiente se você tiver medições barulhentas.

Uma solução fácil para obter uma entrada mais limpa para o detector de frequência é aplicar algum tipo de filtro em torno da frequência que você deseja detectar.

Infelizmente, criar um filtro digital não é fácil e envolve muita matemática. Então, pensei em criar algum tipo de programa para simplificar a criação de tais filtros, para permitir que qualquer pessoa os use em seus projetos sem se aprofundar nos detalhes.

Neste Instructable, irei detectar uma onda senoidal de 50 Hz em uma medição barulhenta com um Arduino Uno (o Arduino não é realmente necessário).

Etapa 1: o problema

O problema
O problema

Imagine que os dados de entrada medidos se parecem com a curva acima - muito barulhentos.

Se construirmos um detector de frequência simples como o de Instructable de akellyirl, o resultado é "-inf" ou no caso do código abaixo: "Sim, muito ruído …"

Nota: Eu usei quase todo o código de akellyirl, mas adicionei um array rawData no topo contendo as medições ruidosas.

Abaixo você pode encontrar o código completo em um arquivo chamado "não filtrado.ino".

Etapa 2: a solução

A solução
A solução

Como os dados de entrada são ruidosos, mas sabemos a frequência que estamos procurando, podemos usar uma ferramenta que criei chamada easyFIR para criar um filtro Bandpass e aplicá-lo aos dados de entrada, o que resulta em uma entrada muito mais limpa para o detector de frequência (imagem acima).

Etapa 3: EasyFIR

EasyFIR
EasyFIR

A ferramenta easyFIR é muito fácil de usar, basta baixar o repositório GitHub e executar o arquivo easyFIR.py com uma amostra de suas medidas (em formato CSV).

Se você abrir o arquivo easyFIR.py, encontrará 5 parâmetros (veja a imagem acima) que você pode e deve alterar dependendo do resultado que deseja obter. Depois de ajustar os 5 parâmetros e executar o arquivo python, você verá os coeficientes calculados em seu terminal. Esses coeficientes são cruciais para a próxima etapa!

Mais informações sobre o uso exato podem ser encontradas aqui:

Etapa 4: Filtragem

Filtrando
Filtrando

Agora, se você calculou os coeficientes de filtro necessários, é muito fácil aplicar o filtro real ao detector de frequência.

Como você pode ver na imagem acima, você só precisa adicionar os coeficientes, a função applyFilter e, em seguida, filtrar as medidas de entrada.

Abaixo você encontra o código completo em um arquivo chamado "filter.ino".

Nota: muito obrigado a este Stack Overflow Post pelo ótimo algoritmo de aplicação de filtro!

Etapa 5: aproveite

Aproveitar
Aproveitar

Como você pode ver, agora somos capazes de detectar um sinal de 50 Hz mesmo em um ambiente barulhento?

Sinta-se à vontade para adaptar minha ideia e código às suas necessidades. Eu ficaria muito grato em incluir suas melhorias!

Se você gosta do meu trabalho, eu realmente apreciaria se você apoiasse meu trabalho com o star no GitHub!

Obrigado por seu apoio!:)

Recomendado: