Índice:

Arduino: Transformação de frequência (DFT): 6 etapas
Arduino: Transformação de frequência (DFT): 6 etapas
Anonim
Arduino: Transformação de frequência (DFT)
Arduino: Transformação de frequência (DFT)

este programa é para calcular a transformada de frequência no Arduino com controle de massa sobre os parâmetros. É resolvido usando a transformação Fouriior profanada.

isso não é FFT

FFT é um algoritmo usado para resolver DFT com menor tempo.

O código para FFT pode ser encontrado aqui.

Etapa 1: Como funciona (conceito):

Como funciona (conceito)
Como funciona (conceito)
Como funciona (conceito)
Como funciona (conceito)

O programa fornecido para a transformação de frequência oferece grande controle sobre a saída necessária. este programa avalia a faixa de frequência fornecida pelo usuário na entrada fornecida para o conjunto de dados.

  • Na figura, um conjunto de dados feito de duas frequências chamadas f2 e f5, que precisam ser testadas. f2 e f5 são nomes aleatórios para duas frequências, um número mais alto para uma frequência relativamente mais alta. aqui, a frequência menor f2 tem amplitude maior e f5 tem amplitude menor.
  • Pode ser mostrado matematicamente que a soma da multiplicação de dois conjuntos de dados harmônicos com frequências diferentes tende a zero (um número maior de dados pode levar ao resultado da massa). Em nosso caso, se essas duas frequências de multiplicação têm a mesma frequência (ou muito próxima), essa soma da multiplicação é um número diferente de zero onde a amplitude depende da amplitude dos dados.
  • para detectar a frequência específica, determinado conjunto de dados pode ser multiplicado por várias frequências de teste e o resultado pode fornecer o componente dessa frequência nos dados.

Etapa 2: Como funciona (no código):

Como funciona (no código)
Como funciona (no código)
Como funciona (no código)
Como funciona (no código)

para os dados fornecidos (f2 + f5), um por um, f1 a f6 é multiplicado e o valor da soma é anotado. essa soma final representa o conteúdo dessa frequência. o resto (não correspondência) da frequência deve ser idealmente zero, mas não é possível no caso real. para fazer a soma zero, é necessário ter um tamanho infinito de conjuntos de dados.

  • como pode ser mostrado nas figuras f1 a f6, a frequência de teste e sua multiplicação com o conjunto de dados em cada ponto é mostrada.
  • na segunda figura, o somatório dessa multiplicação em cada frequência é traçado. dois picos em 1 e 5 são identificáveis.

então, usando a mesma abordagem para dados aleatórios, podemos avaliar tantas frequências e analisar o conteúdo da frequência dos dados.

Etapa 3: Uso do código para análise de frequência:

Usando código para análise de frequência
Usando código para análise de frequência

por exemplo, vamos usar este código para encontrar DFT de onda quadrada.

primeiro cole o código anexado (função dft) após o loop, conforme a imagem mostrada

8 TERMOS QUE PRECISAM SER ESPECIFICADOS

  1. uma matriz de qual dft precisa ser tomada
  2. tamanho de uma matriz
  3. intervalo de tempo entre 2 leituras na matriz em miliSECONDS
  4. valor inferior da faixa de frequência em Hz
  5. valor superior da faixa de frequência em Hz
  6. tamanho das etapas para a faixa de frequência
  7. repetição de um sinal (mínimo 1) maior precisão do batedor, mas maior tempo de solução
  8. função de janela:

    0 para nenhuma janela 1 para janela de topo plano 2 para janela hann 3 para janela de hamming

(se você não tem ideia sobre como selecionar a janela, mantenha o padrão 3)

exemplo: dft (a, 8, 0,5, 0, 30, 0,5, 10, 3); aqui, a é uma matriz de elemento de tamanho 8 a ser verificada para 0 Hz a 30 Hz com 0,5 passo (0, 0,5, 1, 1,5, …, 29, 29,5, 30) 10 repetição e janela de hamming

aqui é possível usar um array de tamanho maior, tanto quanto o arduino pode suportar.

Etapa 4: Saída:

Saída
Saída
Saída
Saída

se você comentar

Serial.print (f); Serial.print ("\ t");

do código serial plotter fornecerá a natureza do espectro de frequência, se não o monitor serial fornecerá a frequência com sua amplitude.

Etapa 5: Verificar várias janelas e tamanhos de amostra:

Verificando várias janelas e tamanhos de amostra
Verificando várias janelas e tamanhos de amostra

na figura, a frequência da onda senoidal é medida usando uma configuração diferente.

Etapa 6: Exemplo:

Exemplo
Exemplo

na figura a transformação de dados usando SciLab e arduino é comparada.

Recomendado: