Obsah:

Arduino: Frekvenčná transformácia (DFT): 6 krokov
Arduino: Frekvenčná transformácia (DFT): 6 krokov

Video: Arduino: Frekvenčná transformácia (DFT): 6 krokov

Video: Arduino: Frekvenčná transformácia (DFT): 6 krokov
Video: Основы ЦОС: 18. Преобразование Фурье (ссылки на скачивание скриптов в описании) 2024, Júl
Anonim
Arduino: Frekvenčná transformácia (DFT)
Arduino: Frekvenčná transformácia (DFT)

tento program má vypočítať frekvenčnú transformáciu na arduine s kontrolou batérií nad parametrami. Rieši sa to znesvätením štvornásobnej transformácie.

toto nie je FFT

FFT je algoritmus používaný na riešenie DFT s menším časom.

Kód pre FFT nájdete tu.

Krok 1: Ako to funguje (koncept):

Ako to funguje (koncept)
Ako to funguje (koncept)
Ako to funguje (koncept)
Ako to funguje (koncept)

Daný program pre frekvenčnú transformáciu poskytuje skvelú kontrolu nad požadovaným výstupom. tento program vyhodnocuje frekvenčný rozsah daný užívateľom na danom vstupe pre množinu údajov.

  • Na obrázku je súbor údajov vytvorený z dvoch frekvencií pomenovaných f2 a f5, ktoré je potrebné testovať. f2 a f5 sú náhodné názvy pre dve frekvencie, vyššie číslo pre relatívne vyššiu frekvenciu. tu menšia frekvencia f2 má vyššiu amplitúdu a f5 má menšiu amplitúdu.
  • Matematicky je možné ukázať, že -súhrn násobenia dvoch harmonických súborov údajov s rôznou frekvenciou má tendenciu k nule (vyšší počet údajov môže viesť k výsledku cesta). V našom prípade Ak tieto dve multiplikačné frekvencie majú rovnakú (alebo veľmi blízku) frekvenciu, tento súčet násobenia je nenulové číslo, kde amplitúda závisí od amplitúdy údajov.
  • na detekciu špecifickej frekvencie môže byť daný súbor údajov vynásobený rôznymi testovacími frekvenciami a výsledkom môže byť dátová zložka tejto frekvencie.

Krok 2: Ako to funguje (v kóde):

Ako to funguje (v kóde)
Ako to funguje (v kóde)
Ako to funguje (v kóde)
Ako to funguje (v kóde)

pre dané údaje (f2+f5) sa jeden po druhom f1 až f6 vynásobí a hodnota súčtu sa zaznamená. tento konečný súčet predstavuje obsah danej frekvencie. zvyšok (nesúlad) frekvencie by mal byť ideálne nulový, ale v skutočnom prípade to nie je možné. Aby bola suma nulová, je potrebné mať nekonečnú veľkosť množín údajov.

  • ako je možné vidieť na obrázku f1 až f6, skúšobná frekvencia a je ukázané jej násobenie množinou údajov v každom bode.
  • na druhom obrázku je vynesená súčet tohto násobenia pre každú frekvenciu. dva vrcholy na 1 a 5 sú identifikovateľné.

takže pomocou rovnakého prístupu pre náhodné údaje môžeme vyhodnotiť toľko frekvencií a analyzovať frekvenčný obsah údajov.

Krok 3: Použitie kódu na analýzu frekvencie:

Použitie kódu na analýzu frekvencie
Použitie kódu na analýzu frekvencie

napríklad pomocou tohto kódu nájdeme DFT štvorcovej vlny.

najskôr vložte priložený kód (funkcia dft) za slučku podľa obrázku

8 PODMIENOK, KTORÉ POTREBUJE BYŤ ŠPECIFICKÉ

  1. pole, z ktorého je potrebné vziať dft
  2. veľkosť poľa
  3. časový interval medzi 2 údajmi v poli v milisekundách
  4. nižšia hodnota frekvenčného rozsahu v Hz
  5. horná hodnota frekvenčného rozsahu v Hz
  6. veľkosť krokov pre frekvenčný rozsah
  7. opakovanie signálu (minimálne 1) s vyššou presnosťou čísla cesta, ale predĺžený čas riešenia
  8. funkcia okna:

    0 pre žiadne okno1 pre ploché okno 2 pre Hannovo okno 3 pre vyklápacie okno

(Ak nemáte predstavu o výbere okna, ponechajte predvolené 3)

príklad: dft (a, 8, 0,5, 0, 30, 0,5, 10, 3); tu a je pole prvku veľkosti 8, ktoré sa má kontrolovať na 0 Hz až 30 Hz v 0,5 kroku (0, 0,5, 1, 1,5,…, 29, 29,5, 30) 10 opakovaní a hammingovho okna

tu je možné použiť pole väčších rozmerov, aké arduino zvládne.

Krok 4: Výstup:

Výkon
Výkon
Výkon
Výkon

ak sa vyjadríš

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

z kódového sériového plotra dá povahu frekvenčného spektra a ak nie, sériový monitor by dával frekvenciu so svojou amplitúdou.

Krok 5: Kontrola rôznych veľkostí okien a vzoriek:

Kontrola rôznych veľkostí okien a vzoriek
Kontrola rôznych veľkostí okien a vzoriek

na obrázku je frekvencia sínusovej vlny meraná pomocou iného nastavenia.

Krok 6: Príklad:

Príklad
Príklad

na obrázku je porovnaná transformácia údajov pomocou SciLab a arduina.

Odporúča: