Talaan ng mga Nilalaman:

Arduino: Frequency Transform (DFT): 6 na Hakbang
Arduino: Frequency Transform (DFT): 6 na Hakbang

Video: Arduino: Frequency Transform (DFT): 6 na Hakbang

Video: Arduino: Frequency Transform (DFT): 6 na Hakbang
Video: EasyFFT: Fast Fourier Transform (FFT) for Arduino 2024, Hulyo
Anonim
Arduino: Frequency Transform (DFT)
Arduino: Frequency Transform (DFT)

Ang program na ito ay upang makalkula ang dalas ng pagbabago sa arduino na may kontrol ng batter sa mga parameter. nalulutas ito gamit ang paglapastangan sa apat na pagbabago.

hindi ito FFT

Ang FFT ay ginamit na algorithm upang malutas ang DFT na may mas maliit na oras.

Ang code para sa FFT ay matatagpuan dito.

Hakbang 1: Paano Ito Gumagawa (konsepto):

Paano Ito Gumagana (konsepto)
Paano Ito Gumagana (konsepto)
Paano Ito Gumagana (konsepto)
Paano Ito Gumagana (konsepto)

Ang naibigay na programa para sa dalas ng pagbabago ay nagbibigay ng mahusay na kontrol sa output na kinakailangan mo. Sinusuri ng programang ito ang saklaw ng dalas na ibinigay ng gumagamit sa ibinigay na input para sa hanay ng data.

  • Sa figure isang set ng data na gawa sa dalawang frequency na pinangalanang f2 at f5 na ibinigay na kailangang subukin. Ang f2 at f5 ay mga random na pangalan para sa dalawang dalas, mas mataas na bilang para sa medyo mas mataas na dalas. dito mas maliit ang dalas f2 ay may mas mataas na amplitude at f5 ay may mas maliit na amplitude.
  • Maaari itong maipakita sa matematika na -kumpleto ng pagpaparami ng dalawang magkatugma na data-set na mayroong magkakaibang dalas ay may gawi sa zero (mas mataas na bilang ng data ay maaaring humantong sa resulta ng humampas). Sa aming kaso Kung ang dalawang dalas ng pagpaparami ay may pareho (o napakalapit) na dalas ng kabuuan ng pagpaparami ay bilang na hindi zero kung saan ang amplitude ay nakasalalay sa amplitude ng data.
  • upang tuklasin ang tukoy na dalas na ibinigay ng data-set ay maaaring multiply ng iba't ibang mga frequency ng pagsubok at resulta ay maaaring magbigay ng bahagi ng dalas na iyon sa data.

Hakbang 2: Paano Ito Gumagana (sa Code):

Paano Ito Gumagana (sa Code)
Paano Ito Gumagana (sa Code)
Paano Ito Gumagana (sa Code)
Paano Ito Gumagana (sa Code)

para sa naibigay na data (f2 + f5) isa-isa f1 hanggang f6 ay multiply at ang halaga ng kabuuan ay nabanggit. ang pangwakas na kabuuan ay kumakatawan sa nilalaman ng dalas na iyon. Ang pahinga (hindi pagtutugma) ng dalas ay dapat na perpektong zero ngunit hindi posible sa totoong kaso. upang makagawa ng kabuuan ng zero kinakailangan na magkaroon ng walang katapusang laki ng mga set ng data.

  • tulad ng maipapakita sa figure f1 hanggang f6 dalas ng pagsubok at ang pagpaparami nito sa set ng data sa bawat punto ay ipinapakita.
  • sa paglalagay ng pangalawang pigura ng pagpaparami sa bawat dalas ay naka-plot. ang dalawang tuktok sa 1 at 5 ay makikilala.

kaya gumagamit ng parehong diskarte para sa isang random na data maaari naming suriin para sa napakaraming dalas at pag-aralan ang nilalaman ng dalas ng data.

Hakbang 3: Paggamit ng Code para sa Pagsusuri ng Frequency:

Paggamit ng Code para sa Pagsusuri ng Frequency
Paggamit ng Code para sa Pagsusuri ng Frequency

para sa isang halimbawa hinahayaan gamitin ang code na ito upang makahanap ng DFT ng square wave.

unang i-paste ang naka-attach na code (dft function) pagkatapos ng loop tulad ng ipinakita na imahe

8 TERMS NA DAPAT NA TANGGUNIN

  1. isang array na kung saan dft kailangang kunin
  2. laki ng isang array
  3. agwat ng oras sa pagitan ng 2 pagbabasa sa array sa milliSECONDS
  4. mas mababang halaga ng saklaw ng dalas sa Hz
  5. itaas na halaga ng saklaw ng dalas sa Hz
  6. laki ng mga hakbang para sa saklaw ng dalas
  7. pag-uulit ng isang senyas (minimum na 1) mas mataas na bilang ng batter na kawastuhan ngunit nadagdagan ang oras ng solusyon
  8. pagpapaandar ng window:

    0 para sa walang window1 para sa flat-top window 2 para hann window 3 para sa hamming window

(kung wala kang anumang ideya tungkol sa pagpili ng window panatilihin ang default 3)

halimbawa: dft (a, 8, 0.5, 0, 30, 0.5, 10, 3); narito ang isang hanay ng sangkap na laki ng 8 upang masuri para sa 0 Hz hanggang 30 Hz na may 0.5 hakbang (0, 0.5, 1, 1.5,…, 29, 29.5, 30) 10 ulitin at hamming window

dito posible na gumamit ng mas malaking sukat ng array hangga't kayang hawakan ng arduino.

Hakbang 4: Output:

Output
Output
Output
Output

kung magkomento ka

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

mula sa code serial plotter ay magbibigay ng likas na katangian ng frequency spectrum an kung hindi Serial monitor ay magbibigay ng dalas ng amplitude nito.

Hakbang 5: Pagsuri sa Iba't ibang Mga Laki ng Window at Sample:

Sinusuri ang Iba't ibang Mga Laki ng Window at Sample
Sinusuri ang Iba't ibang Mga Laki ng Window at Sample

sa pigura, ang dalas ng alon ng sine ay sinusukat gamit ang iba't ibang setting.

Hakbang 6: Halimbawa:

Halimbawa
Halimbawa

sa figure transform ng data gamit ang SciLab at arduino ay inihambing.

Inirerekumendang: