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

[Matlab] Widmo fazowe zadanego sygnału

05 Gru 2011 19:07 4851 1
  • Poziom 9  
    Mam nastepujacy skrypt dotyczący widma amplitudowego i fazowego :

    clc
    Fs = 16;% Częstotliwość próbkowania
    F=2;
    T=1; %czas końca
    A=2; %amplituda
    t = 0:1/Fs:T-(1/Fs);
    x = A*sin(2*pi*t*F);


    fpx=fft(x);
    mf=abs(fpx);
    p=unwrap(angle(fpx)); %widmo fazowe;
    ful=(0:length(x)-1)'*100/length(x); %oś częstotliwości

    stem(ful,mf)


    figure(2)
    plot(ful,p*180/pi); %faza
    ylabel('faza [stopnie]'), grid on
    xlabel('Częstotliwość [Hz]')

    Mam problem dotyczący widma fazowego - w tym momencie widmo fazowe oprócz obliczeń na podstawie interesujących nas wartości oblicza również dla wartości zerowych - a to powoduje pojawianie się błędów wynikających z „resztek numerycznych”.

    Jak uniknąć tego błędu - by nie liczył dla tych wartości ?
  • Poziom 1  
    musisz odfiltrować śmieci z widma.

    przed linią p=unwrap dodaj linie:

    ind=find(mf<0.001); %lub okresl inny poziom filtrowania szumu
    fpx(ind)=NaN;