Taula de continguts:

Arduino: Transformació de freqüència (DFT): 6 passos
Arduino: Transformació de freqüència (DFT): 6 passos

Vídeo: Arduino: Transformació de freqüència (DFT): 6 passos

Vídeo: Arduino: Transformació de freqüència (DFT): 6 passos
Vídeo: Utilizando o Analisador Lógico no MSO-X2002A para debug! 2024, Juliol
Anonim
Arduino: transformació de freqüència (DFT)
Arduino: transformació de freqüència (DFT)

aquest programa consisteix a calcular la transformació de freqüència en arduino amb el control de la bateria sobre els paràmetres.

això no és FFT

FFT és un algorisme que s’utilitza per resoldre DFT amb menys temps.

El codi per a FFT es pot trobar aquí.

Pas 1: Com funciona (concepte):

Com funciona (concepte)
Com funciona (concepte)
Com funciona (concepte)
Com funciona (concepte)

El programa donat per a la transformació de freqüència proporciona un gran control sobre la sortida que necessiteu. aquest programa avalua el rang de freqüències donat per l'usuari en una entrada determinada per al conjunt de dades.

  • A la figura es mostra un conjunt de dades format per dues freqüències anomenades f2 i f5 que cal provar. f2 i f5 són noms aleatoris per a dues freqüències, un nombre més alt per a freqüències relativament més altes. aquí la freqüència menor f2 té una amplitud més gran i la f5 té una amplitud menor.
  • Es pot demostrar matemàticament que -la suma de la multiplicació de dos conjunts de dades harmònics de diferent freqüència tendeix a zero (un nombre més gran de dades pot donar lloc a resultats). En el nostre cas, si aquestes dues freqüències de multiplicació tenen la mateixa (o molt propera) freqüència, la suma de multiplicació és un nombre diferent a zero, on l'amplitud depèn de l'amplitud de les dades.
  • per detectar una freqüència específica donada, el conjunt de dades es pot multiplicar per diverses freqüències de prova i el resultat pot donar un component d'aquesta freqüència a les dades.

Pas 2: Com funciona (al codi):

Com funciona (en codi)
Com funciona (en codi)
Com funciona (en codi)
Com funciona (en codi)

per a les dades donades (f2 + f5), un a un, de f1 a f6 es multiplica i es nota el valor de la suma. aquesta suma final representa el contingut d'aquesta freqüència. el descans (no coincident) de la freqüència hauria de ser idealment zero, però no és possible en cas real. per fer la suma zero es requereix una mida infinita de conjunts de dades.

  • com es pot mostrar a la freqüència de prova de les figures f1 a f6 i es mostra la seva multiplicació amb conjunt de dades en cada punt.
  • a la segona figura es representa la suma d'aquesta multiplicació a cada freqüència. dos pics a 1 i 5 són identificables.

de manera que utilitzant el mateix enfocament per a dades aleatòries podem avaluar tantes freqüències i analitzar el contingut de freqüència de les dades.

Pas 3: utilitzar el codi per a l'anàlisi de freqüència:

Ús del codi per a l'anàlisi de freqüència
Ús del codi per a l'anàlisi de freqüència

per exemple, permet utilitzar aquest codi per trobar DFT d'ona quadrada.

primer enganxeu el codi adjunt (funció DFT) després del bucle tal com es mostra a la imatge

8 CONDICIONS QUE HAN DE SER ESPECIFICATS

  1. una matèria de la qual cal prendre DFT
  2. mida d'una matriu
  3. interval de temps entre 2 lectures en matriu en milisegons
  4. valor inferior del rang de freqüències en Hz
  5. valor superior del rang de freqüències en Hz
  6. mida dels passos per al rang de freqüència
  7. repetició d'un senyal (mínim 1) de precisió de batuda de nombre superior, però temps de solució augmentat
  8. funció de finestra:

    0 per a cap finestra1 per a la finestra plana 2 per a la finestra hann 3 per a la finestra de martell

(si no teniu cap idea sobre la selecció de la finestra, manteniu el valor per defecte 3)

exemple: dft (a, 8, 0,5, 0, 30, 0,5, 10, 3); aquí a es mostra una matriu d'elements de mida 8 per comprovar de 0 Hz a 30 Hz amb 0,5 passos (0, 0,5, 1, 1,5, …, 29, 29,5, 30) 10 finestra de repetició i martell

aquí és possible utilitzar matrius de mida més gran tant com arduino pot gestionar.

Pas 4: sortida:

Sortida
Sortida
Sortida
Sortida

si comentes

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

a partir del codi, el traçador en sèrie donarà la naturalesa de l'espectre de freqüències i, si no, el monitor sèrie donaria freqüència amb la seva amplitud.

Pas 5: comprovació de diverses mides de finestra i mostra:

Comprovació de diverses mides de finestra i mostra
Comprovació de diverses mides de finestra i mostra

a la figura, la freqüència de l'ona sinusoïdal es mesura mitjançant diferents configuracions.

Pas 6: Exemple:

Exemple
Exemple

es compara la transformació de dades mitjançant SciLab i arduino.

Recomanat: