Tabla de contenido:

Arduino: Transformación de frecuencia (DFT): 6 pasos
Arduino: Transformación de frecuencia (DFT): 6 pasos

Video: Arduino: Transformación de frecuencia (DFT): 6 pasos

Video: Arduino: Transformación de frecuencia (DFT): 6 pasos
Video: Dominio del tiempo y dominio de la frecuencia (Fourier 1/4) 2024, Mes de julio
Anonim
Arduino: Transformación de frecuencia (DFT)
Arduino: Transformación de frecuencia (DFT)

este programa es para calcular la transformación de frecuencia en arduino con el control de la batería sobre los parámetros. Se resuelve usando la transformación de profanar cuatro.

esto no es FFT

FFT es un algoritmo que se utiliza para resolver DFT en menos tiempo.

El código para FFT se puede encontrar aquí.

Paso 1: Cómo funciona (concepto):

Cómo funciona (concepto)
Cómo funciona (concepto)
Cómo funciona (concepto)
Cómo funciona (concepto)

El programa dado para la transformación de frecuencia proporciona un gran control sobre la salida que necesita. este programa evalúa el rango de frecuencia dado por el usuario en una entrada dada para el conjunto de datos.

  • En la figura, un conjunto de datos compuesto por dos frecuencias denominadas f2 y f5 dadas las cuales necesitan ser probadas. f2 y f5 son nombres aleatorios para dos frecuencias, un número más alto para una frecuencia relativamente más alta. aquí la frecuencia menor f2 tiene mayor amplitud y f5 tiene menor amplitud.
  • Se puede demostrar matemáticamente que la suma de la multiplicación de dos conjuntos de datos armónicos que tienen una frecuencia diferente tiende a cero (un número mayor de datos puede conducir a un resultado de rebozo). En nuestro caso, si estas dos frecuencias de multiplicación tienen la misma frecuencia (o muy cercana), la suma de la multiplicación es un número distinto de cero donde la amplitud depende de la amplitud de los datos.
  • Para detectar una frecuencia específica, el conjunto de datos se puede multiplicar por varias frecuencias de prueba y el resultado puede dar un componente de esa frecuencia en los datos.

Paso 2: Cómo funciona (en código):

Cómo funciona (en código)
Cómo funciona (en código)
Cómo funciona (en código)
Cómo funciona (en código)

para esos datos dados (f2 + f5) uno por uno, f1 a f6 se multiplica y se anota el valor de la suma. esa suma final representa el contenido de esa frecuencia. El resto (no coincidente) de frecuencia debería ser idealmente cero, pero no es posible en el caso real. para hacer la suma cero se requiere tener un tamaño infinito de conjuntos de datos.

  • como se puede mostrar en la figura f1 a f6, se muestra la frecuencia de prueba y su multiplicación con el conjunto de datos en cada punto.
  • en la segunda figura se traza la suma de esa multiplicación en cada frecuencia. dos picos en 1 y 5 son identificables.

por lo tanto, utilizando el mismo enfoque para datos aleatorios, podemos evaluar tantas frecuencias y analizar el contenido de frecuencia de los datos.

Paso 3: uso de código para el análisis de frecuencia:

Uso de código para análisis de frecuencia
Uso de código para análisis de frecuencia

para un ejemplo, usemos este código para encontrar DFT de onda cuadrada.

primero pegue el código adjunto (función dft) después del bucle como se muestra en la imagen

8 TÉRMINOS QUE DEBEN SER ESPECIFICADOS

  1. una matriz de la cual se debe tomar dft
  2. tamaño de una matriz
  3. intervalo de tiempo entre 2 lecturas en matriz en milisegundos
  4. valor más bajo del rango de frecuencia en Hz
  5. valor superior del rango de frecuencia en Hz
  6. tamaño de los pasos para el rango de frecuencia
  7. repetición de una señal (mínimo 1) mayor precisión de número de bateadores pero mayor tiempo de solución
  8. función de ventana:

    0 para sin ventana 1 para ventana plana 2 para ventana Hann 3 para ventana Hamming

(si no tiene idea de cómo seleccionar la ventana, mantenga el valor predeterminado 3)

ejemplo: dft (a, 8, 0.5, 0, 30, 0.5, 10, 3); aquí hay una matriz de elemento de tamaño 8 que se debe verificar para 0 Hz a 30 Hz con 0.5 pasos (0, 0.5, 1, 1.5,…, 29, 29.5, 30) 10 repetición y ventana de hamming

aquí es posible usar una matriz de mayor tamaño tanto como arduino puede manejar.

Paso 4: Salida:

Producción
Producción
Producción
Producción

si comentas

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

a partir del código, el trazador en serie dará la naturaleza del espectro de frecuencia y, si no, el monitor en serie dará la frecuencia con su amplitud.

Paso 5: Verificación de varios tamaños de muestra y ventana:

Comprobación de varios tamaños de muestra y ventana
Comprobación de varios tamaños de muestra y ventana

en la figura, la frecuencia de la onda sinusoidal se mide utilizando diferentes ajustes.

Paso 6: Ejemplo:

Ejemplo
Ejemplo

en la figura se compara la transformación de datos usando SciLab y arduino.

Recomendado: