Filtrowanie a sploty idea x=[2222222222] %sygnałstochastycznyodługości5próbek h=[1111]/4; %Filtruśredniającypo4sąsiednichelementach y=conv(h,x)%zaaplikowaniefiltruhdosygnałux W powyższym przykładzie proszę zwrócić uwagę na efekty brzegowe. MAszumu N=100; x = randn(n,1); % sygnał stochastyczny o długości N próbek h=[1111]/4; %Filtruśredniającypo4sąsiednichelementach y=conv(h,x);%zaaplikowaniefiltruhdosygnałux t_x=1:n; t_y=1:length(y); plot(t_x,x,t_y,y);
Działanie filtru w dziedzinie czasu y(n) =b(1) x(n) +b(2) x(n 1) +... +b(n b +1) x(n n b ) a(2) y(n 1)... a(n a +1) y(n n a ) Jeślin a =0in b 0filtrmaskończonąodpowiedź impulsową bo odpowiedź na impulsowe wzbudzenie kończysiępon b próbkach.nazywamygo(finite Impulse Responce FIR), nie rekursywny, średnia biegnąca(moving Average MA) Jeślin b =0in a 0mamyfiltrnieskończonejodpowiedzi impulsowej bo potencjalnie raz wzbudzony może dowolnie długo produkować niezerowe wyjście. Nazywa się go:(infinite Impulse Responce IIR), filtr rekursywny, autoregresyjny AR, Jeślin b 0in a 0 przypadeknajbardziejogólny filtrjesttypu IIR albo ARMA- autoregresive moving average.
Funkcja filter Wprowadzenie coś takiego jest zaimplementowane w funkcji y=filter(b,a,x) gdzie b, a są to współczynniki z poprzedniego równania. np: filter przykład b=[0.7 0.5];%licznik a=[1-0.9];%mianownik y=filter(b,a,x);% x nasz sygnał y- wynik filtrowania o takiej samej długości co x t=1:length(x); plot(t,x,t,y)
Działanie filtru w dziedzinie częstości Stosując transformatę Z możemy równanie z dziedziny czasu przenieść do dziedziny częstości. Filtrowanie odpowiada przemnożeniu transformaty sygnału przez transformatę funkcji przenoszenia filtru: Y (z) =H(z)X(z) = b(1) +b(2)z 1 + +b(n b +1)z n b a(1) +a(2)z 1 + +a(n a +1)z nax(z) Znając funkcję H łatwo możemy przewidzieć co się stanie z widmem sygnału po przefiltrowaniu. Każda ze składowych sygnału zrzutowana na wektory bazowe(exponens zespolony) zostanie przemnożonaprzezliczbęzespolonąh(f ) =A(f )e iφ(f ) -zatem może jej się zmienić amplituda i faza.
Badanie własności filtru w dziedzinie częstości Funkcja freqz wylicza funkcję przenoszenia filtru zadanego współczynnikami b, a funkcja przenoszenia b=[0.7 0.5];%licznik a=[1-0.9];%mianownik n=128; [h,w]=freqz(b,a,n);% n ilość punktów na których będzie obliczona funkcja h m=abs(h);% przenoszenie częstości ph=unwrap(angle(h));%faza subplot(211) plot(w,h) title( modul ) subplot(212) plot(w,h)
Opóźnienie grupowe i fazowe filtru grupwe τ g (ω) = dφ(ω) dω [gd, w]= grpdelay(b,a,n); fazowe τ p (ω) = φ(ω) ω [b,a] = butter(10,200/1000); gd = grpdelay(b,a,128); [h,f] = freqz(b,a,128,2000); pd=-unwrap(angle(h))*(2000/(2*pi))./f; plot(f,gd, -,f,pd, -- ) axis([0 1000-30 30]) legend( Group Delay, Phase Delay ) opoźnienia
Zaburzanie fazy Wprowadzenie filtfilt
Specyfikacja własności filtru ogólne określenie pasma przenoszenia np: dla sygnału próbkowanego 128 Hz zaprojektować filtr dolnoprzepustowy 30Hz w bardziej rygorystycznym opisie możemy wymagać: wielkość listków(ripple) w paśmie przenoszenia(pass band), tłumienie pasma tłumieniowego(stop band), szerokość pasma przejściowego
Funkcje do projektownaia filtrów FIR fir1 klasyczne pasma lowpass, bandpass, highpass, bandstop fir2 dowolne, odcinakmi prostoliniowe pasmo przenoszenia firls uogólnienie fir1 i fir2 robi minimalizację błędu kwadratowego między porządaną a faktyczną funkcją przenoszenia remez algorytm optymalizuje filtr pod względem maksymalnej rozbieżności pomiędzy zadaną i faktyczną funkcją przenoszenia Wszystkie funkcje do projektowania filtrów w matlabie działają na znormalizowanej częstości: FN = 1
Przykład Wprowadzenie f=[00.60.61]; m=[1 1 0 0]; n=30; b=fir2(n,f,m); [h,w] = freqz(b,1,128); plot(f,m,w/pi,abs(h)) legend( Idealny, To co wyszlo z fir2 ) fir2 remez i firls n=20; %Filterorder f=[00.40.51]; %Frequencybandedges a=[1 1 00]; %Desiredamplitudes b_rem = remez(n,f,a); [h_rem,w_rem] = freqz(b_rem,1,128); b_ls = firls(n,f,a); [h_ls,w_ls] = freqz(b_ls,1,128); plot(f,a,w_rem/pi,abs(h_rem),w_ls/pi,abs(h_ls)) legend( Idealny, remez, firls )
Zaprojektuj i zbadaj własności filtru: 1 FIR48rzęduzpasmemprzenoszenia0.35 < ω <0.65 2 FIR 20 rzędu dolnoprzepustowy z pasmem przenoszenia do 40 Hz dla sygnału próbkowanego 256 Hz 3 FIR górnoprzepustowy z pasmem przenoszenia od 30 Hz dla sygnału próbkowanego 256 Hz