Innehållsförteckning:
- Steg 1: Hur det fungerar (koncept):
- Steg 2: Hur det fungerar (i kod):
- Steg 3: Använda kod för frekvensanalys:
- Steg 4: Utmatning:
- Steg 5: Kontrollera olika fönster- och provstorlekar:
- Steg 6: Exempel:
Video: Arduino: Frequency Transform (DFT): 6 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:38
detta program är att beräkna frekvensomformning på arduino med smetkontroll över parametrar. det löses med desekrat fouriior -transform.
detta är inte FFT
FFT är en algoritm som används för att lösa DFT med mindre tid.
Kod för FFT finns här.
Steg 1: Hur det fungerar (koncept):
Givet program för frekvensomformning ger stor kontroll över utgången du behövde. detta program utvärderar frekvensintervallet som ges av användaren vid given ingång för datamängden.
- I figur en datauppsättning gjord av två frekvenser med namnet f2 och f5 givet som måste testas. f2 och f5 är slumpmässiga namn för två frekvenser, högre tal för relativt högre frekvens. här har mindre frekvens f2 högre amplitud och f5 har mindre amplitud.
- Det kan matematiskt visas att -summation av multiplikation av två harmoniska datamängder med olika frekvens tenderar till noll (högre antal data kan leda till smetresultat). I vårt fall Om dessa två multiplikationsfrekvenser har samma (eller mycket nära) frekvens är summan av multiplikation ett icke -nolltal där amplituden beror på dataens amplitud.
- för att upptäcka specifik frekvens kan given datamängd multipliceras med olika testfrekvenser och resultatet kan ge komponent av den frekvensen i data.
Steg 2: Hur det fungerar (i kod):
för den givna data (f2+f5) en efter en f1 till f6 är multiplikationer och värdet av summan noteras. den slutliga summan representerar innehållet i den frekvensen. vilans (icke-matchande) frekvens bör helst vara noll men det är inte möjligt i verkliga fall. för att göra summan noll krävs det att ha oändliga storleken på datamängder.
- som kan visas i figur f1 till f6 provfrekvens och dess multiplikation med datauppsättning vid varje punkt visas.
- i andra figuren summeras den multiplikationen vid varje frekvens. två toppar vid 1 och 5 är identifierbara.
så med samma metod för slumpmässiga data kan vi utvärdera för så många frekvenser och analysera frekvensinnehåll för data.
Steg 3: Använda kod för frekvensanalys:
för ett exempel kan vi använda denna kod för att hitta DFT för fyrkantvåg.
klistra först in bifogad kod (dft -funktion) efter slinga som bilden visar
8 VILLKOR SOM MÅSTE SPECIFICERAS
- en uppsättning som dft måste tas
- storleken på en matris
- tidsintervall mellan 2 avläsningar i array i milliSECONDS
- lägre värde för frekvensområdet i Hz
- övre värdet på frekvensområdet i Hz
- stegstorlek för frekvensområde
- upprepning av en signal (minst 1) högre sifferslagsnoggrannhet men ökad lösningstid
-
fönsterfunktion:
0 för inget fönster1 för plattfönster 2 för hann fönster 3 för hammarfönster
(om du inte har någon aning om att välja fönster behåll standard 3)
exempel: dft (a, 8, 0,5, 0, 30, 0,5, 10, 3); här är a en array med storlek 8 -element som ska kontrolleras för 0 Hz till 30 Hz med 0,5 steg (0, 0,5, 1, 1,5,…, 29, 29,5, 30) 10 upprepnings- och hammarfönster
här är det möjligt att använda större storlek så mycket som arduino kan hantera.
Steg 4: Utmatning:
om du kommenterar
Serial.print (f); Serial.print ("\ t");
från kod seriell plotter kommer att ge typ av frekvensspektrum en om inte Seriell monitor skulle ge frekvens med dess amplitud.
Steg 5: Kontrollera olika fönster- och provstorlekar:
i figur mäts sinusvågens frekvens med olika inställningar.
Steg 6: Exempel:
i figuromvandling av data med SciLab och arduino jämförs.
Rekommenderad:
Hur man använder Arduino DDS Frequency Signal Generator AD9850: 7 steg
Hur man använder Arduino DDS Frequency Signal Generator AD9850: I den här självstudien lär vi oss hur man gör en Frequency Signal Generator med en AD9850 -modul och Arduino. Se videon! Obs: Jag lyckades få frekvens upp till +50MHz men signalkvaliteten blir sämre med de högre frekvenserna
EasyFFT: Fast Fourier Transform (FFT) för Arduino: 6 steg
EasyFFT: Fast Fourier Transform (FFT) för Arduino: Mätning av frekvens från den fångade signalen kan vara en svår uppgift, särskilt på Arduino eftersom den har lägre beräkningseffekt. Det finns metoder för att fånga nollkorsning där frekvensen fångas genom att kontrollera hur många gånger
Snabbt Hartley Transform Spectral Stetoskop: 22 steg
Fast Hartley Transform Spectral Stetoscope: I detta instruerbara lär du dig hur du gör ett spektralstetoskop med hjälp av den snabba hartley -transformen. Detta kan användas för att visualisera hjärt- och lungljud
Transform-a-Car: Fjärrstyrd till Självkontrollerad: 4 steg
Transform-a-Car: Remote Controlled to Self Controlled: Detta är ett hack på en RC-bil med en trasig fjärrkontroll. Du kan hitta gott om garageförsäljning
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)