Turinys:

„Arduino“: dažnio transformacija (DFT): 6 žingsniai
„Arduino“: dažnio transformacija (DFT): 6 žingsniai

Video: „Arduino“: dažnio transformacija (DFT): 6 žingsniai

Video: „Arduino“: dažnio transformacija (DFT): 6 žingsniai
Video: Arduino Based Frequency meter v2.0 (AC 230v 50Hz meter) 2024, Lapkritis
Anonim
„Arduino“: dažnio transformacija (DFT)
„Arduino“: dažnio transformacija (DFT)

ši programa yra apskaičiuoti dažnio transformaciją „arduino“su tešlos kontrole per parametrus. tai išsprendžiama naudojant išniekintą keturių ar transformų.

tai nėra FFT

FFT yra algoritmas, naudojamas DFT išspręsti trumpiau.

FFT kodą rasite čia.

1 žingsnis: kaip tai veikia (koncepcija):

Kaip tai veikia (koncepcija)
Kaip tai veikia (koncepcija)
Kaip tai veikia (koncepcija)
Kaip tai veikia (koncepcija)

Pateikta dažnio keitimo programa puikiai kontroliuoja reikiamą išvestį. ši programa įvertina dažnių diapazoną, kurį vartotojas nurodo į duomenų rinkinio įvestį.

  • Paveiksle duomenų rinkinys, sudarytas iš dviejų dažnių, pavadintų f2 ir f5, kuriuos reikia išbandyti. f2 ir f5 yra atsitiktiniai dviejų dažnių pavadinimai, didesnis skaičius - santykinai didesniam dažniui. čia mažesnis dažnis f2 turi didesnę amplitudę, o f5 - mažesnę amplitudę.
  • Matematiškai galima parodyti, kad dviejų skirtingų dažnių harmoninių duomenų rinkinio daugybos suma yra lygi nuliui (didesnis duomenų skaičius gali lemti tešlos rezultatą). Mūsų atveju, jei šie du daugybos dažniai turi tą patį (arba labai artimą) dažnį, ta daugybos suma yra ne nulinis skaičius, kai amplitudė priklauso nuo duomenų amplitudės.
  • Norėdami aptikti konkretų dažnį, duomenų rinkinį galima padauginti iš įvairių bandymų dažnių ir rezultatas gali suteikti to dažnio komponentą duomenyse.

2 veiksmas: kaip tai veikia (kodu):

Kaip tai veikia (kodu)
Kaip tai veikia (kodu)
Kaip tai veikia (kodu)
Kaip tai veikia (kodu)

tie duomenys (f2+f5) po vieną nuo f1 iki f6 yra dauginami ir sumos vertė pažymima. ta galutinė suma atspindi to dažnio turinį. poilsio (nesuderinamumo) dažnis idealiu atveju turėtų būti lygus nuliui, tačiau realiu atveju tai neįmanoma. kad suma būtų lygi nuliui, reikia turėti begalinį duomenų rinkinių dydį.

  • kaip parodyta paveikslėliuose nuo f1 iki f6, parodomas bandymų dažnis ir jo dauginimas naudojant duomenų rinkinį kiekviename taške.
  • antrame paveiksle pavaizduota to daugybos suma kiekvienu dažniu. atpažįstamos dvi smailės ties 1 ir 5.

taigi, taikydami tą patį metodą atsitiktiniams duomenims, galime įvertinti tiek dažnį ir analizuoti duomenų dažnio turinį.

3 žingsnis: kodo naudojimas dažnio analizei:

Dažnio analizės kodo naudojimas
Dažnio analizės kodo naudojimas

Pavyzdžiui, naudokite šį kodą, kad surastumėte kvadratinės bangos DFT.

pirmiausia įklijuokite pridėtą kodą (dft funkcija) po ciklo, kaip parodyta paveikslėlyje

8 SĄLYGOS, kurias reikia nurodyti

  1. masyvas, kurio dft reikia paimti
  2. masyvo dydis
  3. laiko intervalas tarp 2 matavimų masyve milisekundėmis
  4. mažesnė dažnių diapazono vertė Hz
  5. viršutinė dažnių diapazono vertė Hz
  6. dažnių diapazono žingsnių dydis
  7. signalo kartojimas (mažiausiai 1) didesnis tešlos skaičiaus tikslumas, bet ilgesnis tirpalo laikas
  8. lango funkcija:

    0, jei nėra lango

(jei neturite supratimo apie lango pasirinkimą, palikite numatytąjį 3)

pavyzdys: dft (a, 8, 0,5, 0, 30, 0,5, 10, 3); čia a yra 8 dydžio elemento masyvas, kurį reikia patikrinti nuo 0 Hz iki 30 Hz su 0,5 žingsniu (0, 0,5, 1, 1,5,…, 29, 29,5, 30) 10 kartojimo ir plakimo langas

čia galima naudoti didesnio dydžio masyvą tiek, kiek gali sutvarkyti arduino.

4 žingsnis: išvestis:

Išėjimas
Išėjimas
Išėjimas
Išėjimas

jei pakomentuosit

Serial.print (f); Serial.print („\ t“);

iš kodo serijinis braižytuvas suteiks dažnių spektro pobūdį, jei ne Serijinis monitorius duotų dažnį su savo amplitude.

5 veiksmas: įvairių langų ir pavyzdžių dydžių tikrinimas:

Įvairių langų ir pavyzdžių dydžių tikrinimas
Įvairių langų ir pavyzdžių dydžių tikrinimas

paveiksle sinusinės bangos dažnis matuojamas naudojant skirtingus nustatymus.

6 veiksmas: pavyzdys:

Pavyzdys
Pavyzdys

paveiksle lyginamas duomenų transformavimas naudojant „SciLab“ir „arduino“.

Rekomenduojamas: