Satura rādītājs:

Arduino: frekvences pārveidošana (DFT): 6 soļi
Arduino: frekvences pārveidošana (DFT): 6 soļi

Video: Arduino: frekvences pārveidošana (DFT): 6 soļi

Video: Arduino: frekvences pārveidošana (DFT): 6 soļi
Video: Why do we use the Fourier Transform? 2024, Jūlijs
Anonim
Arduino: frekvences pārveidošana (DFT)
Arduino: frekvences pārveidošana (DFT)

šī programma ir aprēķināt frekvences pārveidošanu arduino ar mīklas kontroli pār parametriem. tas tiek atrisināts, izmantojot apgānītu četru vai transformāciju.

tas nav FFT

FFT ir algoritms, ko izmanto, lai atrisinātu DFT ar mazāku laiku.

FFT kodu var atrast šeit.

1. darbība. Kā tas darbojas (koncepcija):

Kā tas darbojas (koncepcija)
Kā tas darbojas (koncepcija)
Kā tas darbojas (koncepcija)
Kā tas darbojas (koncepcija)

Dotā frekvences pārveidošanas programma nodrošina lielisku nepieciešamo izvades kontroli. šī programma novērtē frekvenču diapazonu, ko lietotājs norādījis pie noteiktas datu kopas ievades.

  • Attēlā datu kopa, kas sastāv no divām frekvencēm ar nosaukumu f2 un f5, kuras ir jāpārbauda. f2 un f5 ir nejauši nosaukumi divām frekvencēm, lielāks skaitlis salīdzinoši augstākai frekvencei. šeit mazākajai frekvencei f2 ir lielāka amplitūda un f5 ir mazāka amplitūda.
  • Matemātiski var pierādīt, ka divu harmonisku datu kopu, kurām ir atšķirīga frekvence, reizināšanas summai ir tendence uz nulli (lielāks datu skaits var izraisīt mīklas rezultātu). Mūsu gadījumā, ja šīm divām reizināšanas frekvencēm ir vienāda (vai ļoti tuva) frekvence, reizināšanas summa ir nulle, kur amplitūda ir atkarīga no datu amplitūdas.
  • Lai noteiktu noteiktu frekvenci, doto datu kopu var reizināt ar dažādām testa frekvencēm, un rezultāts var dot šīs frekvences sastāvdaļu datos.

2. darbība. Kā tas darbojas (kodā):

Kā tas darbojas (kodā)
Kā tas darbojas (kodā)
Kā tas darbojas (kodā)
Kā tas darbojas (kodā)

dotajiem datiem (f2+f5) pa vienam f1 līdz f6 reizina un summas vērtību pieraksta. šī galīgā summa atspoguļo šīs frekvences saturu. biežuma atpūtai (nesakritībai) ideālā gadījumā vajadzētu būt nullei, bet reālā gadījumā tas nav iespējams. lai summa būtu nulle, ir nepieciešams bezgalīgs datu kopu lielums.

  • kā redzams attēlā no f1 līdz f6, ir parādīta izmēģinājumu biežums un tā reizināšana ar datu kopu katrā punktā.
  • otrajā attēlā ir attēlota šī reizinājuma summa katrā frekvencē. ir identificējamas divas virsotnes pie 1. un 5. punkta.

tāpēc, izmantojot to pašu pieeju nejaušiem datiem, mēs varam novērtēt tik daudz biežuma un analizēt datu biežuma saturu.

3. darbība: koda izmantošana frekvenču analīzei:

Koda izmantošana frekvenču analīzei
Koda izmantošana frekvenču analīzei

piemēram, ļauj izmantot šo kodu, lai atrastu kvadrātveida viļņu DFT.

vispirms ielīmējiet pievienoto kodu (dft funkcija) pēc cilpas, kā parādīts attēlā

8 NOTEIKUMI, KURI JĀNORĀDA

  1. masīvs, no kura jāņem dft
  2. masīva lielums
  3. laika intervāls starp 2 lasījumiem masīvā milisekundēs
  4. frekvenču diapazona zemākā vērtība Hz
  5. frekvenču diapazona augšējā vērtība Hz
  6. frekvenču diapazona soļu lielums
  7. signāla atkārtošanās (vismaz 1) lielāka mīklu skaita precizitāte, bet palielināts šķīduma laiks
  8. loga funkcija:

    0 bez loga1 logs ar plakanu augšpusi 2 hann logs 3 trāpīšanas logam

(ja jums nav ne jausmas par loga izvēli, saglabājiet noklusējumu 3)

piemērs: dft (a, 8, 0,5, 0, 30, 0,5, 10, 3); šeit a ir 8. izmēra elementa masīvs, kas jāpārbauda no 0 Hz līdz 30 Hz ar 0,5 soli (0, 0,5, 1, 1,5,…, 29, 29,5, 30) 10 atkārtojumu un sitienu logs

šeit ir iespējams izmantot lielāka izmēra masīvu, cik vien arduino spēj izturēt.

4. darbība: izvade:

Izeja
Izeja
Izeja
Izeja

ja komentē

Sērijas nospiedums (f); Sērijas nospiedums ("\ t");

no koda sērijas ploteris piešķirs frekvenču spektra raksturu, ja ne Sērijas monitors dotu frekvenci ar tās amplitūdu.

5. darbība: dažādu logu un paraugu izmēru pārbaude:

Dažādu logu un paraugu izmēru pārbaude
Dažādu logu un paraugu izmēru pārbaude

attēlā sinusa viļņa frekvence tiek mērīta, izmantojot dažādus iestatījumus.

6. darbība. Piemērs:

Piemērs
Piemērs

attēlā tiek salīdzināta datu pārveidošana, izmantojot SciLab un arduino.

Ieteicams: