Sadržaj:

Arduino: Frekvencijska transformacija (DFT): 6 koraka
Arduino: Frekvencijska transformacija (DFT): 6 koraka

Video: Arduino: Frekvencijska transformacija (DFT): 6 koraka

Video: Arduino: Frekvencijska transformacija (DFT): 6 koraka
Video: Kako napraviti merac frekvencije ??? 2024, Novembar
Anonim
Arduino: Frekvencijska transformacija (DFT)
Arduino: Frekvencijska transformacija (DFT)

ovaj program služi za izračunavanje frekvencijske transformacije na arduinu s kontrolom nad parametrima. rješava se pomoću skrnavljene četverostruke transformacije.

ovo nije FFT

FFT je algoritam koji se koristi za rješavanje DFT -a s kraćim vremenom.

Kôd za FFT možete pronaći ovdje.

Korak 1: Kako to funkcionira (koncept):

Kako to funkcionira (koncept)
Kako to funkcionira (koncept)
Kako to funkcionira (koncept)
Kako to funkcionira (koncept)

Dati program za frekvencijsku transformaciju pruža veliku kontrolu nad izlazom koji vam je potreban. ovaj program procjenjuje frekvencijski raspon koji daje korisnik na danom ulazu za skup podataka.

  • Na slici je dan skup podataka sastavljen od dvije frekvencije pod imenom f2 i f5 koje je potrebno testirati. f2 i f5 su nasumični nazivi za dvije frekvencije, veći broj za relativno veću frekvenciju. ovdje manja frekvencija f2 ima veću amplitudu i f5 ima manju amplitudu.
  • Matematički se može pokazati da -zbir množenja dva skupa podataka harmonika različitih frekvencija teži nuli (veći broj podataka može dovesti do rezultata testa). U našem slučaju Ako ove dvije frekvencije množenja imaju istu (ili vrlo blisku) frekvenciju, taj zbir množenja je broj različit od nule gdje amplituda ovisi o amplitudi podataka.
  • Za otkrivanje određene frekvencije, skup podataka može se pomnožiti s različitim frekvencijama testa, a rezultat može dati komponentu te frekvencije u podacima.

Korak 2: Kako to funkcionira (u kodu):

Kako to funkcionira (u kodu)
Kako to funkcionira (u kodu)
Kako to funkcionira (u kodu)
Kako to funkcionira (u kodu)

jer se dati podaci (f2+f5) jedan po jedan f1 do f6 množe i vrijednost zbira se bilježi. taj konačni zbir predstavlja sadržaj te frekvencije. ostatak (neusklađenost) frekvencije bi idealno trebao biti nula, ali to u realnom slučaju nije moguće. da bi se zbroj napravio nula potrebno je imati beskonačnu veličinu skupova podataka.

  • kao što se može prikazati na slikama f1 do f6 učestalost ispitivanja i prikazano je njeno množenje sa skupom podataka u svakoj točki.
  • na drugoj slici prikazan je zbir tog množenja na svakoj frekvenciji. dva vrha na 1 i 5 se mogu identifikovati.

pa koristeći isti pristup za slučajne podatke možemo procijeniti toliko frekvencija i analizirati učestalost sadržaja podataka.

Korak 3: Upotreba koda za analizu učestalosti:

Korištenje koda za analizu učestalosti
Korištenje koda za analizu učestalosti

na primjer, pomoću ovog koda možemo pronaći DFT kvadratnog vala.

prvo zalijepite priloženi kôd (dft funkcija) nakon petlje kao što je prikazano na slici

8 USLOVI KOJE TREBA NAVESTI

  1. niz od kojih dft treba uzeti
  2. veličina niza
  3. vremenski interval između 2 čitanja u nizu u milliSECONDS
  4. niža vrijednost frekvencijskog raspona u Hz
  5. gornja vrijednost frekvencijskog područja u Hz
  6. veličina koraka za frekvencijski raspon
  7. ponavljanje signala (minimalno 1) veća preciznost brojača, ali povećano vrijeme rješenja
  8. funkcija prozora:

    0 za bez prozora1 za prozor sa ravnim krovom 2 za hannov prozor 3 za zabijanje prozora

(ako nemate pojma o odabiru prozora, zadržite zadanu 3)

primjer: dft (a, 8, 0,5, 0, 30, 0,5, 10, 3); ovdje je niz elemenata veličine 8 koje treba provjeriti za 0 Hz do 30 Hz sa 0,5 koraka (0, 0,5, 1, 1,5,…, 29, 29,5, 30) 10 ponavljanja i prozora za udaranje

ovdje je moguće koristiti niz većih dimenzija koliko arduino može podnijeti.

Korak 4: Izlaz:

Izlaz
Izlaz
Izlaz
Izlaz

ako komentarišete

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

iz koda serijski ploter će dati prirodu frekvencijskog spektra i ako ne serijski monitor bi dao frekvenciju svojom amplitudom.

Korak 5: Provjerite različite prozore i veličine uzoraka:

Provjera različitih veličina prozora i uzoraka
Provjera različitih veličina prozora i uzoraka

na slici se frekvencija sinusnog vala mjeri različitim postavkama.

Korak 6: Primjer:

Primjer
Primjer

na slici se uspoređuje transformacija podataka pomoću SciLaba i arduina.

Preporučuje se: