Spis treści Widmo mocy
Transkrypt
Spis treści Widmo mocy
Analiza_sygnałów_-_ćwiczenia/Fourier_4 Spis treści 1 Widmo mocy 1.1 Obliczanie mocy sygnału 1.1.1 Zadanie 1: Moc i energia sygnału w dziedzinie czasu 1.1.2 Zadanie 2: Moc i energia sygnału w dziedzinie czasu i częstości 1.2 Periodogram: widmo mocy okienkowanego sygnału 1.2.1 Zadanie 3: Obliczanie periodogramu 2 Sygnały stochastyczne 2.1 Stacjonarność i ergodyczność 2.2 Zadanie 4: Estymacja widma sygnału stochastycznego 2.3 Oszacowanie błędu transformaty Fouriera dla białego szumu 2.4 Zadanie 5: Metoda Welcha 2.5 Zadanie 6: Porównanie rozdzielczości i wariancji w periodogramie i w estymatorze Welcha 2.6 Zadanie 7: Estymacja widma mocy metodą wielookienkową Thomsona (multitaper) 2.6.1 Zestawy okien ortogonalnych 2.6.2 Estymacja widma mocy 2.7 Zadanie 8 3 Co musimy z tego zapamiętać Widmo mocy Obliczanie mocy sygnału Zadanie 1: Moc i energia sygnału w dziedzinie czasu Proszę: wygenerować sygnał sinusoidalny o amplitudzie 1, częstości 10 Hz, trwający 0.3 sekundy i próbkowany z częstością 1000 Hz. narysować ten sygnał przy pomocy funkcji pylab.stem, obliczyć i narysować przebieg mocy w czasie wartości próbki sygnału obliczyć energię tego sygnału przyrosty czasu między próbkami : moc w danej chwili to kwadrat : energia to suma mocy mnożonej przez Zadanie 2: Moc i energia sygnału w dziedzinie czasu i częstości Proszę uzupełnić i przetestować funkcję realizującą poniższy algorytm estymacji widma mocy. Następnie proszę obliczyć energię oraz wyświetlić przebieg widma mocy dla sygnału z Zadania 1. Sprawdzić czy energia zależy od częstości próbkowania i od długości sygnału #!/usr/bin/env python3 # -*- coding: utf-8 -*import pylab as py import numpy as np from numpy.fft import rfft,rfftfreq def widmo_mocy(s,Fs,okno): okno= # znormalizuj okno s = # zokienkuj sygnał S = # Oblicz transformatę Fouriera sygnału przy pomocy funkcji <tt>rfft</tt> P = # Oblicz moc jako iloczyn unormowanej transformaty i jej sprzężenia zespolonego. P = # Unormuj widmo dzieląc przez częstość próbkowania P = # Do dalszych operacji wybierz tylko część rzeczywistą mocy. if len(s)%2 ==: # dokładamy moc z ujemnej części widma P[1:-1] *=2 else: P[1:] *=2 F = # Korzystając z funkcji <tt>rfftfreq</tt> obliczamy częstości, dla których policzone są współczynniki Fouriera. return F,P # część testująca fs =100 T = 3 f = 10.3 # sygnał testowy dt = 1.0/fs t = np.arange(,T,dt) s = np.sin(2*np.pi*f*t ) # okno prostokątne okno = np.ones(len(s)) moc_w_czasie = ... (F, moc_w_czestosci) = widmo_mocy(s, Fs=fs, okno = okno) dt = 1/fs energia_w_czasie = ... energia_w_czestosci = ... py.subplot(3,1,1) py.plot(t,s) py.title('Sygnal') py.subplot(3,1,2) py.plot(t,moc_w_czasie) py.title('moc w czasie, energia w czasie: ' +str(energia_w_czasie)) py.subplot(3,1,3) py.plot(F,moc_w_czestosci) py.title('moc w czestosci, energia w czestosci: ' +str(energia_w_czestosci)) py.show() Periodogram: widmo mocy okienkowanego sygnału Aby policzyć widmo mocy sygnału z zastosowaniem okienek wprowadzimy następujące symbole: sygnał: okienko: okienko znormalizowane: widmo mocy sygnału okienkowanego, czyli periodogram: Zadanie 3: Obliczanie periodogramu Proszę napisać funkcję obliczającą periodogram. Funkcja jako argumenty powinna przyjmować sygnał, okno (podane jako sekwencja próbek), i częstość próbkowania. Zwracać powinna widmo mocy i skalę osi częstości. Wewnątrz funkcja powinna implementować liczenie widma z sygnału okienkowanego znormalizowanym oknem. Funkcję proszę przetestować obliczając dla funkcji sinus energię sygnału w dziedzinie czasu i w dziedzinie częstości. Testy proszę wykonać dla okna prostokątnego, Blackmana i Haminga. Sygnały stochastyczne Sygnał stochastyczny to taki sygnał, dla którego ciągu próbek nie da się opisać funkcją czasu. Kolejne próbki w takim sygnale to zmienne losowe. Można je opisać podając własności rozkładu, z którego pochodzą. Często w opisie takich zmiennych posługujemy się momentami rozkładów. Jak można sobie wyobrazić rozkłady, z których pochodzą próbki? Można sobie wyobrazić, że obserwowany przez nas sygnał stochastyczny to jedna z możliwych realizacji procesu stochastycznego. Jeśli jest zbiorem zdarzeń ( ) i każde z tych zdarzeń ma przypisaną funkcję zwaną realizacją procesu zbiór funkcji: gdzie , to proces stochastyczny może być zdefiniowany jako są losowymi funkcjami czasu . Procesy stochastyczne można opisywać przez wartości oczekiwane liczone po realizacjach. Dla przypomnienia wartość oczekiwaną liczymy tak: średnia realizacjach procesu w chwili to suma wartości zaobserwowanych w chwili we wszystkich ważona prawdopodobieństwem wystąpienia tej realizacji. Poniżej mamy przykład wytwarzania procesu złożonego z dwóch realizacji po 50 próbek oraz estymowania jego wartości średniej. Każda próbka jest niezależną zmienną losową z rozkładu normalnego o średniej 0 i wariancji 1: #!/usr/bin/env python3 # -*- coding: utf-8 -*import numpy as np import pylab as py t = np.arange(,50,1) # realizacja 1 x1 = np.random.randn(t.size) # realizacja 2 x2 = np.random.randn(t.size) # średnia procesu xm = 0.5*(x1+x2) # ilustracja py.subplot(3,1,1) py.stem(t,x1) py.title('realizacja 1') py.subplot(3,1,2) py.stem(t,x2) py.title('realizacja 2') py.subplot(3,1,3) py.stem(t,xm,'r') py.title('średnia procesu') Stacjonarność i ergodyczność Stacjonarność: Jeśli dla procesu stochastycznego wszystkie momenty są niezależne od czasu to jest on stajonarny w ścisłym sensie. Jeśli tylko średnia i autokorelacja nie zależą od czasu to proces jest stacjonarny w słabym sensie, co dla wielu zastosowań jest wystarczające. Ergodyczność: Proces jest ergodyczny jeśli jego średnie po czasie i po realizacjach są sobie równe. Oznacza to, że dla takiego procesu jedna realizacja jest reprezentatywna i zawiera całą informację o tym procesie. Założenie o sygnale, że jest stacjonarny i ergodyczny pozwala zamienić sumowanie po realizacjach na sumowanie po czasie w estymatorach momentów statystycznych. Zadanie 4: Estymacja widma sygnału stochastycznego Bardzo często musimy oszacować widmo mocy sygnału zawierającego znaczny udział szumu. Poniższe ćwiczenie ilustruje niepewność szacowania pików w widmie otrzymanym z transformaty Fouriera dla sygnału zawierającego szum (stochastycznego). wygeneruj 20 realizacji sygnału będącego sumą sinusoidy (f = 20 Hz, T = 1 s, Fs = 100 Hz) i szumu gaussowskiego dla każdej realizacji oblicz widmo mocy wykreśl wszystkie otrzymane widma na wspólnym wykresie Proszę obejrzeć otrzymane widma. Zaobserwuj jakiego rzędu jest niepewność wyniku. Czy podobny problem występuje dla sygnału bez szumu? Skonstruuj funkcję rysującą średnie widmo wraz z przedziałem ufności. #!/usr/bin/env python3 # -*- coding: utf-8 -*""" Created on Tue Nov 8 11:45:15 2016 @author: admin """ # -*- coding: utf-8 -*import pylab as py import numpy as np import scipy.stats as st from numpy.fft import rfft,rfftfreq def periodogram(s, okno , F_samp): '''peiodogram sygnału s okno - synał będzie przez nie przemnożony w czasie F_samp- częstość próbkowania''' s = s*okno N_fft = len(s) S = rfft(s,N_fft) P = S*S.conj()/np.sum(okno**2) P = P.real/Fs # P i tak ma zerowe wartości urojone, ale trzeba ykonać konwersję typów F = rfftfreq(N_fft, 1/F_samp) if len(s)%2 ==: # dokładamy moc z ujemnej części widma P[1:-1] *=2 else: P[1:] *=2 return (F,P) def sin(f = 1, T = 1, Fs = 128, phi = ): '''sin o zadanej częstości (w Hz), długości, fazie i częstości próbkowania Domyślnie wytwarzany jest sygnał reprezentujący 1 sekundę sinusa o częstości 1Hz i zerowej fazie próbkowanego 128 Hz ''' dt = 1.0/Fs t = np.arange(,T,dt) s = np.sin(2*np.pi*f*t + phi) return (s,t) def szum(mu = , sigma = 1, T = 1, Fs = 128): '''szum gaussowski o zadanej: średniej mu wariancji sigma**2 długości T, częstości próbkowania Fs ''' dt = 1.0/Fs t = np.arange(,T,dt) s = ... return (s,t) def dwadziescia_realizacji(FS): ''' * wygeneruj 20 realizacji sygnału będącego sumą sinusoidy (f=20Hz, T=1s, Fs =100Hz) i szumu gassowskiego * dla każdej realizacji oblicz widmo mocy * wykreśl wszystkie otrzymane widma na wspólnym wykresie ''' for i in range(20): (s,t) = ... #realizacja sinusa (sz,t) = ...#realizacja szumu syg = ...# sygnał będący sumą powyższych (F, moc_w_czestosci) = widmo_mocy(syg, Fs=FS) py.plot(F,moc_w_czestosci) py.show() def srednie_widmo(FS): ''' # Skonstruuj funkcję rysującą średnie widmo wraz z 95% przedziałem ufności. ''' zbior_widm = np.zeros((20,FS/2+1)) for i in range(20): (s,t) = ... #realizacja sinusa (sz,t) = ...#realizacja szumu syg = ...# sygnał będący sumą powyższych okno = ... (moc_w_czestosci, F) = periodogram(syg, Fs=FS,okno = okno) zbior_widm[i][:] = ...#zapamiętaj widmo i-tej realizacji srednie_w = ...# usrednij widma po realizacjach przedzial_d = np.zeros(len(F)) # tablice na dolną i górną granicę przedziału ufności przedzial_g = np.zeros(len(F)) for f in F: # dla każdej częstości znajdujemy granice przedziałów ufności przedzial_d[f] = st.scoreatpercentile(..., 2.5) przedzial_g[f] = st.scoreatpercentile(..., 97.5) py.plot(F,srednie_w,'r') # rysujemy średnią py.plot(F,przedzial_d,'b')# rysujemy granicę dolną py.plot(F,przedzial_g,'b')# rysujemy granicę górną py.show() FS =100.0 dwadziescia_realizacji(FS) srednie_widmo(FS) Oszacowanie błędu transformaty Fouriera dla białego szumu Niech - sygnał stochastyczny, którego kolejne próbki pochodzą z niezależnych rozkładów normalnych (biały szum), Jego transformata Fouriera jest liczbą zespoloną Wówczas, część rzeczywista i urojona o średniej zero i równych wariancjach. są nieskorelowanymi zmiennymi losowymi Ponieważ transformata Fouriera jest operacją liniową więc składowe rozkłady normalne. Wielkość: i mają jest sumą kwadratów dwóch niezależnych zmiennych normalnych. Wielkość ta podlega rozkładowi o dwóch stopniach swobody. Możemy oszacować względny błąd Dla rozkładu : W naszym przypadku i dla danej częstości , gdzie więc mamy : jest ilością stopni swobody. , Oznacza to, że dla pojedynczego binu częstości w widmie 100%. względny błąd wynosi Aby zmniejszyć ten błąd trzeba zwiększyć ilość stopni swobody. Są generalnie stosowane dwie techniki: Pierwsza to uśrednianie sąsiednich binów częstości. Otrzymujemy wówczas wygładzony estymator mocy : Zakładając, że biny częstości stopni swobody równej Druga są niezależne estymator ma rozkład . Względny błąd takiego estymatora to: o ilości . to podzielenie sygnału na fragmenty, obliczenie periodogramu dla każdego fragmentu, a następnie zsumowanie otrzymanych wartości: gdzie jest estymatą składowej o częstości w oparciu o fragment sygnału. Ilość stopni swobody wynosi w tym przypadku zatem względny błąd wynosi: . Zauważmy, że w obu metodach zmniejszamy wariancję estymatora kosztem rozdzielczości w częstości. Zadanie 5: Metoda Welcha Proszę zapoznać się zaimplementowaną w bibliotece scipy.signal funkcją welch. Funkcję proszę przetestować obliczając dla funkcji sinus energię sygnału w dziedzinie czasu i w dziedzinie częstości. Testy proszę wykonać dla okna prostokątnego, Blackmana i Haminga. # -*- coding: utf-8 -*import pylab as py import numpy as np from numpy.fft import rfft, rfftfreq from scipy.signal import welch def sin(f = 1, T = 1, Fs = 128, phi = ): '''sin o zadanej częstości (w Hz), długości, fazie i częstości próbkowania Domyślnie wytwarzany jest sygnał reprezentujący 1 sekundę sinusa o częstości 1Hz i zerowej fazie próbkowanego 128 Hz ''' dt = 1.0/Fs t = np.arange(,T,dt) s = np.sin(2*np.pi*f*t + phi) return (s,t) def periodogram(s, okno , F_samp): '''peiodogram sygnału s okno - synał będzie przez nie przemnożony w czasie F_samp- częstość próbkowania''' s = s*okno N_fft = len(s) S = rfft(s,N_fft) P = S*S.conj()/np.sum(okno**2) P = P.real/Fs # P i tak ma zerowe wartości urojone, ale trzeba ykonać konwersję typów F = rfftfreq(N_fft, 1/F_samp) if len(s)%2 ==: # dokładamy moc z ujemnej części widma P[1:-1] *=2 else: P[1:] *=2 return (F,P) Fs = 100.0 (x,t) = sin(f = 3.1, T =20, Fs = Fs, phi = ) N = len(x) # długość sygnału okno = np.hamming(N) okno/=np.linalg.norm(okno) py.subplot(2,1,1) (F,P) = periodogram(x,okno,Fs) py.plot(F,P) py.title('periodogram'+' energia: '+ str(np.sum(P))) #periodogram py.subplot(2,1,2) Nseg =20 N_s = N/Nseg okno = np.hamming(N_s) okno/=np.linalg.norm(okno) (F, P) = welch(...) py.plot(F,P) py.title('periodogram Welcha'+' energia: '+ str(Nseg*np.sum(P))) py.show() Zadanie 6: Porównanie rozdzielczości i wariancji w periodogramie i w estymatorze Welcha 1. wygeneruj 100 realizacji sygnału będącego sumą sinusoidy (f = 20 Hz, T = 10 s, Fs = 100 Hz) i szumu gaussowskiego 2. dla każdej realizacji oblicz widmo mocy za pomocą periodogramu okienkowanego oknem Blackmana 3. wykreśl wszystkie otrzymane widma na wspólnym wykresie (subplot(2,1,1)) 4. Powtórz krok 2) dla estymatora Welcha z oknem Blackmana o długości 1/10 długości sygnału przesuwanym co 2 punkty, otrzymane widma wykreśl na wspólnym wykresie (subplot(2,1,2)) Co można powiedzieć o rozdzielczości i względnym błędzie obu metod? bl_wzg = np.std(S,axis = 0)/np.mean(S,axis = 0) gdzie S jest tablicą zawierającą widma dla każdej z realizacji. #!/usr/bin/env python3 # -*- coding: utf-8 -*import pylab as py import numpy as np from numpy.fft import rfft, rfftfreq from scipy.signal import welch import scipy.stats as st from matplotlib.font_manager import FontProperties font = FontProperties('Arial') def periodogram(s, okno , F_samp): '''peiodogram sygnału s okno - synał będzie przez nie przemnożony w czasie F_samp- częstość próbkowania''' s = s*okno N_fft = len(s) S = rfft(s,N_fft) P = S*S.conj()/np.sum(okno**2) P = P.real/Fs # P i tak ma zerowe wartości urojone, ale trzeba ykonać konwersję typów F = rfftfreq(N_fft, 1/F_samp) if len(s)%2 ==: # dokładamy moc z ujemnej części widma P[1:-1] *=2 else: P[1:] *=2 return (F,P) def realizacja(T,Fs): dt = 1.0/Fs t = np.arange(,T,dt) # jedna realizacja sygnału będącego sumą sinusoidy (f = 20 Hz, T = 10 s, Fs = 100 Hz) i szumu gaussowskiego o std 5-krotnie większym niż amplituda sinusoidy s =... return s T=10.0 Fs = 100.0 N = T*Fs okno = np.blackman(N) # okno blakmana dla periodogramu ile_okien = 10 Nw = N/ile_okien okno_w = ...#okno blackmana dla welcha N_rep = 100 S_perio = np.zeros((N_rep,N/2+1)) # uwaga, to jest dobrze tylko dla Fs parzystych S_welch = np.zeros((N_rep,Nw/2+1)) # uwaga, to jest dobrze tylko dla Fs parzystych for i in range(N_rep):#wygeneruj 100 realizacji sygnału s = ...#sygnał (F_p, P) = ...# jego periodogram S_perio[i,:] = ...# zachowaj periodogram tej realizacji na później (F_w, P_w) = ... # widmo Welcha S_welch[i,:] = ...# zachowaj widmo Welcha tej realizacji na później # poniżej robimy wykresy py.figure(1) py.subplot(3,1,1) py.plot(F_p,np.mean(S_perio,axis = ),'r', F_p, st.scoreatpercentile(S_perio, 2.5,axis =),'b', F_p, st.scoreatpercentile(S_perio,97.5,axis =),'b' ) py.title(u'Periodogram: średnie widmo realizacji wraz z 95% CI', fontproperties = font) py.ylabel('V^2/Hz') py.subplot(3,1,2) py.plot(F_w,np.mean(S_welch,axis = ),'r', F_w, st.scoreatpercentile(S_welch, 2.5,axis =),'b', F_w, st.scoreatpercentile(S_welch,97.5,axis =),'b' ) py.title('Welch: średnie widmo realizacji wraz z 95% CI', fontproperties = font) py.ylabel('V^2/Hz') py.subplot(3,1,3) py.plot(F_p, ...) # błąd względny ( std/mean *100)w % dla periodogramu py.plot(F_w, ...) # błąd względny w % dla Welcha py.ylim([,250]) py.xlabel('Częstość Hz', fontproperties = font) py.ylabel('%') py.legend(('periodogram','Welch')) py.title('Błąd względny', fontproperties = font) py.show() Zadanie 7: Estymacja widma mocy metodą wielookienkową Thomsona (multitaper) Jeśli nie mamy do dyspozycji dostatecznie długiego sygnału stacjonarnego i ergodycznego aby astosować metodę Welcha pomocne może być wykorzystanie zestawów okien ortogonalnych (Discrete Prolate Spheroidal Sequences- DPSS). Ponieważ są ortogonalne więc widma estymowane periodogramem z każdym z tych okienek stanowią niezależne estymaty gęstości mocy. Ich wartość średnia ma mniejszą wariancję niż estymata za pomocą pojedynczego periodogramu. Oczywiście nie ma nic za darmo: za mniejszą wariancję płacimy szerokością piku. Metoda ta została zaproponowana w pracy: D. J. Thomson, “Spectrum Estimation and Harmonic Analysis,” Proceedings of the IEEE, vol. 70, no. 9, pp. 1055 – 1096, 1982 Zestawy okien ortogonalnych Najpierw zobaczmy jak wyglądają sekwencje okien. Moduł zawierający funkcję do generowania takiej sekwencji można ściągnąć stąd: http://www.fuw.edu.pl/~jarekz/dpss.py # -*- coding: utf-8 -*import pylab as py import numpy as np from dpss import dpss_window NW = 2 # szerokość pasma w którym zlokalizowane są piki główne okien K = 2*NW-1 # liczba okien N = 100 # rozmiar okna py.figure(1) w, eigen = dpss_window(N, NW, K) # generujemy okna for i, eig in enumerate(eigen): py.plot(w[i,:]) # kolejno wykreślamy wszystkie okna py.legend(range(len(eigen))) py.show() print(eigen) # sprawdzamy czy okna są ortogonalne print('Iloczyny skalarne sekwencji okien:') for i in range(len(eigen)): for j in range(i,len(eigen)): print('okno '+str(i)+' z oknem '+str(j)+': '+'{:.5f}'.format( np.dot(w[i,:],w[j,:]) ) ) Estymacja widma mocy Proszę napisać funkcję do estymacji mocy metodą wielookienkową. Funkcja powinna pobierać następujące argumenty: sygnał, iloczyn NW, częstość próbkowania sygnału. Funkcja powinna zwracać krotkę (F,P) gdzie P widmo mocy, F skala częstości. Przykładowe wywołanie takiej funkcji powinno wyglądać tak: (S,F) = mtm(s, NW = 3, Fs = 128) Działanie funkcji sprawdź estymując i wykreślając widmo sinusoidy np. o częstości 10 Hz, czasie trwania 1s, próbkowanej 100Hz z dodanym szumem gaussowskim o średniej 0 i wariancji 1. Sprawdź także zachowanie energii przez tą estymatę. Dla porównania na tym samym wykresie dorysuj widmo otrzymane przez periodogram z oknem prostokątnym. Algorytm do zastosowania wewnątrz funkcji: 1. 2. 3. 4. Oblicz maksymalną liczbę okienek K = 2*NW-1 Oblicz długość sygnału wygeneruj serię okienek dpss dla każdego z otrzymanych okienek oblicz widmo mocy iloczynu tego okienka i sygnału. Dla itego okienka będzie to: Si = np.abs(fft(s*w[i]))**2 5. uśrednij widma otrzymane dla wszystkich okienek 6. wygeneruj oś częstości (fftfreq) Uzupełnij poniższy kod: # -*- coding: utf-8 -*import pylab as py import numpy as np from dpss import dpss_window from numpy.fft import rfft,rfftfreq from matplotlib.font_manager import FontProperties font = FontProperties('Arial') def sin(f = 1, T = 1, Fs = 128, phi = ): '''sin o zadanej częstości (w Hz), długości, fazie i częstości próbkowania Domyślnie wytwarzany jest sygnał reprezentujący 1 sekundę sinusa o częstości 1Hz i zerowej fazie próbkowanego 128 Hz ''' ... return (s,t) def periodogram(s, okno , Fs): '''peiodogram sygnału s okno - synał będzie przez nie przemnożony w czasie F_samp- częstość próbkowania''' ... return (F,P) def mtm(s, NW , Fs): '''estymacja widma w oparciu o metodę Multiteper D. J. Thomson, “Spectrum Estimation and Harmonic Analysis,” Proceedings of the IEEE, vol. 70, no. 9, pp. 1055 – 1096, 1982. x - sygnał N -ilość punktów okna NW - iloczyn długości okna w czasie i szerokości w częstości K - ilość okien funkcja zwraca estymatę mocy widmowej ''' K = 2*NW-1 N = len(s) w, eigen = ...# wygeneruj sekwencję okien DPSS P_tmp = for i in range(K): #dla każdego okna (F,Pi)= ...# oblicz periodogram P_tmp+= ...# dodaj do zmiennej tymczasowej P = ...# moc jest średnią z periodogramów dla poszczególnych okien F = rfftfreq(N,1.0/Fs) return (F, P) #prezentacja widma Fs = 200.0 # częstość próbkowania # tworzymy sygnał testowy (s1,t) = sin(f=10.2,Fs=Fs) (s2,t) = sin(f=17.2,Fs=Fs) s = s1+s2+np.random.randn(len(t)) py.figure(1) NW = 2 # ustalamy szerokość pasma (F_m,P_m) = ... # estymujemy widmo metodą mtm (F_p,P_p) = ... # estymujemy widmo metodą periodogram z oknem prostokątnym # wykreślamy wyniki py.plot(F_m,P_m) py.plot(F_p,P_p ,'g') # opisy wykresu py.xlabel('Częstość [Hz]', fontproperties = font) py.ylabel('Gestość mocy V^2/Hz', fontproperties = font) py.title('Porównanie estymat gęstości mocy: wielokoienkowej i periodogramu', fontproperties = font) py.legend(('wielookienkowa','periodogram')) # test zacowania energii print('Test zachowania energii:') print( 'energia w czasie = \t\t'+ '{:.5f}'.format( ... )) print( 'energia w mtm = \t\t'+ '{:.5f}'.format( ... )) print( 'energia w periodogramie = \t'+ '{:.5f}'.format( ... )) py.show() Zadanie 8 Proszę wykonać ilustrację średniej wraz z przedziałami ufności 95% oraz błędu względnego w estymatorze wielookienkowym (dla porównania periodogram), analogicznie jak w zadaniu 6. Co musimy z tego zapamiętać Jak definiujemy moc sygnału i energię w dziedzinie czasu w analizie sygnałów? Jak definiujemy gęstość energii i energię sygnału w dziedzinie częstości? Jak estymować periodogram? Co to znaczy że sygnał jest stochastyczny? Co to znaczy że sygnał jest stacjonarny i ergodyczny? Jaki jest błąd względny widma białego szumu estymowanego za pomocą periodogramu? Metody zmniejszenia błędu względnego: metoda Welcha i metoda wielookienkowa Thomsona na czym polegają, jakie są podobieństwa i różniece w stosowaniu tych metod? W jakich sytuacjach wybrać metodę Welcha a w jakich Thomsona? Analiza_sygnałów_-_ćwiczenia/Fourier_4