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

DFT/FFT interpretacja widma fazowego

BluDeVil 11 Sty 2005 12:33 6716 2
REKLAMA
  • #1 1128557
    BluDeVil
    Poziom 11  
    Jezeli dokonamy transformaty Fouriera sygnalu x(n) wynikowe widmo, tj. kolejne jego prazki beda reprezentowane przez pary zespolone Re(n) i Im(n). Faza n-tej harmonicznej bedzie rowna ph(n)=arctan(Im(n)/Re(n)), o ile dobrze (po tylu latach...:D) rozumiem istote transformaty Fouriera...
    Ale to nie zawsze mi sie zgadza...Czesto faza ma wartosc zgodna co do modulu, ale przeciwny znak...Jak to intepretowac? Co ma na to wplyw? Czy nalezy wprowadzac jakas "poprawke" do wyniku w zaleznosci od warunkow wyznaczania transformaty (relacja miedzy fs, N, i fn) ?
    Za wszelkie glosy bede wdzieczny :-)
    Pozdrawiam,
    BluDeVil
  • REKLAMA
  • Pomocny post
    #2 1130666
    shg
    Poziom 35  
    BluDeVil napisał:
    Faza n-tej harmonicznej bedzie rowna ph(n)=arctan(Im(n)/Re(n))

    No właśnie nie do końca, bo będzie to funkcja (komputerowa) atan2(Re(n), Im(n)).
    BluDeVil napisał:
    Ale to nie zawsze mi się zgadza...Czesto faza ma wartosc zgodna co do modulu, ale przeciwny znak..

    Co rozumiesz przez to, że faza jest zgodna co do modułu? chodzi zapewne o moduł fazy, tak? a pewnie że tak! :D

    Powód jest prosty - arctan(y/x) zwraca kąt w przedziale -90° - 90° (albo -pi/2 do pi/2, jak kto woli) i z takim też kątem działa prawidłowo, czyli działa w 1 i 4 kwadrancie. Trzeba więc wziąć poprawkę na aktualny kwadrant, czyli:
    dla uproszczenia x=Re(n), y=Im(n) i w ph zwracamy fazę z przedziału -PI do PI z wyłączeniem -PI. to poniżej, to w zasadzie definicja funkcji atan2(x, y).

    Kwadrant 1 i 4:
    Jeżeli x>0, to ph=atan(y/x)
    Jeżeli x<=0, to:
      Kwadrant 2:
        Jeżeli y>0, to ph=(PI/2) - atan(x/y)
      Kwadrant 3:
        Jeżeli y<0, to ph=(-PI/2) - atan(x/y)
      Specjalny przypadek:
        Jeżeli y=0, to ph=PI
    


    wyprowadziłem to z głowy :D ale powinno się zgadzać, sprawdziłem dla kilku przypadków.

    I szczególny przypadek: atan2(0, 0) - nie da się zrealizować.
    atan = arctan = arctg, ale atan rulezzzz, bo najłatwiej się wymawia. :D

    Może coś by się dało poprawić, a może nie. :D
    Jak chcesz, możesz dodać jeszcze jeden warunek po wszystkich obliczeniach:
    jeżeli ph<0, to ph = ph + 2PI
    dzięki takiej modyfikacji będziesz miał fazę w zakresie 0 - 2PI, ale raczej wykorzystuje się zakres -PI do PI.
  • #3 1132334
    BluDeVil
    Poziom 11  
    No dzieki za tak wyczerpujaca odpowiedz :-)
REKLAMA