Spisu treści:

Arduino: Transformacja częstotliwości (DFT): 6 kroków
Arduino: Transformacja częstotliwości (DFT): 6 kroków

Wideo: Arduino: Transformacja częstotliwości (DFT): 6 kroków

Wideo: Arduino: Transformacja częstotliwości (DFT): 6 kroków
Wideo: Do czego ta matma? Car audio i transformata Fouriera 2024, Lipiec
Anonim
Arduino: Transformacja częstotliwości (DFT)
Arduino: Transformacja częstotliwości (DFT)

ten program ma obliczyć transformację częstotliwości na arduino z kontrolą ciasta nad parametrami. Rozwiązuje się go za pomocą zbezczeszczonej transformacji fouriior.

to nie jest FFT

FFT to algorytm używany do rozwiązywania DFT w krótszym czasie.

Kod FFT można znaleźć tutaj.

Krok 1: Jak to działa (koncepcja):

Jak to działa (koncepcja)
Jak to działa (koncepcja)
Jak to działa (koncepcja)
Jak to działa (koncepcja)

Dany program do transformacji częstotliwości zapewnia doskonałą kontrolę nad wymaganym wyjściem. program ten ocenia zakres częstotliwości podany przez użytkownika na danym wejściu dla zbioru danych.

  • Na rysunku zestaw danych składający się z dwóch podanych częstotliwości o nazwach f2 i f5, które należy przetestować. f2 i f5 to losowe nazwy dla dwóch częstotliwości, wyższa liczba dla relatywnie wyższej częstotliwości. tutaj mniejsza częstotliwość f2 ma większą amplitudę, a f5 ma mniejszą amplitudę.
  • Z matematycznego punktu widzenia można wykazać, że -sumowanie mnożenia dwóch zbiorów danych harmonicznych o różnej częstotliwości dąży do zera (większa liczba danych może skutkować biciem). W naszym przypadku Jeśli te dwie częstości mnożenia mają taką samą (lub bardzo zbliżoną) częstotliwość, suma mnożenia jest liczbą niezerową, gdzie amplituda zależy od amplitudy danych.
  • w celu wykrycia określonej częstotliwości dany zestaw danych można pomnożyć przez różne częstotliwości testowe, a wynik może dać składnik tej częstotliwości w danych.

Krok 2: Jak to działa (w kodzie):

Jak to działa (w kodzie)
Jak to działa (w kodzie)
Jak to działa (w kodzie)
Jak to działa (w kodzie)

dla tych danych (f2+f5) kolejno f1 do f6 są mnożone i odnotowywana jest wartość sumy. ta końcowa suma reprezentuje zawartość tej częstotliwości. reszta (niedopasowanie) częstotliwości powinna być idealnie zerowa, ale w rzeczywistości nie jest to możliwe. aby suma była zerowa, wymagane jest posiadanie nieskończonego rozmiaru zbiorów danych.

  • jak widać na rys. f1 do f6 częstotliwość prób i pokazano jej mnożenie przez zestaw danych w każdym punkcie.
  • na drugiej figurze wykreśla się sumę tego mnożenia przy każdej częstotliwości. można zidentyfikować dwa piki przy 1 i 5.

więc używając tego samego podejścia do losowych danych, możemy ocenić dla tak wielu częstotliwości i przeanalizować zawartość częstotliwości danych.

Krok 3: Używanie kodu do analizy częstotliwości:

Korzystanie z kodu do analizy częstotliwości
Korzystanie z kodu do analizy częstotliwości

na przykład użyjmy tego kodu, aby znaleźć DFT fali prostokątnej.

najpierw wklej załączony kod (funkcja dft) po pętli, jak pokazano na obrazku

8 TERMINÓW, KTÓRE NALEŻY OKREŚLIĆ

  1. tablica, z której należy pobrać dft
  2. rozmiar tablicy
  3. odstęp czasowy między 2 odczytami w tablicy w milisekundach
  4. dolna wartość zakresu częstotliwości w Hz
  5. górna wartość zakresu częstotliwości w Hz
  6. wielkość kroków dla zakresu częstotliwości
  7. powtórzenie sygnału (minimum 1) wyższa liczba dokładność ciasta, ale dłuższy czas rozwiązania
  8. funkcja okna:

    0 dla braku okna 1 dla okna z płaskim dachem 2 dla okna Hanna 3 dla okna Hamminga

(jeśli nie masz pojęcia o wyborze okna, zachowaj domyślne 3)

przykład: dft(a, 8, 0,5, 0, 30, 0,5, 10, 3); tutaj a jest tablicą o rozmiarze 8 elementów do sprawdzenia dla 0 Hz do 30 Hz z krokiem 0,5 (0, 0,5, 1, 1,5, …, 29, 29,5, 30) 10 powtórzeń i okno hamminga

tutaj możliwe jest użycie tablic o większych rozmiarach, o ile arduino jest w stanie obsłużyć.

Krok 4: Wyjście:

Wyjście
Wyjście
Wyjście
Wyjście

jeśli skomentujesz

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

z kodu szeregowego ploter poda charakter widma częstotliwości, a jeśli nie szeregowy monitor poda częstotliwość wraz ze swoją amplitudą.

Krok 5: Sprawdzanie różnych rozmiarów okien i próbek:

Sprawdzanie różnych rozmiarów okien i próbek
Sprawdzanie różnych rozmiarów okien i próbek

na rysunku częstotliwość fali sinusoidalnej jest mierzona przy użyciu innych ustawień.

Krok 6: Przykład:

Przykład
Przykład

na rysunku porównuje się transformację danych za pomocą SciLab i arduino.

Zalecana: