INHOUDSOPGAWE:

Arduino: Frequency Transform (DFT): 6 stappe
Arduino: Frequency Transform (DFT): 6 stappe

Video: Arduino: Frequency Transform (DFT): 6 stappe

Video: Arduino: Frequency Transform (DFT): 6 stappe
Video: The Discrete Fourier Transform: Most Important Algorithm Ever? 2024, November
Anonim
Arduino: Frequency Transform (DFT)
Arduino: Frequency Transform (DFT)

hierdie program is om die frekwensietransformasie op arduino te bereken met beslagbeheer oor parameters. dit word opgelos met behulp van desecrate fouriior transform.

dit is nie FFT nie

FFT is 'n algoritme wat gebruik word om DFT met kleiner tyd op te los.

Kode vir FFT kan hier gevind word.

Stap 1: Hoe dit werk (konsep):

Hoe dit werk (konsep)
Hoe dit werk (konsep)
Hoe dit werk (konsep)
Hoe dit werk (konsep)

Gegewe die program vir frekwensietransformasie bied uitstekende beheer oor die uitvoer wat u benodig. hierdie program evalueer die frekwensiebereik wat die gebruiker op die gegewe invoer vir die datastel gegee het.

  • In figuur word 'n datastel gemaak van twee frekwensies met die naam f2 en f5, wat getoets moet word. f2 en f5 is ewekansige name vir twee frekwensies, hoër getalle vir relatief hoër frekwensies. hier het kleiner frekwensie f2 'n hoër amplitude en f5 het 'n kleiner amplitude.
  • Dit kan wiskundig aangetoon word dat die som van vermenigvuldiging van twee harmoniese datastelle met verskillende frekwensies tot nul neig ('n groter aantal data kan lei tot 'n beslaglegging). In ons geval As hierdie twee vermenigvuldigingsfrekwensies dieselfde (of baie naby) frekwensie het, is die som van vermenigvuldiging 'n nulnommer waar amplitude afhang van die amplitude van data.
  • om 'n spesifieke frekwensie op te spoor, gegewe datastel kan vermenigvuldig word met verskillende toetsfrekwensies en die resultaat kan 'n komponent van die frekwensie in data gee.

Stap 2: Hoe dit werk (in kode):

Hoe dit werk (in kode)
Hoe dit werk (in kode)
Hoe dit werk (in kode)
Hoe dit werk (in kode)

vir die gegewe gegewens (f2+f5) is een vir een f1 tot f6 vermenigvuldig en die waarde van som word aangeteken. die finale som verteenwoordig die inhoud van die frekwensie. Die rus (nie-ooreenstemmende) frekwensie moet verkieslik nul wees, maar in werklike gevalle is dit nie moontlik nie. Om die som nul te maak, moet u 'n oneindige grootte datastelle hê.

  • soos getoon kan word in figuur f1 tot f6 proeffrekwensie en die vermenigvuldiging daarvan met datastel op elke punt word getoon.
  • in die tweede figuur word die opsomming van die vermenigvuldiging by elke frekwensie geteken. twee pieke by 1 en 5 is identifiseerbaar.

Met dieselfde benadering vir ewekansige data kan ons dus vir soveel frekwensies evalueer en die frekwensie -inhoud van data ontleed.

Stap 3: Gebruik kode vir frekwensie -analise:

Gebruik kode vir frekwensie -analise
Gebruik kode vir frekwensie -analise

Met 'n voorbeeld kan ons hierdie kode gebruik om DFT van vierkantgolf te vind.

plak eers aangehegte kode (dft -funksie) na lus, soos op die prentjie

8 BEPALINGS WAT SPESIFISEER MOET WORD

  1. 'n verskeidenheid waarvan dft geneem moet word
  2. grootte van 'n skikking
  3. tydsinterval tussen 2 lesings in skikking in milliSECONDS
  4. laer waarde van frekwensiebereik in Hz
  5. boonste waarde van frekwensiebereik in Hz
  6. grootte van stappe vir frekwensiebereik
  7. herhaling van 'n sein (minimum 1) groter getal beslag akkuraatheid, maar verhoogde oplossingstyd
  8. venster funksie:

    0 vir geen venster1 vir platvenster 2 vir hann-venster 3 vir venstervenster

(hou standaard 3 as u geen idee het oor die keuse van venster nie)

voorbeeld: dft (a, 8, 0.5, 0, 30, 0.5, 10, 3); hier is a 'n skikking van grootte 8 -element wat gekontroleer moet word op 0 Hz tot 30 Hz met 0,5 stap (0, 0,5, 1, 1,5, …, 29, 29,5, 30) 10 herhalings- en hamvenster

hier is dit moontlik om 'n groter skikking te gebruik, soveel as wat arduino kan hanteer.

Stap 4: Uitset:

Uitset
Uitset
Uitset
Uitset

as jy kommentaar lewer

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

vanaf die kode seriële plotter gee die aard van die frekwensiespektrum 'n Seriële monitor, indien nie, 'n frekwensie met die amplitude.

Stap 5: Kontroleer verskillende venster- en steekproefgroottes:

Kontroleer verskillende vensters en voorbeeldgroottes
Kontroleer verskillende vensters en voorbeeldgroottes

in figuur word die frekwensie van sinusgolf gemeet met behulp van verskillende instellings.

Stap 6: Voorbeeld:

Voorbeeld
Voorbeeld

in figuurtransformasie van data met SciLab en arduino word vergelyk.

Aanbeveel: