Innholdsfortegnelse:
- Trinn 1: Slik fungerer det (konsept):
- Trinn 2: Slik fungerer det (i kode):
- Trinn 3: Bruke kode for frekvensanalyse:
- Trinn 4: Utgang:
- Trinn 5: Kontroll av forskjellige vindus- og prøvestørrelser:
- Trinn 6: Eksempel:
Video: Arduino: Frequency Transform (DFT): 6 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
dette programmet er å beregne frekvens transform på arduino med batter kontroll over parametere. det løses ved hjelp av desecrate fouriior transform.
dette er ikke FFT
FFT er en algoritme som brukes til å løse DFT med mindre tid.
Koden for FFT finner du her.
Trinn 1: Slik fungerer det (konsept):
Gitt program for frekvensomforming gir god kontroll over utgangen du trenger. dette programmet evaluerer frekvensområdet gitt av brukeren ved gitt inngang for datasett.
- I figur et datasett laget av to frekvenser som heter f2 og f5 gitt som må testes. f2 og f5 er tilfeldige navn for to frekvenser, høyere tall for relativt høyere frekvens. her har mindre frekvens f2 høyere amplitude og f5 har mindre amplitude.
- Det kan vises matematisk at -summasjon av multiplikasjon av to harmoniske datasett med forskjellig frekvens har en tendens til null (høyere antall data kan føre til batterresultat). I vårt tilfelle Hvis disse to multiplikasjonsfrekvensene har samme (eller veldig nære) frekvens, er summen av multiplikasjon et nullnummer der amplituden avhenger av datamplituden.
- for å oppdage spesifikk frekvens gitt datasett kan multipliseres med forskjellige testfrekvenser, og resultatet kan gi komponent av den frekvensen i data.
Trinn 2: Slik fungerer det (i kode):
for de gitte dataene (f2+f5) er f1 til f6 én etter én multiplisert og summenes verdi noteres. den siste summen representerer innholdet i den frekvensen. resten (ikke-matchende) frekvens bør ideelt sett være null, men det er ikke mulig i virkelige tilfeller. for å gjøre summen null er det nødvendig å ha uendelig størrelse på datasett.
- som kan vises i figur f1 til f6 prøvefrekvens og dens multiplikasjon med datasett på hvert punkt vises.
- i andre figur er summen av den multiplikasjonen ved hver frekvens plottet. to topper på 1 og 5 er identifiserbare.
så ved å bruke samme tilnærming for tilfeldige data kan vi evaluere for så mange frekvenser og analysere frekvensinnhold i data.
Trinn 3: Bruke kode for frekvensanalyse:
for et eksempel kan du bruke denne koden til å finne DFT for firkantbølge.
lim først vedlagte kode (dft -funksjon) etter sløyfe som vist bilde
8 VILKÅR SOM MÅ SPESIFISERES
- en rekke som dft må tas
- størrelsen på en matrise
- tidsintervall mellom 2 avlesninger i array i milliSECONDS
- lavere verdi av frekvensområde i Hz
- øvre verdi av frekvensområdet i Hz
- trinnstørrelse for frekvensområde
- gjentagelse av et signal (minimum 1) høyere nøyaktighet på antall batterier, men økt løsningstid
-
vindusfunksjon:
0 for ikke vindu1 for flatvindu 2 for hann vindu 3 for hamring av vindu
(hvis du ikke har noen ide om valg av vindu, behold standard 3)
eksempel: dft (a, 8, 0,5, 0, 30, 0,5, 10, 3); her er a en matrise med størrelse 8 -element som skal kontrolleres for 0 Hz til 30 Hz med 0,5 trinn (0, 0,5, 1, 1,5,…, 29, 29,5, 30) 10 gjentagelses- og hamringvindu
her er det mulig å bruke større matrise så mye som arduino kan håndtere.
Trinn 4: Utgang:
hvis du kommenterer
Serial.print (f); Serial.print ("\ t");
fra kode seriell plotter vil gi karakteren av frekvensspekteret en hvis ikke Seriell monitor ville gi frekvens med sin amplitude.
Trinn 5: Kontroll av forskjellige vindus- og prøvestørrelser:
i figur måles sinusbølgens frekvens ved hjelp av forskjellige innstillinger.
Trinn 6: Eksempel:
i figurtransformasjon av data ved hjelp av SciLab og arduino sammenlignes.
Anbefalt:
Hvordan bruke Arduino DDS Frequency Signal Generator AD9850: 7 trinn
Hvordan bruke Arduino DDS Frequency Signal Generator AD9850: I denne opplæringen lærer vi hvordan du lager en Frequency Signal Generator ved hjelp av en AD9850 -modul og Arduino. Se videoen! Merk: Jeg klarte å få frekvens opp til +50MHz, men signalkvaliteten blir verre med de høyere frekvensene
EasyFFT: Fast Fourier Transform (FFT) for Arduino: 6 trinn
EasyFFT: Fast Fourier Transform (FFT) for Arduino: Måling av frekvens fra det fangede signalet kan være en vanskelig oppgave, spesielt på Arduino ettersom den har lavere beregningseffekt. Det er metoder tilgjengelig for å fange nullkryssing hvor frekvensen blir fanget ved å sjekke hvor mange ganger
Fast Hartley Transform Spectral Stethoscope: 22 trinn
Fast Hartley Transform Spectral Stethoscope: I denne instruksjonsfilen lærer du hvordan du lager et spektralstetoskop ved hjelp av den raske Hartley -transformasjonen. Dette kan brukes til å visualisere hjerte- og lungelyder
Transform-a-Car: Fjernstyrt til selvstyrt: 4 trinn
Transform-a-Car: Remote Controlled to Self Controlled: Dette er et hack på en RC-bil med en ødelagt fjernkontroll. Du kan finne mye på garasjesalg
[DIY] Transform mobiltelefon batterilader: 6 trinn
[DIY] Transform mobiltelefon batterilader: Mobiltelefonens batterilader er en forkortelse for seteladeren, noe som betyr at batterikortet er plassert på toppen for lading, noe som er veldig praktisk å bruke. Laderen er først og fremst en lader designet for en eller en type mobil