220 likes | 428 Views
Datan suodatus. tilastolliset virheet poikkeavat arvot (salt and pepper noise kuvankäsittelyssä) mittalaitteen virhetoiminta: datassa laitteen aiheuttama tietyn taajuuksinen kohina mittalaitteen aiheuttama piirteiden leveneminen (instrumental function, point spread function).
E N D
Datan suodatus • tilastolliset virheet • poikkeavat arvot (salt and pepper noise kuvankäsittelyssä) • mittalaitteen virhetoiminta: datassa laitteen aiheuttama tietyn taajuuksinen kohina • mittalaitteen aiheuttama piirteiden leveneminen (instrumental function, point spread function)
Poikkeavat arvot • Mediaanisuodin korvaa arvon kyseisen pisteen ympäristön arvojen mediaanilla. • Esimerkki. Kolmen pisteen mediaanisuodin g(xi) = med(f(xi-1), f(xi), f(xi+1) ). • Med(x,y,z) on suuruudeltaan keskimmäinen luvuista x, y, ja z.
Matlab medfilt1, medfilt2 >> x=ones(1,10); x(5) = 10, medfilt1(x) x = 1 1 1 1 10 1 1 1 1 1 ans = 1 1 1 1 1 1 1 1 1 1
Laitevaikutus • mittaustulosg esitettävissä usein integraaliyhtälönä g(x) = h(x,y) f(y) dy + n(x), missä f on tarkka tulos, h laitevaikutus (vaste, integraaliyhtälön kernel), n tilastollinen epävarmuus • Jos laitevaikutus sama joka pisteessä, konvoluutio g(x) = h(x-y) f(y) dy.
Lineaarinen suodin • konvoluutio g(x) = h(x-y) f(y) dy • Esimerkki. Suodin h = 1/4 [1 2 1] (Matlab-kieltä) • Data f(xi) • Suodatettu data g(xi) = ¼(f(xi-1) + 2f(xi) + f(xi+1)) • Funktion arvo kussakin pisteessä painotettu keskiarvo lähipisteissä saaduista arvoista.
Lineaarinen suodin Matlabilla • conv, conv2 konvoluutio • filter2 korrelaatio • filter rekursiivinen suodin
Tasoitus konvoluutiolla • Esimerkki. Kukin piste korvataan vierekkäisten arvojen keskiarvolla. Tämä vastaa konvoluutiota laatikkofunktiolla. • Ei ihan sama kuin perusalipäästösuodin. Laatikon Fourierin muunnos on sinc-funktio.
% 1-dim, box function y = [zeros(20,1); ones(20,1); zeros(20,1)]; subplot(2,2,1), plot(y) x = 1:20; x=x'; subplot(2,2,2), plot(x) subplot(2,2,3), plot(conv2(y,x,'same')), subplot(2,2,4), plot(filter2(x,y)) % 2-dim, square function y = [zeros(20,1); ones(20,1); zeros(20,1)]; y = y*y'; subplot(2,2,1), imagesc(y) x = 1:20; x=x'; x=x*x'; subplot(2,2,2), imagesc(x) subplot(2,2,3), imagesc(conv2(y,x,'same')), subplot(2,2,4), imagesc(filter2(x,y)) Matlab: conv, conv2, filter2
Fourierin muunnos Määritelmä Ff() = a f(t) exp(- t) dt Käänteismuunnos f() = b Ff(t) exp( t) dt a,b vakioita, symmetrinen valinta a = b = 1/sqrt(2π) Trigonometriset muodot Eulerin kaavalla. muunnospareja aika-taajuus, paikka-aaltoluku
ominaisuuksia • lineaarinen F(f+g) = Ff+Fg • F(af) = a Ff • Mitä leveämpi muunnettava funktio, sitä kapeampi muunnos. • Derivaattakaavat • F(Dnf) = (iw)n Ff • F(tn Ff) = (iD)nf
Konvoluutioteoreema funktiot h ja g (hog)(y) = ∫ dx h(x) g(y-x) Fourierin muunnos Ff() = f(t) exp(- t) dt merkitään H(y) = (hog)(y) FH = ∫ dx ∫ dy h(x) g(y-x) exp(-iky) Muuttujan vaihto z = y-x, dz = dy FH (k) = ∫ dx ∫ dz h(x) g(z) exp(-ikz-ikx) uudelleen järjestelyllä Fh(k) = Fh(k) Fg(k)
Esimerkkejä • laatikon fouriermuunnos on sin(k)/k • Gaussin funktion fouriermuunnos on Gaussin funktio • sinin ja kosinin fouriermuunnokset ovat kaksi delta-piikkiä.
Fourierin muunnos Maplella Määritelmä Ff() = f(t) exp(- t) dt. Maple: > fourier(sin(2*x), x,w); Pi (Dirac(w + 2) - Dirac(w - 2)) I > fourier(exp(-x^2), x,w); 2 1/2 w Pi exp(- ----) 4
Fourier series Periodic function f(x+X) = f(x), where X is the period, can be presented as Fourier series f(x) = n=-cn eI nK x, where K is the basic frequency KX = 2π. The coefficients of the Fourier series are obtained as integrals over the period X cn = 1/X ∫xeinK x f(x) dx.
Konvoluutioteoreema • F(fog) = Ff Fg (tässä o tarkoittaa konvoluutiota) • Lineaarinen suodatus : • Fourierin muunnos • suodatus taajuusavaruudessa (kertolasku) • muunnos takaisin aika-avaruuteen
funktio fft % data z fz = fft(z); n = length(fz); l=1:n; plot(l, abs(fz)), pause % construct the filter d = zeros(n,1); ll = 6:1:n-6; d(ll) = 1+0*ll; plot(l, abs(fz), l, d), pause % inverse transform zz = ifft(fz.*d); plot(x, real(zz), x, z,'o'), pause Lisätietoja: FYMM, Tieteellisen laskennan jatkokurssi Matlabissa diskreetti Fourierin muunnos
Alipäästösuodin • Alipäästösuodin päästää lävitseen vain tiettyä taajuutta matalammat taajuudet. • Sillä voidaan poistaa korkeataajuuksista kohinaa. • Samalla voidaan menettää pienimpiä yksityiskohtia. • Suotimella on tasoittava vaikutus ja esimerkiksi suodatettu kuva voi näyttää epätarkalta.
Ylipäästösuodin • Ylipäästösuodin poistaa datasta y(t) matalimmat taajuudet. (Aika- ja taajuus ovat Fourierin muunnoksessa vastinmuuttujat.) • Ylipäästösuodin terävöittää pieniä yksityiskohtia, siis saattaa pahentaa kohinaa. • Ylipäästösuodin vastaakin lähinnä derivoivaa suodinta.
Rekursiiviset suotimet • Määritellään rekursiivinen suodin (eli nk. IIR-suodin) seuraavasti: Yk+1 = a0 Xk + a1 Xk-1 + a2 Xk-2 + ... + am Xk-m + b0 Yk + b1 Yk-1 + b2 Yk-2 + ... + bn Yk-n • Tässä Y on suodatettu data ja kertoimet a ja b määräävät suotimen taajuusvasteen. • Jos b:n kaikki alkiot olisivat nollia, kutsuttaisiin suodinta ei-rekursiiviseksi suotimeksi (eli nk. FIR-suotimeksi).
Lineaarinen suodin • rekursiivinen, lähes samanlainen suodin • g(xi) = ¼(g(xi-1) + 2f(xi) + f(xi+1))
Yksinkertainen rekursiivinen suodatus • Jaksollisten funktioiden tasoittamiseen käytetään usein rekursiivista suodinta. Yksinkertaisimmassa tapauksessa havaittu arvo korvataan painotetulla keskiarvolla • gi = α fi + (1-α) gi-1, • missä fi on alkuperäinen havaittu arvo, gi-1 viimeisin jo muutettu arvo ja α jokin vakio välillä (0,1). Lisäksi asetetaan g0 = f0. • Mitä muuta suodin tekee signaalille kuin tasoittaa?
Suotimia (Matlab signal processing toolbox) Windows. bartlett - Bartlett window. barthannwin - Modified Bartlett-Hanning window. blackman - Blackman window. blackmanharris - Minimum 4-term Blackman-Harris window. bohmanwin - Bohman window. chebwin - Chebyshev window. flattopwin - Flat Top window. gausswin - Gaussian window. hamming - Hamming window. hann - Hann window. kaiser - Kaiser window. nuttallwin - Nuttall defined minimum 4-term Blackman-Harris window. parzenwin - Parzen (de la Valle-Poussin) window. rectwin - Rectangular window. triang - Triangular window. tukeywin - Tukey window. wvtool - Window Visualization Tool. window - Window function gateway.