ANALIZA SYGNAŁÓ W JEDNÓWYMIARÓWYCH Generowanie podstawowych przebiegów okresowych sawtooth() przebieg trójkątny (wierzhołki +/-1, okres 2 ) square() przebieg kwadratowy (okres 2 ) gauspuls()przebieg sinusoidalny modyfikowany Gaussem (nieperiodyczny) chirp()przebieg kosinusoidalny o zmiennym okresie Zadanie 1: Wygeneruj falę trójkątną o czasie trwanie 1.5 s i częstotliwości 50 Hz. Częstotliwość próbkowania Fs=10 khz. Następnie 0,2 s trwania sygnału przedstaw na wykresie. (rysowaniu wykresów w Matlabie służy funkcja plot()) Fs=; t=..; x=.; plot(..), axis(..) Rysunek 1 Spodziewany wynik zadania 1-go Filtracja cyfrowa splot Jednowymiarowy splot 2-óch wektorów funkcja conv() m= y(n) = (h x)(n) = h(n m)x(m) m=
Przykład: x=randn(5,1); % dane wejściowe h=[1 1 1 1]/4; %odpowiedź impulsowa filtru Y=conv(h,x); %ruchoma średnia ważona wejścia Filtrowanie funkcji z zastosowaniem funkcji Matlaba: filter() filtfilt() eliminacja zniekształceń fazowych w trakcie filtracji fftfilt() filtracja FIR (Finite Impulse Response)w dziedzinie częstotliwości Odpowiedź impulsowa filtru: imp=[1 zeros(,1,49)]; % współczynniki filtru b=1; a=[1-0.9]; h=filter(b,a,imp); impz(b,a); Zadanie 2. Wykonaj filtrację sygnału x o czasie trwania 1s, składającego się z dwóch sinusoid o częstotliwości 3 Hz i 40 Hz. Częstotliwość próbkowania Fs=100 Hz. W tym celu utwórz filtr FIR 10-go rzędu stosując funkcję filter (wyjście yy) i filtfilt (wyjście y). Wyjaśnij różnice w działaniu obu filtrów. Fs= t=. x=.. b=ones(1,10)/10; y=. yy=.. subplot( ) plot(.) % Współczynniki filtru: % 3 wykresy w 1-ym oknie %wykres Charakterystyka częstotliwościowa filtrów cyfrowych [H,w]=freqz(b,a,n) H- zespolona odpowiedz częstotliwościowa H(e jw ) filtru cyfrowego w- dyskretna wartość częstości kołowej [rad/s] n-liczba pulsacji (dla ilu punktów będzie obliczana odpowiedź) a,b współczynniki filtru w postaci wektorowej
Rysunek 2 Spodziewany wynik zadanie 2-go Projektowanie filtrów IIR (Infinite Impulse Response) a) prototypowanie analogowe Najbardziej popularne filtry możliwe do implementacji w Matlabie: [b,a]=butter() - dolnoprzepustowy filtr Butterwotha, [b,a]=cheby1() - środkowoprzepustowy filtr Chebyshewa typu I, [b,a]=cheby2() - górnoprzepustowy filtr Chebyshewa typu II, [b,a]=ellip() - środkowozaporowy filtr eliptyczny. Konstrukcja filtru analogowego polega na dodaniu jako ostatniego parametru litery s a częstotliwości odcięcia w rad/s. b) metoda bezpośrednia [b,a]=yulewalk(f,n,m) Wektory b i a składają się z n+1 współczynników (licznika i mianownika) filtru IIR n-tego rzędu Wektory f i m zawierają dane aproksymujące charakterystykę amplitudowoczęstotliwościową filtru.: f- wektor punktów częstotliwościowych [0,1] gdzie 1-częstotliwośc Nyquista m- zdana amplituda odpowiedzi dla punktów z wektora f
Funkcja umożliwia projektowanie filtru przez dopasowanie odpowiedzi częstotliwościowej filtru do zadanego kształtu. Współczynniki dopasowania są znajdowane przez rozwiązanie znalezienia odwrotnej transformaty Fouriera dla idealnego widma częstotliwościowego i rozwiązania zmodyfikowanej postaci równania Yule-Walkera (wymagana znajomośćfunkcji autokorelacji) Zadanie 3 Znajdź 256 punktową odpowiedź częstotliwościową dla dolnoprzepustowego filtru Czebyshewa typu I 12-go rzędu o częstotliwości granicznej 200 Hz i oscylacjach w paśmie przepustowym 0.5 db Częstotliwość próbkowania Fs=1000 Hz. Wyświetl amplitudę odpowiedzi (funkcja abs()) i kąt fazowy w radianach (funkcja angle()). Analogiczną procedurę przeprowadź dla filtra Butterwortha (6-ty rząd, częstotliwość graniczna 300 Hz, częstotliwość próbkowania 2000 Hz). [b,a]=cheby1(.); [c,d]=butter(..) [h,f]=freqz(..); [g,z]=freqz(..); m=abs(h); n=abs(g); p=angle(h); r=angle(g); subplot(2,2,1) plot(f,m,'black'); subplot(2,2,2) plot(f,p*180/pi,'red'); subplot(2,2,3) plot(z,n,'black'); subplot(2,2,4)
plot(z,r*180/pi,'red'); Rysunek 3 Spodziewany rezultat zadania 3-go. U góry filtr Czebyshewa (czarny - amplituda, czerwony- kąt fazowy), na dole filtr Butterwortha (analogiczne oznaczenie) Projektowanie filtrów FIR (Finite Impulse Response) Do projektowanie filtrów FIR w Matlabie służą funkcję: fir() (zastosowanie okien z liniową fazą, projektowanie filtrów jedynie standardowych) b=fir(n,wn) fir2() (pozwala uzyskać dowolną charakterystykę częstotliwościową za pomocą odcinków liniowych) b=fir2(n,f,m) firls() (rozszerzenie poprzednich metod z minimalizacją błędu średniokwadratowego) bb=firls(n,f,m)