Cwiczenia z analizy sygnałów
Transkrypt
Cwiczenia z analizy sygnałów
Transformata Fouriera Widmo mocy Ćwiczenia z analizy sygnałów Jarosław Żygierewicz IFD UW Jarosław Żygierewicz transformata Fouriera Transformata Fouriera Widmo mocy Wzory F s(t) k , S(ω) F −1 Ciągły sygnał okresowy ∞ X s(t) = cn e −i 2πt n T (1) n=−∞ gdzie: cn = 1 T Z Jarosław Żygierewicz T s(t)e i 2πt n T dt 0 transformata Fouriera (2) Transformata Fouriera Widmo mocy Nieskończony sygnał ciągły s(t) = ∞ 1 X S (fn ) e −i2πtfn ∆f T n=−∞ Formalnie bierzemy granicę T → ∞ i dostajemy: Z ∞ s(t) = S(f )e 2πift df (3) (4) −∞ Z ∞ S(f ) = s(t)e −2πift dt −∞ Jarosław Żygierewicz transformata Fouriera (5) Transformata Fouriera Widmo mocy Sygnał skończony dyskretny S[k] = = 1 T 1 N RT s(t)δ(t − nTs )e i PN−1 i 2π kn N n=0 s[n]e 0 2πt k T dt = 1 NTs PN−1 n=0 s[n]e i 2πknTs T Ts (6) Z tego wzorku widać, że k może być tylko k = 0, . . . , N − 1. Mamy więc tylko N wyrażeń. Ze wzorów Eulera wiemy, że dla sygnałów rzeczywistych musimy mieć pary sprzężonych exp. zespolonych więc efektywnie dostajemy tylko N/2 różnych częstośći. Transformata odwrotna (IDFT): s[n] = N−1 X S[k]e −i 2π kn N n = 0, . . . , N − 1. k=0 Jarosław Żygierewicz transformata Fouriera (7) Transformata Fouriera Widmo mocy Moc Moc sygnału przez analogię do układów elektrycznych jest w analizie sygnałów przyjęta jako kwadraty próbek. P Niech sygnał x[n], wówczas moc P[n] = x[n]2 , a energia E = n x[n]2 przykładowy kod matlabowy f=1; fi=0; T=1; Fs=100; [s, t]=m_sin(f,fi,T,Fs); P=s.^2 E=sum(s.^2) Jarosław Żygierewicz transformata Fouriera Transformata Fouriera Widmo mocy Widmo mocy: tw. Plancherel’a i tw. Parseval’a Twierdzenie Plancherel Jeśli X [k] i Y [k] są transformatami x[n] i y [n] odpowiednio to: N−1 X x[n]y ∗ [n] = n=0 N−1 1 X X [k]Y ∗ [k] N (8) k=0 gwiazdka oznacza sorzężenie zespolone. Twierdzenie Parseval’a jest specjalnym przypadkiem twierdzenia Plancherel’a : N−1 X n=0 N−1 1 X |x[n]| = |X [k]|2 . N 2 (9) k=0 Twierdzenie to upoważnia nas do utożsamiania kwadratów wartości bezwzględnej składowych transformaty fouriera z mocą niesioną przez odpowiadające im składowe. Jarosław Żygierewicz transformata Fouriera Transformata Fouriera Widmo mocy Przykład liczenia widma funkcja zwracająca widmo plik moc.m function [P, F, P_re, F_re]=moc(s,Fs) S=fft(s); N=length(s); if mod(N,2)==0 f=linspace(0,Fs/2,N/2); F=[f fliplr(-f)]; P=S.*conj(S)/length(S); P_re=P(1:end/2); P_re(2:end)=2*P(2:end/2); F_re=f; else f=linspace(0,Fs/2,(N+1)/2); F=[f fliplr(-f(1:end-1))]; P=S.*conj(S)/length(S); P_re=P(1:(end+1)/2); P_re(2:end)=2*P(2:(end+1)/2); F_re=f; end skrypt testujący test moc.m f=10; fi=0; T=1; Fs=100; [s, t]=m_sin(f,fi,T,Fs); P=s.^2; E=sum(s.^2) [P, F, P_re, F_re]=moc(s,Fs); disp(’moc sumowana po całym widmie’); sum(P) disp(’moc sumowana po widmie sygnalu rzeczywistego’); sum(P_re) subplot(211);plot(F,P); axis tight subplot(224);plot(F_re, P_re); axis tight Jarosław Żygierewicz transformata Fouriera Transformata Fouriera Widmo mocy Rozdzielczość widma Proszę zbadać rozdzielczość częstotliwościową widma w zależności od długości sygnału. Używamy funkcji m_sin. Zwrócić uwagę na to co dzieje się na końcach odcinka. Jarosław Żygierewicz transformata Fouriera Transformata Fouriera Widmo mocy Podstawowe właściwości: Przy użyciu sygnałów testowych s(t), g (t) i h(t) oraz ich transformat Fouriera S(f ), G (f ) i H(f ). Proszę sprawdzić: Liniowość dla liczb zespolonych a i b: ⇒ h(t) = as(t)+bg (t) H(f ) = a·S(f )+b ·G (f ) Translacja dla dowolnego rzeczywistego t0 : h(t) = s(t − t0 ) ⇒ H(f ) = e −2πit0 f S(f ) Modulacja dla dowolnego rzeczywistego f0 : h(t) = e 2πf0 s(t) ⇒ H(f ) = S(f − f0 ) Skalowanie Dla niezerowych liczb rzeczywistych a: ⇒ h(t) = s(at) 1 S H(f ) = |a| f a a = −1 prowadzi do własności odrócenia czasowego: h(t) = f (−t) Jarosław Żygierewicz ⇒ H(f ) = S(−f ) transformata Fouriera Transformata Fouriera Widmo mocy Twierdzenie o splocie g (t) = (s ∗ h) (t) ⇒ G (f ) = S(f ) · H(f ) (10) To twierdzenie działa też w drugą stronę: G (f ) = (S ∗ H) (f ) ⇒ g (t) = s(t) · h(t) Zastosowania: zamiana splotu na mnożenie daje wgląd w okienkowanie łatwo zrozumieć działanie flitrów Jarosław Żygierewicz transformata Fouriera (11) Transformata Fouriera Widmo mocy Okienkowana transformata Fouriera: Polecenia 1 obejrzyj przykładowe okna hanning, kaaiser itp zrob okno prostokatne (na sygnale o dlugosci 128 wytworz same zera i elementy od 50 do 70 poloz =1) jakie jest widmo takiego sygnalu, jakie jest widmo tego sygnalu w skali pol logarytmicznej? zrob sygnał następującej postaci zera, fragment sinusa, zera (sinus okienkowany prostokątem, to jest właśnie to co mamy gdy nie stosujemy okienkowania do zwykłego fft) narysuj widmo oryginalny sygnał zokienkuj oknem cosinusowym i obejrzyj widmo zbadaj co się dzieje wraz ze zmianą długości niezerowego fragmentu sugnału Jarosław Żygierewicz transformata Fouriera Transformata Fouriera Widmo mocy Okienkowana transformata Fouriera: Polecenia 2 splec w dziedzinie czasu okno prostokatne o dlugosci 0.5 s z sinusem o czestosci 20 Hz i dlugosci 3s obejrzyj sygnal i widmo wytworz sygnal 2s Fs=128 Hz zlozony z bialego szumu, przetransformuj go do dziedziny czestosci, przytnij widmo tak, aby zastalo tylko cos w okolicy 10 Hz i przetransformuj z powrotem do dziedziny czasu obejrzyj sygnal. Operacje ta wykonaj jprzy pomocy okna prostokatnego i gausowskiego. Jarosław Żygierewicz transformata Fouriera