Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Matlab] Funkcja obliczająca fazę

Tomek_LG 27 Cze 2012 20:44 1530 5
  • #1 27 Cze 2012 20:44
    Tomek_LG
    Poziom 8  

    Witam

    Czy jest jeszcze jakaś funkcja obliczająca fazę oprócz funkcji angle?

    0 5
  • #2 27 Cze 2012 21:14
    gaskoin
    Poziom 38  

    A co Ci nie pasuje w angle ?

    0
  • #3 27 Cze 2012 21:38
    Tomek_LG
    Poziom 8  

    No właśnie bo wyszedł mi wykres fazy dla filtru taki:
    [Matlab] Funkcja obliczająca fazę
    nie do końca jest dobry gdyż wykres powinien raczej przypominać wykres funkcji arctang. Ta funkcja tak jakby nie widzi wszystkich ćwiartek funkcji i po lewej bądź po prawej stronie tego słupka który mi wyszedł funkcja raczej powinna zachować swoją tendencję a nie nagle zmieniać kierunek. Nie wiem może jednak źle myślę. Jak możesz potwierdź czy to jest dobry wykres.

    0
  • #5 28 Cze 2012 10:28
    Tomek_LG
    Poziom 8  

    O dzięki właśnie o to mi chodziło. Czyli rzeczywiście jak real(x)<0 to trzeba odpowiednio dodawać/odejmować liczbę pi w zależności czy imag(x) jest większy bądź mniejszy od 0.

    Mam jeszcze pytanie bo teraz chcę stworzyć funkcję korygującą ten błąd. Czy ten zapis jest dobry?

    Code:

     function z = faza(x)
        if (real(x)<0 & imag(x)>=0)
            z=angle(x)+PI;
        elseif (real(x)<0 & imag(x)<0)
            z=angle(x)-PI;
        elseif
            z=angle(x);
        end


    Nie jestem pewien zapisu real(x)<0 & imag(x)>=0 czy można tak łączyć warunki

    0