logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Tablica danych i obliczenie częstotliwości sygnału za pomocą FFT

mototest 14 Paź 2017 18:18 2715 6
REKLAMA
  • #1 16756973
    mototest
    Poziom 19  
    Witam kolegów

    Nie znam się na FFT, ale polecono mi że służy do tego transformata
    Czy jest jakiś sposób żeby analizując tablicę danych z przetwornika ADC (320 punktów) można wyliczyć samą częstotliwość sygnału
    sinus, prostokąt, trójkąt ? ewentualny jakiś przykład w C ? dane są 0-4095
    sygnały są o częstotliwości 5Hz-5kHz

    pozdrawiam
  • REKLAMA
  • #2 16757257
    michcior
    Poziom 30  
    FFT da widmo. Teoretycznie dominujący prążek jak tym którego szukasz. Czasami, prościej zastosować transformatę z definicji niż robić FFT.

    Myślę, że kodów na FFT w C jest w necie setki tysięcy.
    Kilka punktów do rozważenia:
    1) Jeśli nie ma się szybkiego komputera, lub czegoś ze sprzętowym liczeniem zmiennoprzecinkowym, stosuje się stałoprzecinkowe obliczenia - oddzielny wykład.
    2) Dane wejściowe to wektor o liczbie elementów wg potęgi 2, czyli 128, 256, 512 1024 itd próbek
    3) Jeśli na wejściu mamy 256 próbek, to dostaniemy 256 prążków widma z czego druga połowa to odbicie lustrzane pierwsze pierwszej połówki, czyli użytecznie mamy 128 prążków.
    4) zarówno obliczenia jak i wyniki są zespolone, widmo amplitudowe dodatkowo trzeba wyliczyć jako moduł liczby zespolonej (pitagoras). Operacja pierwiastkowania, dla małych procków też nieco cięższa.
    5) Prążki widma rozłożone są równomiernie na osi częstotliwości, co w przypadku analizy pasma akustycznego (i pewnie innych też) jest wadą, potrzebne jest widmo na osi logarytmicznej
    6) Prążki widma oddalone są od siebie o 1/Tokna, Tokna to liczba próbek*Tsampl (mogę się mylić, czy to nie jest *0.5). Czyli, im więcej próbek (rząd transformaty) tym gęstsze widmo ale jego obliczenia są dłuższe, no i wyniki dostajemy rzadziej. W paśmie akustyczny, jak się weźmie 16384 próbek to nowe widmo melduje się co 0.5 sekundy (gdzieś tak może być)
    7) Często, okno się bierze "na zakładkę", np. 0.5, czyli Liczymy częściej ale okno próbek przesuwamy co 0.5 Tokna a nie o Tokna
    8) Zgodnie z prawami teorii Fouriera, widmo będzie splotem widma próbek i widma okna prostokątnego. Dlatego okno próbek mnoży się przez funkcję okna, którego widmo jest bardziej zbliżone do pojedynczego prążka: https://pl.wikipedia.org/wiki/Okno_czasowe

    Mogłem coś źle napisać, 20 lat minęło od mojego ostatniego FFT :) także sorry. Liczę na poprawki przez bardziej świeżych w temacie.
  • REKLAMA
  • #3 16757301
    mototest
    Poziom 19  
    Zbyt skomplikowane :) może znajdę jakiś prostszy sposób na znalezienie tej częstotliwości, wstępnie zrobiłem to mierząc odległość pomiędzy dwoma maksymalnymi punktami w tablicy obok siebie, ale nie działa to do sygnału prostokątnego, gdzie maksymalne punkty trwają długo...
    więc metoda jest słaba
  • #4 16757918
    jarek_lnx
    Poziom 43  
    A może autokorelacja, jako sposób na zbadanie okresowości przebiegu?
  • REKLAMA
  • #5 16759825
    _jta_
    Specjalista elektronik
    Warto pomyśleć/spróbować, co się dzieje przy FFT (czy innej metodzie), jeśli wartość chwilowa sygnału na początku i na końcu okna znacznie się różni.

    Można by zrobić widmo wartości sygnału, jakoś wyznaczyć jego środek (tu uwaga na przebiegi, które mają np. półtora okresu), i potem w przebiegu poszukać punktów przejścia przez ten środek. Jeśli okaże się, że są grupy blisko siebie położonych punktów przejścia, to takie grupy traktować jak pojedyncze punkty - może zacząć od wyznaczenia największej odległości sąsiednich punktów przejścia?
  • REKLAMA
  • #6 16759926
    Konto nie istnieje
    Konto nie istnieje  
  • #7 16790823
    mototest
    Poziom 19  
    Zostanę w takim razie przy znajdywaniu szczytów sinusa .
    Zamykam temat dziękuję za sugestie
REKLAMA