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

O Transformacie Fouriera raz jeszcze

użyszkodnik 20 Sty 2005 20:29 1443 0
REKLAMA
  • #1 1155933
    użyszkodnik
    Poziom 2  
    Witam szanownych forumowiczów. Jest to mój pierwszy post na tym Forum.
    Mam do Was pytanie i prośbe.
    Otóż, przyszło mi wykonać analizę sygnału zarejestrowanego na komputerze. Chcę "wyciągnąć" jedynie częstotliwości składowe przebiegu.
    Po lekturze Forum i pomocy Matlaba, stwierdziłem, że nada się do tego celu FFT.
    I tutaj mam problem, potrafię już wykonać coś w rodzaju analizy, ale wykres mam bardzo nie teges.
    N=length(DataX);
    w=fft(DataXX)/N;
    
    w=2*w(1:N/2); % co to jest? połowa długości wektora? a nie częstotliwości pomiaru?
    
    mod=abs(w);
    plot(mod);


    gdzie:

    DataX to wektor z wynikami pomiaru
    DataXX to samo co wyżej, ale po przeliczeniach na jednostki fizyczne
    częstotliwość pomiaru 1 kHz

    No i pytanie dotyczy, jak zmodyfikowac ten kod, aby uzyskać częstotliwości składowe.
    Nie proszę o gotowe rozwiąznie, wystarczy, że mnie trochę naprowadzicie na nie.
    Nie jestem rasowym programistą, przyszło mi jedynie napisać kilka linijek w Matlabie.

    Dziękuję z góy za pomoc.

    Dodano po 2 [minuty]:

    Dobrze, za szybko wysłałem posta.
    Pod moim jest przecież dokładny przykład jak to zrobić.
    Więc teraz mam to przepisane tak:
    tp = 1/128 % rozdzielczość transformaty
    t=[0:tp:2-tp]; % ??
    N=length(DataY);
    freq=0:1:N-1;
    mod=abs(fft(DataY)/N);
    freq=freq/tp/N; 
    figure 
    plot(freq,mod/N*2);

    Czy teraz jest OK?
    Z wykresu widzę, że zaczyna to mieć ręce i nogi.
    Niestety, analiza danych pomiarowych pokazuje, że są składowe o częstotliwościach 40 Hz i 360Hz. Druga składowa wydaje mi się podejrzana, nie sądzę, żeby występowały aż takie wysokie składowe.
  • REKLAMA
REKLAMA