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- probkowanie synchroniczne

toskania 11 Lis 2009 12:52 2821 1
REKLAMA
  • #1 7244677
    toskania
    Poziom 10  
    ostatnio na wykladzie mialam cos takiego..nie bardzo rozumiem o co tu chodzi..wykladowca pokazal nam program w matalbie na wygenerowanie syganalu y(t)=Acos(wt)..mamy podane parametry generowania syganlu..po uruchomieniu pojawiaja sie 4 wykresy..moglby ktos wytlumaczyc mi o co dokladnie tam biega..???jak rozumiec te wykresy?? dziekuje bardzo za pomoc..
    
    clear all
    clc
    Gr=8;
    A1=Gr*50
    Usk1=A1/(sqrt(2))
    Fi1=2*pi/3;
    n=128;    
    Ts=1/128;
    k= 0:n-1;
    fo=8;  % czestotliwosc podstawowa
    D=50;  % skladowa stala
    fprintf('skladowa podstawowa %g Hz\n', fo)
    y=D+A1*cos(2*pi*fo*k*Ts+Fi1)
    mocty=y*y'/n
    uskt=sqrt(mocty)
    figure (1)
    plot(y(1:n));
    xlabel('czas [s]'),ylabel('wartosc chwilowa')
    title('wykres sygnalu y(t)')
    % widmo=fft(y)/n;   %algorytm FFT z Signal Proccessing
    
    for r=1:n
        for p=1:n;
            wsp(r,p)=cos(2*pi*(r-1)*(p-1)/n)-j*sin(2*pi*(r-1)*(p-1)/n);
        end
    end
    
    widmo=wsp*(y')/n;
    modul=abs(widmo);
    mocfy=modul'*modul
    uskfy=sqrt(mocfy)
    freq=k/(n*Ts);
    figure (2)
    stem(freq(1:n), modul(1:n))
    title('modul widma')
    xlabel('czestotliwosc [Hx]'), ylabel('modul')
    
    ph=angle(widmo);
    figure (3)
    stem(freq(1:n),ph(1:n))
    title ('kat fazowy,wykres zawiera tez bledne wartosci')
    xlabel('czestotliwosc [Hz]'), ylabel('kat fazowy')
    
    for kk=1:n;
        if modul(kk)>0.001
            ph(kk)=(180/pi)*angle(widmo(kk));
        elseif modul(kk) < 0.001
        end
    end
    
    figure (4)
    stem(freq(1:n),ph(1:n))
    title('poprawiony wykres kata fazowego w stopniach')
    xlabel('nr probki widma'), ylabel('kat fazowy')
  • REKLAMA
  • #2 7247257
    cavendish
    Poziom 17  
    Witam,

    Figure 1 - Sygnał testowy - wiadomo.
    Figure 2 - Widmo amplitudowe sygnału testowego, uzyskane na bazie dyskretnego przekształcenia Fouriera wyliczonego we fragmencie:
    % widmo=fft(y)/n;   %algorytm FFT z Signal Proccessing
    
    for r=1:n
        for p=1:n;
            wsp(r,p)=cos(2*pi*(r-1)*(p-1)/n)-j*sin(2*pi*(r-1)*(p-1)/n);
        end
    end
    
    widmo=wsp*(y')/n;


    W wyniku tego otrzymuje się wektor zawierający liczby zespolone (wyniki przekształcenia), których moduł stanowi widmo amplitudowe sygnału.

    modul=abs(widmo);


    W wynikach przekształcenia Fouriera zawarta jest też informacja o relacjach fazowych między poszczególnymi składowymi sygnału. Informacja o widmie fazowym zawarta jest w kącie fazowym poszczególnych wyników DFT. Informację tą najlepiej wyłuskać w Matlabie komendą angle(.)
    ANGLE  Phase angle.
        ANGLE(H) returns the phase angles, in radians, of a matrix with
        complex elements. 

    Zrobiono to w tym fragmencie:
    ph=angle(widmo);


    Całość zobrazowana jest na Figure 3.

    Problem w tym, że kąt fazowy zależny jest od stosunku części urojonej i rzeczywistej liczby zespolonej i nie jest nijak bezpośrednio związany z modułem liczby. Skutek tego może być taki:
    >> angle(0.00000000000000 + 0.00000000000001i)
    
    ans =
    
       1.57079632679490
    
    >> angle(-0.99999999999992 - 1.73205080756892i)
    
    ans =
    
      -2.09439510239315


    Poprawna wartość -0.99999999999992 - 1.73205080756892i, i błędna (wynikła np z błędów obliczeń numerycznych) wartość 0.00000000000000 + 0.00000000000001i (która jest tak mała, że formatu long nie starcza do jej poprawnego wyświetlenia) zwracają kąt fazowy podobnego rzędu wielkości. Autor programu chroni się przed tym przeskalowując do stopni - mnożąc przez 180/pi - tylko te składowe widma fazowego, dla których odpowiadające im widmo amplitudowe ma znaczące wartości.

    for kk=1:n;
        if modul(kk)>0.001
            ph(kk)=(180/pi)*angle(widmo(kk));
        elseif modul(kk) < 0.001
        end
    end


    Tak dostaje poprawione widmo fazowe widoczne na Figure 4.
REKLAMA