Języki Modelowania i Symulacji

Podobne dokumenty
Języki Modelowania i Symulacji

DYSKRETNA TRANSFORMACJA FOURIERA

Transformacje i funkcje statystyczne

ĆWICZENIE III ANALIZA WIDMOWA SYGNAŁÓW DYSKRETNYCH. ver.3

Transformata Laplace a to przekształcenie całkowe funkcji f(t) opisane następującym wzorem:

Laboratorium Przetwarzania Sygnałów Biomedycznych

Języki Modelowania i Symulacji

Ćwiczenie 4. Filtry o skończonej odpowiedzi impulsowej (SOI)

ANALIZA SYGNAŁÓ W JEDNÓWYMIARÓWYCH

Laboratorium Przetwarzania Sygnałów Biomedycznych

Przekształcenie Fouriera i splot

Podstawy Przetwarzania Sygnałów

CYFROWE PRZETWARZANIE SYGNAŁÓW

Ćwiczenie 6 Projektowanie filtrów cyfrowych o skończonej i nieskończonej odpowiedzi impulsowej

x(n) x(n-1) x(n-2) D x(n-n+1) h N-1

Przetwarzanie sygnałów dyskretnych

Przetwarzanie sygnałów

ZASTOSOWANIA PRZEKSZTAŁCENIA ZET

Cyfrowe przetwarzanie sygnałów Jacek Rezmer -1-

Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L

Przetwarzanie sygnałów

Ćwiczenie 6 Projektowanie filtrów cyfrowych o skończonej i nieskończonej odpowiedzi impulsowej

Przetwarzanie i transmisja danych multimedialnych. Wykład 8 Transformaty i kodowanie cz. 2. Przemysław Sękalski.

Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L

Technika regulacji automatycznej

Teoria Sygnałów. III rok Informatyki Stosowanej. Wykład 8

Laboratorium Przetwarzania Sygnałów. Ćwiczenie 2. Analiza widmowa

Filtrowanie a sploty. W powyższym przykładzie proszę zwrócić uwagę na efekty brzegowe. Wprowadzenie Projektowanie filtru Zadania

Projektowanie układów regulacji w dziedzinie częstotliwości. dr hab. inż. Krzysztof Patan, prof. PWSZ

Detekcja zespołów QRS w sygnale elektrokardiograficznym

ZAJĘCIA II. Zmienne losowe, sygnały stochastyczne, zakłócenia pomiarowe

Wprowadzenie. Spis treści. Analiza_sygnałów_-_ćwiczenia/Filtry

Laboratorium Przetwarzania Sygnałów

b n y k n T s Filtr cyfrowy opisuje się również za pomocą splotu dyskretnego przedstawionego poniżej:

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Akwizycja i przetwarzanie sygnałów cyfrowych

Laboratorium nr 4: Porównanie filtrów FIR i IIR. skończonej odpowiedzi impulsowej (FIR) zawsze stabilne, mogą mieć liniową charakterystykę fazową

Układy i Systemy Elektromedyczne

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

Laboratorium Przetwarzania Sygnałów. Ćwiczenie 3. Filtracja i korelacja sygnałów dyskretnych

SPRZĘTOWA REALIZACJA FILTRÓW CYFROWYCH TYPU SOI

8. Realizacja projektowanie i pomiary filtrów IIR

DYSKRETNE PRZEKSZTAŁCENIE FOURIERA C.D.

Zaawansowane algorytmy DSP

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Kartkówka 1 Opracowanie: Próbkowanie częstotliwość próbkowania nie mniejsza niż podwojona szerokość przed spróbkowaniem.

13.2. Filtry cyfrowe

Laboratorium Przetwarzania Sygnałów. Ćwiczenie 2. Filtracja i korelacja sygnałów dyskretnych

Dyskretne przekształcenie Fouriera cz. 2

Transformaty. Kodowanie transformujace

2. P (E) = 1. β B. TSIM W3: Sygnały stochastyczne 1/27

Katedra Elektrotechniki Teoretycznej i Informatyki

2. Próbkowanie Sygnały okresowe (16). Trygonometryczny szereg Fouriera (17). Częstotliwość Nyquista (20).

Zjawisko aliasingu. Filtr antyaliasingowy. Przecieki widma - okna czasowe.

Adaptacyjne Przetwarzanie Sygnałów. Filtracja adaptacyjna w dziedzinie częstotliwości

FFT i dyskretny splot. Aplikacje w DSP

przedmiot kierunkowy (podstawowy / kierunkowy / inny HES) obieralny (obowiązkowy / nieobowiązkowy) polski semestr VI

WOJSKOWA AKADEMIA TECHNICZNA

Kompresja Danych. Streszczenie Studia Dzienne Wykład 13, f(t) = c n e inω0t, T f(t)e inω 0t dt.

Twierdzenie o splocie

Akwizycja i przetwarzanie sygnałów cyfrowych

Rys. 1. Wzmacniacz odwracający

Laboratorium nr 3. Projektowanie układów automatyki z wykorzystaniem Matlaba i Simulinka

Generowanie sygnałów na DSP

Stabilność. Krzysztof Patan

Opis matematyczny. Równanie modulatora. Charakterystyka statyczna. Po wprowadzeniu niewielkich odchyłek od ustalonego punktu pracy. dla 0 v c.

Przetwarzanie i transmisja danych multimedialnych. Wykład 9 Kodowanie podpasmowe. Przemysław Sękalski.

TEORIA STEROWANIA I, w 5. dr inż. Adam Woźniak ZTMiR MEiL PW

Filtry cyfrowe. h(n) odpowiedź impulsowa. Filtr cyfrowy. Procesory sygnałowe (DSP), układy programowalne

Podstawy Automatyki. Wykład 5 - stabilność liniowych układów dynamicznych. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

4 Zasoby językowe Korpusy obcojęzyczne Korpusy języka polskiego Słowniki Sposoby gromadzenia danych...

Języki Modelowania i Symulacji

Analiza szeregów czasowych: 2. Splot. Widmo mocy.

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Technika audio część 2

9. Dyskretna transformata Fouriera algorytm FFT

Katedra Elektrotechniki Teoretycznej i Informatyki

1 Gaussowskie zmienne losowe

Podstawy Automatyki. Wykład 5 - stabilność liniowych układów dynamicznych. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Podstawy Automatyki. Wykład 5 - stabilność liniowych układów dynamicznych. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

GENERACJA PRZEBIEGU SINUSOIDALNEGO.

Ważne rozkłady i twierdzenia c.d.

Analiza szeregów czasowych: 2. Splot. Widmo mocy.

PORÓWNANIE METOD PROJEKTOWANIA FILTRÓW CYFROWYCH

Przekształcenie Fouriera obrazów FFT

zadania z rachunku prawdopodobieństwa zapożyczone z egzaminów aktuarialnych

Katedra Fizyki Ciała Stałego Uniwersytetu Łódzkiego. Ćwiczenie 2 Badanie funkcji korelacji w przebiegach elektrycznych.

Andrzej Leśnicki Laboratorium CPS Ćwiczenie 10 1/12 ĆWICZENIE 10. Filtry FIR

Wykład 3 Jednowymiarowe zmienne losowe

Transformata Fouriera i analiza spektralna

Algorytmy detekcji częstotliwości podstawowej

Stacjonarność i ergodyczność

Filtracja. Krzysztof Patan

Inżynieria Systemów Dynamicznych (3)

Biometryczna Identyfikacja Tożsamości

Interpolacja, aproksymacja całkowanie. Interpolacja Krzywa przechodzi przez punkty kontrolne

Laboratorium Przetwarzania Sygnałów Biomedycznych

Modelowanie Systemów Dynamicznych Studia zaoczne, Automatyka i Robotyka, rok II. Podstawy MATLABA, cz2.

Przetwarzanie sygnałów z czasem ciągłym

Transkrypt:

Języki Modelowania i Symulacji Podstawowe Marcin Ciołek Katedra Systemów Automatyki WETI, Politechnika Gdańska 13 października 211

Literatura: 1. D. Kincaid, W. Cheney: Analiza numeryczna, Wydawnictwo Naukowo Techniczne, 26. 2. P. Davis, W.: Differential Equations - Modelling with MATLAB, Prentice Hall, 1999. 3. Dokumentacja MATLABA i SIMULINKA. 4. B.Mrozek, Z. Mrozek: MATLAB Uniwersalne środowisko do obliczeń naukowo-technicznych, Kraków 1995. 5. T.P. Zieliński: Cyfrowe przetwarzanie sygnałów - Od teori do zastosowań, Warszawa 29.

O czym będziemy dziś mówili? 1 2 3 4 5 6 7

FFT Funkcje fft(x) i ifft(x) (Fast Fourier Transform) impementuja prosta i odwrotna transformatę gdzie w N = e (2πi)/N X(k) = x(j) = 1 N N j=1 N k=1 x(j)w (j 1)(k 1) N X(k)w (j 1)(k 1) N

FFT 3 2 1-1 -2-3 2 4 6 8 1 12 14 16 18 2 Sygnał y(t) Fs=1; T = 1/Fs; L= 1; t= (:L-1).*T; f1=2; f2=5; f3=1; y= sin(2*pi*f1.*t)+sin(2*pi*f2.*t)+sin(2*pi*f3.*t); plot(t,y)

1 Widmo amplitudowe FFT.9.8.7 Y(f).6.5.4.3.2.1 5 1 15 2 25 Częstotliwość (Hz) NFFT = 2^nextpow2(L); Y = fft(y,nfft)/l; f = Fs/2*linspace(,1,NFFT/2+1); plot(f,2*abs(y(1:nfft/2+1))) set(gca,'fontname', 'Times New Roman CE', 'FontSize',16) title('widmo amplitudowe') xlabel('częstotliwość (Hz)') ylabel(' Y(f) ')

5 4 3 2 1-1 -2-3 FFT -4 2 4 6 8 1 12 14 16 18 2 Sygnał y(t) Fs=1; T = 1/Fs; L= 1; t= (:L-1).*T; f1=2; f2=5; f3=1; y= sin(2*pi*f1.*t)+sin(2*pi*f2.*t)+sin(2*pi*f3.*t); y = y +.625*randn(size(t)); plot(t,y)

FFT Y(f) 1.9.8.7.6.5.4.3.2 Widmo amplitudowe.1 5 1 15 2 25 Częstotliwość (Hz)

IFFT 2 x 1-15 1.5 1.5 -.5-1 -1.5 2 4 6 8 1 12 14 16 18 2 Różnica sygnału oryginalnego z sygnałem otrzymanym po odwrotnej transformacie. Czy bład jest akceptowalny?

rand Funkcja gęstości rozkładu równomiernego (prostokatnego) w przedziale (a, b), gdzie h = b a { 1/h dla x (a, b) p(x) = dla x / (a, b) Funkcja MATLAB-a p = a + (b a). rand(n, 1)

rand 1 9 8 7 6 5 4 3 2 1 1 2 3 4 5 6 7 8 9 1 równomiernym a = ; b = 1; n = 1; x = a + (b-a).* rand(n,1); plot(x)

hist 12 1 8 6 4 2 1 2 3 4 5 6 7 8 9 1 równomiernym hist(x)

zadanie Jak wygenerować sygnał losowy, który przyjmuje stan wysoki(h = 1) z prawdopodobieństwem.2 oraz stan niski (L = ) z prawdopodobieństwem.8? 1.2 1.8.6.4.2 -.2 1 2 3 4 5 6 7 8 9 1 Sygnał losowy

find 1.2 1.8.6.4.2 -.2 1 2 3 4 5 6 7 8 9 1 Sygnał losowy a = ; b = 1; n = 1; x = a + (b-a).*rand(n,1); ii = find(x>=.8); length(ii) ans = 19 y = zeros(n,1); y(ii)=1; stairs(y) axis([ n -.25 1.25])

randn Funkcja gęstości rozkładu normalnego (gaussowskiego) ze średnia µ i odchyleniem standardowym σ φ µ,σ (x) = 1 ( ) (x µ) 2 σ 2π exp 2σ 2 Funkcja MATLAB-a p = µ + σ. randn(n, 1)

randn 2.5 2 1.5 1.5 -.5-1 -1.5-2 1 2 3 4 5 6 7 8 9 1 mi =.5; xs = ; n = 1; x = xs + mi.*randn(n,1); plot(x) mean(x) >> ans = -3.3367e-4 std(x) >> ans =.51 var(x) >> ans =.2511

hist 1 9 8 7 6 5 4 3 2 1-2.5-2 -1.5-1 -.5.5 1 1.5 2 2.5 h = -2:.1:2; hist(x,h)

cov P jest uogólnieniem pojęcia wariancji na przypadek wielowymiarowy. taka dla macierzy X = (x 1, x 2,..., x n ) ma postać: P = cov(x) σ 2 1 σ 12... σ 1n σ 21 σ2 2... σ 2n P =........ σ n1 σ n2... σn 2 P jest symetryczna i dodatnio określona

cov x1 = [1 2 3]'; x2 = [4 2 6]'; A = [6 2 3; 6 5 6; 9 8 9]; cov(x1) >> ans = 1 cov(x1,x2) >> ans = [1 1; 1 4] cov(a) >> ans = [3 4.5 4.5; 4.5 9 9; 4.5 9 9] v = diag(cov(a))' >> ans =???

xcorr Funkcja korelacji wzajemnej w MATLAB-ie c = xcorr(x,y, option ) ˆR xy (m) = biased - obciażony N m n=1 x(n)y(n m) R xy (m) = 1 N R xy(m) unbiased - nieobciażony R xy (m) = 1 N m R xy(m)

xcorr Funkcja korelacji wzajemnej c = xcorr(x,y, option ) x = [1 2 3 4]'; y = [1 5 3 3]'; xcorr(x,y) ans = 3 9 2 32 29 23 4 xcorr(y,x) ans = 4 23 29 32 2 9 3 xcorr(x,x) ans = 4 11 2 3 2 11 4

xcorr 1.5 -.5 y(t)=sin(2πft) -1 1 2 3 4 5 6 7 8 9 1 1.5 -.5 xcorr(y,y,'unbiased') -1-1 -8-6 -4-2 2 4 6 8 1.5 xcorr(y,y,'biased') -.5-1 -8-6 -4-2 2 4 6 8 1 1 xcorr(y,y) 5-5 -1-8 -6-4 -2 2 4 6 8 1 Funkcja autokorelacji sygnału y(t)

xcorr.2.1 -.1 Fragment sygnału mowy dźwięcznej -.2 1 2 3 4 5 6 7 5 x 1-3 xcorr(y,y,'unbiased') -5-6 -4-2 2 4 6 5 x 1-3 xcorr(y,y,'biased') -5-6 -4-2 2 4 6 4 xcorr(y,y) 2-2 -6-4 -2 2 4 6

xcorr.4.2 -.2 Fragment sygnału mowy bezdźwięcznej -.4 1 2 3 4 5 6 7 1 x 1-3 xcorr(y,y,'unbiased') 5-5 -6-4 -2 2 4 6 1 x 1-3 xcorr(y,y,'biased') 5-5 -6-4 -2 2 4 6 6 xcorr(y,y) 4 2-2 -6-4 -2 2 4 6

xcorr 3 25 2 15 1 5-5 -1-1 -8-6 -4-2 2 4 6 8 1 Funkcja autokorelacji szumu o Dla jakiego przesunięcia szum jest skorelowany sam ze soba?

sygnał Sygnał składa się z części deterministycznej oraz części losowej. Przykład: model autoregresyjny y(t) = r a i y(t i) + n(t) i=1 y(t) - bieżace wyjście modelu r - rzad modelu a i - współczynniki autoregresji n(t) - szum gaussowski o zerowej wartości średniej i wariancji σn 2 Aby model był stabilny pierwiastki wielomianu charakterystycznego W(z) musza leżeć wewnatrz okręgu jednostkowego na płaszczyźnie zespolonej z. W (z) = 1 a 1 z 1 a r z z r

pierwiastki Określakac wartości pierwiastków wewnatrz okręgu jednostkowego na płaszczyźnie zespolonej z można otrzymać poszukiwany wektor współczynników Im 1.8.6.4.2 -.2 -.4 -.6 -.8 ZERA i BIEGUNY -1-1 -.8 -.6 -.4 -.2.2.4.6.8 1 Re re = [-.1 -.15.8 ]'; im = [ ]'; NP = 1; fi=2*pi*(:1:np-1)/np; s=sin(fi); c=cos(fi); plot(s,c,'-k',re,im,'r*'); title('zera i BIEGUNY'); xlabel('re') ylabel('im') grid;

poly Funkcja MATLABA-a zwraca współczynniki wielomianu c = poly(p) gdzie p to wektor pierwiastków naszego wielomianu W(z) p = [-.1.8 -.15 ]'; r = poly(p) ans>> 1. -.55 -.185 -.12 p = roots(r) ans>>.8 -.15 -.1 a = -r(2:4) ans>>.55.185.12

generowanie sygnału Autoregresyjny model sygnału, gdzie zakładamy σn 2 = 1 r y(t) = a i y(t i) + n(t) 1 8 6 4 2-2 i=1-4 -6-8 1 2 3 4 5 6 7 8 9 1 Wygenerowany sygnał dla obliczonych współczynników

generowanie sygnału N = 1; r = 3; a = [.55.185.12]'; sr = ; war = 1; odch = sqrt(war); n = sr + odch.*randn(n,1); y=zeros(n,1); ---------------------------- for t=1:n if t < r + 1 y(t)= ; else fi = y(t-1:-1:t-r); y(t)= fi'*a+n(t); end end ---------------------------- plot(y)

Jak filtrujemy sygnał? (z ang. finite impulse response ) filtr FIR H(z 1 ) = b + b 1 z 1 + + b n z n

Własności filtrów FIR: Zalety: liniowy przebieg fazy filtr stabilny względnie łatwe procedury projektowania filtrów łatwość implemaentacji hardware owej wpływ warunków poczatkowych jest zawsze skończony Wady: duży wymagany rz ad filtru (większy niż odpowiednich filtrów IIR) większe opóźnienie w torach sygnałowych

Idelana charakterystyka amplitudowa filtru idealny filr odpowiedź impulsowa tego filtru h(n) = 1 2π π π H(ω)e jωn dω = 1 2π ωo ω o e jωn dω = = ω o π sinc(ω on π ) Co powiesz o odpowiedzi impulsowej idealnego filtru FIR?

sinc Idelana charakterystyka amplitudowa filtru obcięta za pomoca okna prostokatnego.4.35.3.25.2.15.1.5 -.5 -.1-1 -8-6 -4-2 2 4 6 8 1 Ile wynosi częstotliwość odcięcia? b =.4*sinc(.4.*(-25:25)); stem(.4.*(-25:25),b)

Jak można ograniczyć ten efekt? efekt Gibbsa 1.4 1.2 1.8.6.4 Efekt obcinania metodą okna prostokątnego.2.1.2.3.4.5.6.7.8.9 1 Fp = 2; %Hz n = 512; [H,w]=freqz(b,1,n,Fp); plot(w,abs(h)) set(gca,'fontname', 'Times New Roman CE', 'FontSize',16) title('efekt obcinania metodą okna prostokątnego') xlabel('rad/sek')

Co się poprawiło, a co się pogorszyło? hamming 1.4 1.2 1.8.6.4 Zastosowanie okna Hamminga.2.1.2.3.4.5.6.7.8.9 1 rad/sek Fp = 2; %Hz n = 512; b=b.*hamming(51)'; [H,w]=freqz(b,1,512,2); plot(w,abs(h)) set(gca,'fontname', 'Times New Roman CE', 'FontSize',16) title('zastosowanie okna Hamminga') xlabel('rad/sek')

Co się poprawiło, a co się pogorszyło? Porównanie obu okien 1.4 1.2 1.8.6 hamming prostokątne hamming.4.2.1.2.3.4.5.6.7.8.9 1 rad/sek

w[k] = 1.9.8.7.6.5.4.3 bartlett { 2(k 1) n 1 dla 1 k n+1 2 2 2(k 1) n 1 dla n+1 2 k n Okno Bartletta.2.1-25 -2-15 -1-5 5 1 15 2 25 w3 = bartlett(51); stem(-25:25,w3)

blackman ( w[k] =.42.5 cos 2π k 1 ) ( +.8 cos 4π k 1 ) n 1 n 1 k = 1,..., n 1.9.8.7.6.5.4.3 Okno Blackmana.2.1-25 -2-15 -1-5 5 1 15 2 25 w3 = blackman(51); stem(-25:25,w3)

Okno prostokatne 1.9.8.7.6.5.4.3.2.1 w = boxcar(n) Okno prostokątne boxcar -25-2 -15-1 -5 5 1 15 2 25 w3 = boxcar(51); stem(-25:25,w3)

Okno Czebyszewa 1.9.8 w = chebwin(n,r) Okno Czebyszewa chebwin.7.6.5.4.3.2.1-25 -2-15 -1-5 5 1 15 2 25 n=51; r=1;%db w3 = chebwin(n,r); h=stem(-25:25,w3)

Okno Czebyszewa w = chebwin(n,r) chebwin n - punktowe okno dla n nieparzystego (n + 1) - punktowe okno dla n parzystego r - wielkość tłumienia zafalowań poza pasmem przenoszenia w [db] Amplitude 1.8.6.4 Time domain Magnitude (db) 4 2-2 -4-6 -8 Frequency domain.2-1 -12 2 4 6 8 1 Samples -14.2.4.6.8 Normalized Frequency ( π rad/sample) n=51; r=1;%db wvtool(chebwin(n,r))

( w[k] =.54.46 cos 2π k ) n 1 1.9.8.7.6.5.4.3.2 Okno Hamminga hamming k =,..., n 1.1-25 -2-15 -1-5 5 1 15 2 25 w3 = hamming(51); stem(-25:25,w3)

( w[k] =.5(1 cos 2π k ) n + 1 1.9.8.7.6.5.4.3.2 Okno Hanninga hanning k = 1,..., n.1-25 -2-15 -1-5 5 1 15 2 25 w3 = hanning(51); stem(-25:25,w3)

Okno Kaisera w = kaiser(n,β) kaiser β - współczynnik odpowiedzialny za tłumienie listków bocznych α - [db] tłumienie listków bocznych.112(α 8.7) dla α 5 β =.5842(α 21).4 +.7886(α.21) dla 5 α 21 dla α 21 zwiększajac β uzyskuje się: poszerzenie listka głównego zwiększenie tłumienia listków bocznych n α 8 + 1 gdzie [rad/s] pasmo 2.285

kaiser 1.8 Time domain 4 2-2 Frequency domain Amplitude.6.4.2 Magnitude (db) -4-6 -8-1 -12 1 2 3 4 5 Samples -14.2.4.6.8 Normalized Frequency ( π rad/sample) n=54; beta = 1.6126; alpha = 1;%dB wvtool(kaiser(n,beta))

triang Okno trójkatne n - nieparzyste n - parzyste w[k] = w[k] = { 2k w = triang(n) n+1 dla 1 k n+1 2 2(n k+1) n+1 dla n+1 2 k n { 2k 1 n+1 dla 1 k n 2 2(n k+1) n dla n+2 2 k n

triang 1.8 Time domain 4 2-2 Frequency domain Amplitude.6.4.2 1 2 3 4 5 Samples Magnitude (db) -4-6 -8-1 -12-14 -16.2.4.6.8 Normalized Frequency ( π rad/sample) n=54; wvtool(triang(n))

kaiser Magnitude (db) and Phase Responses.313 Magnitude (db) -2-4 -6-13.91-26.2133-39.3356 Phase (radians) -8-1 -52.4579-65.582.1.2.3.4.5.6.7.8.9 Normalized Frequency ( π rad/sample) b = fir1(8,.5,kaiser(81,8)); hd = dfilt.dffir(b); freqz(hd);

wymnażanie okien w[n] - okno 1 n N h[n] - odpowiedź impulsowa idealnego filtru ( prototypu ), czyli odwrotna transformata idealnej charakterystyki częstotliwościowej zatem b[n] = w[n]h[n] 1 n N

fir1 Klasyczna metoda syntezy filtru FIR-owego o liniowej fazie b = fir1(n,wn, ftype, window ) b(z 1 ) = b(1) + b(2)z 1 + + b(n + 1)z n n - rzad filtru W n [, 1] - wektor unormowanych pulsacji (1 - odpowiada pulsacji Nyquista) ftype - high, stop window - typ okna poprawjajacego charakterystykę filtru (domyślnie window = hamming )

fir1 F p, f g1, f g2, w 1 = 2f g1 F p, w 2 = 2f g2 F p filtr dolnopasmowy b = fir1(n,w1) filtr górnopasmowy (n - parzyste!) filtr pasmowoprzepustowy b = fir1(n, high,w1, hann ) b = fir1(n,[w1 w2], bartlett ) filtr pasmowozaporowy (n - parzyste!) b = fir1(n, stop,[w1 w2], boxcar )

F p = 1Hz, f 1 = 5Hz, f 2 = 4Hz, f g = 2Hz, w 1 = 2fg F p 2 1-1 fir1(n,w1) Sygnal filtrowany fir1-2 1 2 3 4 5 6 7.4.3 Odp impulsowa filtru FIR.2.1 -.1 1 2 3 4 5 6 7

fir1 N = 64; fpr=1; fx1=5; fx2=4; nx = :N-1; dt = 1/fpr; t = dt*nx; x1 = cos(2*pi*fx1*t); x2 = cos(2*pi*fx2*t); x = x1 + x2; M = 7; fg = 2; h = fir1(m-1,2*fg/fpr,boxcar(m)) >>ans = -.584.876.2835.3746.2835.876 -.584 subplot(211); stem(x,'filled'); grid; title('sygnał filtrowany'); subplot(212); stem(h,'filled'); grid; title('odp impulsowa filtru FIR');

conv Funkcja MATLAB-a pozwala w łatwy sposób dokonać splotu dwóch wektorów conv(x,h) 2 1-1 sygnal po filtracji -2 1 2 3 4 5 6 7 2 1 sygnal x 1 o f 1 = 5Hz -1-2 1 2 3 4 5 6 7

Funkcja splotu realizowana przez MATLAB-a conv % odwróć kolejność próbek h = h(m:-1:1); % uzupełnij sygnał M-1 zerami po obu stronach xe = [zeros(1,m-1) x zeros(1,m-1)]; % sygnał wyjściowy ye = zeros(1,n+2*(m-1)); subplot(311); stem(xe,'filled'); title('we'); pause % liczba próbek niezerowych for n = 1 : N+(M-1) % przesuń (ustaw) odp impulsową he = [zeros(1,n-1) h zeros(1,(n-1)+(m-1)-(n-1))]; % wymnóż x i przesunięte h y(n) = sum( xe.* he ); ye((m-1)+n)=y(n); % narysuj przesunięte h subplot(312); stem(he,'filled'); title('odp impuls'); % narysuj aktualne wyjście subplot(313); stem(ye,'filled'); title('wy'); pause end subplot(111); plot(t,x1,'r',t,y(1:n),'b'); grid; title('we (R) i Wy (B)');

splot bezpośredni % długość sygnałów z dodanymi zerami K = N+M-1; % dodaj zera jeśli krótszy xz=[x zeros(1,k-n)]; % odwróć kolejność próbek hh = h(m:-1:1); % bufor na próbki wejściowe bx = zeros(1,m); % wyzeruj sygnał wyjściowy y = []; % pętla po próbkach for n = 1 : K % przesuń próbki w buforze o jedną do tyłu, bx(1)=x(n); bx = [xz(n) bx(1:m-1)]; % filtracja; inaczej (szybciej): y(n)=bx*h' y(n) = sum(bx.*hh); end

szybki splot % znajdź dłuższy NM = max(n,m); % dodaj zera, jeśli krótszy xz=[x zeros(1,nm-n)]; % dodaj zera, jeśli krótszy hz=[h zeros(1,nm-m)]; X = fft(xz); H=fft(hz); Y = X.* H; yfft = ifft(y); y1 = real(yfft);

splot liniowy % długość sygnałów z dodanymi zerami K = N+M-1; % dodaj zera, jeśli krótszy xz=[x zeros(1,k-n)]; % dodaj zera, jeśli krótszy hz=[h zeros(1,k-m)]; X = fft(xz); H=fft(hz); Y = X.* H; yfft = ifft(y); y2 = real(yfft);