Splot (analiza matematyczna)

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania
Ujednoznacznienie Ten artykuł dotyczy działania na funkcjach. Zobacz też: inne znaczenia tego słowa.
Splot bramki napięcia x(t)(jako sygnału wejściowego) i odpowiedzi impulsowej h(t) obwodu RC, obliczony dla uzyskania przebiegu sygnału wyjściowego y(t)=U_C(t). Całka iloczynu jest zaznaczona obszarem żółtym. W obu animacjach wynik splotu jest taki sam.
Splot2.gif

Splot, splot całkowy, mnożenie splotowe lub konwolucja (ang. convolution: od convolute, „skręcać, zwijać”; z łac. convolutus, im. od convolvere, od com-, „z, razem; całkowicie, gruntownie, dokładnie” i volvere, „zawijać”) – w matematyce oraz technice, działanie określone dla dwóch funkcji (lub opisywanych przez nie sygnałów) dające w wyniku inną, która może być postrzegana jako zmodyfikowana wersja oryginalnych funkcji. Nazwą tą nazywa się również wynik tego działania, które bywa nazywane także iloczynem (lub produktem) splotowym. Splot podobny jest do korelacji wzajemnej. Znajduje zastosowania także m.in. w statystyce, równaniach różniczkowych, elektrotechnice, cyfrowym przetwarzaniu obrazów czy sygnałów – na przykład, w przetwarzaniu obrazów operacja splotu obrazu źródłowego z odpowiednio skonstruowanym filtrem pozwala na wykrycie krawędzi (np. filtr Sobela), rozmycie obrazu (np. filtr Gaussa) oraz pozwala na ekstrakcję cech kształtów przy rozpoznawaniu wzorców obiektów w obrazie (falki Gabora), jak i wielu innych.

Operacja odwrotna do konwolucji nazywana jest dekonwolucją.

Istnienie i określenie[edytuj | edytuj kod]

Jeżeli funkcje f i g są bezwzględnie całkowalne w przedziale (-\infty, \infty) (innymi słowy, są całkowalne w sensie Lebesgue'a, tzn. należą do przestrzeni L^1(\mathbb{R}). W zastosowaniach często ogranicza się do założenia o zbieżności całek niewłaściwych Riemanna na całej prostej tych funkcji oraz ich modułów), to wzór

(f*g)(t)=\int\limits_{-\infty}^\infty f(\tau)g(t - \tau) d\tau

określa funkcję f * g, zdefiniowaną dla prawie wszystkich liczb rzeczywistych t. Funkcję f*g nazywa się splotem (dwustronnym) funkcji f z funkcją g i na mocy twierdzenia Fubiniego utożsamia się z elementem przestrzeni L^1(\mathbb{R}).

Struktura algebry Banacha[edytuj | edytuj kod]

Przestrzeń L^1(\mathbb{R}) z dodatkowym dzialaniem splotu jest algebrą przemienną, tzn. splot jest działaniem:

f_1 * f_2 = f_2 * f_1\; (wynika to z możliwości zastosowania podstawienia u=t-\tau),
\left(f_1 * f_2\right)*f_3 = f_1 * \left(f_2 * f_3\right),
f_1 * \left(f_2 + f_3\right) = f_1 * f_2 + f_1 * f_3.
  • łącznym względem mnożenia przez skalary
c \left(f_1*f_2\right) = \left(c f_1\right)*f_2 = f_1*\left(c f_2\right),

gdzie f_1, f_2, f_3\in L^1(\mathbb{R}) oraz c jest skalarem.

Dla normy splotu funkcji f_1 z z funkcją f_2 zachodzi oszacowanie

\|f_1*f_2\|_{L^1(\mathbb{R})}\leq \|f_1\|_{L^1(\mathbb{R})}\cdot \|f_2\|_{L^1(\mathbb{R})},

a więc algebra L^1(\mathbb{R}) jest przemienną algebrą Banacha bez jedynki. Jedynkę można aproksymować w następującym sensie: jeśli f jest elementem przestrzeni L^1(\mathbb{R}), to istnieje taki ciąg (e_n)_{n\in \mathbb{N}} elementów L^1(\mathbb{R}) o normie 1, że

\|e_n * f - f\| \xrightarrow[n\to \infty]{} 0
\|f * e_n - f\| \xrightarrow[n\to \infty]{} 0.

Lokalnie zwarte grupy topologiczne[edytuj | edytuj kod]

Definicja splotu funkcji przenosi się mutatis mutandis na przypadek lokalnie zwartej grupą topologicznej G z lewostronnie niezmienniczą miarą Haara \mu. Dokładniej, jeżeli f i g są elementami L^1(G), to wzór

(f * g)(t) = \int\limits_G f(\tau)g(t\tau^{-1}) d\mu(\tau)

określa funkcję zdefiniowaną dla prawie każdego elementu t grupy G. Podobnie jak w przypadku miary Lebesgue'a (która jest miarą Haara grupy addytywnej zbioru liczb rzeczywistych) przestrzeń L^1(G) tworzy z działaniem splotu algebrę Banacha, która jest przemienna wtedy i tylko wtedy, gdy grupa G jest przemienna.

Splot cykliczny (kołowy)[edytuj | edytuj kod]

Splot okresowej bramki napięcia xT (jako sygnału wejściowego) i odpowiedzi impulsowej h(t) obwodu RC, obliczony dla uzyskania przebiegu sygnału wyjściowego y(t)=U_C(t). Całka iloczynu jest zaznaczona obszarem żółtym. W obu animacjach wynik splotu jest taki sam.
Splotc2.gif

Dla funkcji okresowej xT, o okresie T, splot z inną funkcją h, jest także okresowy, i może być wyrażony za pomocą całki w skończonym przedziale :


\begin{align}
(x_T * h)(t)\quad &\stackrel{\mathrm{def}}{=} \ \int_{-\infty }^{\infty } h(\tau)\cdot x_T(t - \tau)\,d\tau \\
&=\int_{-\infty }^{\infty } h_T(t-\tau)\cdot x( \tau)\,d\tau \\
&= \int_{t_o}^{t_o+T} h_T(t \circleddash \tau)\cdot x(\tau)\,d\tau \\
&= \int_{t_o}^{t_o+t} h_T(t - \tau)\cdot x(\tau)\,d\tau \\
&+\int_{t_o+t}^{t_o+T} h_T(t - \tau+T)\cdot x(\tau)\,d\tau, 
\end{align}

gdzie to jest czasem początkowym,


\begin{align}
t \circleddash \tau = \left\{\begin{matrix}
t - \tau & \mbox{jeśli} & t - \tau \in [t_o,t_o+T) \\ 
t - \tau +T & & \mbox{w przeciwnym razie}
\end{matrix}\right.
\end{align}

hT, xTsumą okresową zdefiniowaną jako :

h_T(t) \ \stackrel{\mathrm{def}}{=} \ \sum_{k=-\infty}^\infty  h(t - kT) = \sum_{k=-\infty}^\infty  h(t + kT), 
  \  
 x_T(t) \ \stackrel{\mathrm{def}}{=} \ \sum_{k=-\infty}^\infty  x(t - kT) = \sum_{k=-\infty}^\infty  x(t + kT).

Splot dyskretny[edytuj | edytuj kod]

Zbiór liczb całkowitych \mathbb{Z} z dodawaniem jest lokalnie zwartą grupą topologiczną, gdy w \mathbb{Z} rozważana jest topologia dyskretna. Odpowiadającą miarą Haara jest w tym wypadku miara licząca na rodzinie wszystkich podzbiorów zbioru liczb całkowitych. Splot ciągów sumowalnych (numerowanych liczbami całkowitymi) wyraża się więc wzorem

(f * g)[n]\ =\ \sum_{m=-\infty}^{\infty} f[m]\, g[n - m]= \sum_{m=-\infty}^{\infty} f[n-m]\, g[m]

i pokrywa z iloczynem Cauchy'ego szeregów (zapis f[n] jest popularny w technice i oznacza n-ty wyraz ciągu (sygnału) f). W zastosowaniach, dopuszcza się splatanie ciagów skończonych, które utożsamia się z ciągami nieskończonymi, które mają pozostałe wyrazy równe 0.

Realizacja splotu dla sygnałów jednowymiarowych (dźwięk, sygnały EEG itp.)[edytuj | edytuj kod]

Niech x oraz h będą sygnałami wejściowymi (w ujęciu programistycznym mogą to być tablice, wektory lub inne rodzaje kontenerów). Splot

y[n]= (x * h)[n]\,

określa sygnał wyjściowy y. x[n] można interpretować jako n-tą próbkę pozyskaną z sygnału wejściowego x. Bardzo często dwa sygnały wejściowe, na których realizuje się splot, klasyfikuje się jako sygnał podstawowy (przetwarzany) oraz sygnał przetwarzający (filtr). W sygnałach jedno-wymiarowych występują filtry dolno-, górno-, pasmowo- przepustowe lub zaporowe.

Realizacja splotu dla sygnałów dwuwymiarowych (np. obrazów, itd.)[edytuj | edytuj kod]

W przypadku sygnałów dwuwymiarowych położenie jest określone przez dwie zmienne a i h (elementy L^1(\mathbb{Z}\times \mathbb{Z})), których splot c wyraża się wzorem

c[m,n] = (a*h)[m,n] = \sum_j \sum_k { h[j,k]a[m-j,n-k] } \,.

Splot jest w tym przypadku prostym wymnożeniem wartości z obu sygnałów wejściowych a następnie ich zsumowanie. Praktyczną realizację przedstawia rysunek:

thomb

W celu obliczenia splotu sygnałów w tym przypadku, wykonane są działania:

  • y[0,0] = x[2,2] * h[0,0] = 9*1 = 9
  • y[0,1] = x[2,1] * h[0,0] + x[2,2] * h[0,1] = 8*1 + 9*0 = 8
  • y[0,2] = x[2,0] * h[0,0] + x[2,1] * h[0,1] + x[2,2] * h[0,2] = 7*1 + 8*0 + 9*1 = 16 itd.

Wartości pod indeksami w praktyce mogą być, na przykład, wartościami kolorów dla danych pikseli obrazu.

Problem brzegu[edytuj | edytuj kod]

W realizacji splotu zastosowanej powyżej założono, iż wartości poza sygnałem są równe 0. Stąd brak wymnożeń z elementami spoza zakresu. Problem ten występuję tylko na „krawędziach” sygnałów i często jest identyfikowany jako tzw. problem brzegu. Przy dużych sygnałach ma on przeważnie małe znaczenie dla wyniku splotu. Podejście stosowane do rozwiązania problemu zależy często od specyfiki sygnałów oraz od celu w jakim dokonywana jest operacja splotu.

Przykładowe metody rozwiązania problemu brzegu:

  • przyjecie założenia, że poza znanym sygnałem są wyłącznie wartości 0 — rozwiązanie to zastosowano w przedstawionym przykładzie,
  • odbicie obrazu poza jego granicami,
  • powtórzenie obrazu, bez odbicia,
  • powielenie brzegowych wartości,
  • modyfikacji maski filtru na brzegu sygnału (obrazu) tak by maska nie wychodziła poza obraz.

Splot jednostronny[edytuj | edytuj kod]

W tym paragrafie będziemy zakładać bezwzględną całkowalność funkcji f_1 i f_2 w każdym przedziale postaci (t_1, t_2) dla 0\leqslant t_1 < t_2<+\infty. Splot jednostronny określa się jako funkcję f_1*f_2 zmiennej t\geqslant 0 wzorem

(f_1*f_2)(t)=\int\limits_{0}^t f_1(\tau)f_2(t - \tau) d\tau.

Podobnie jak w przypadku splotu dwustronnego, powyższy wzór ma sens dla prawie wszystkich t. Splot jest funkcją prawie wszędzie ciągłą w przedziale [0,\infty). Ponadto, o ile tylko jedna z funkcji f_1, f_2 jest ograniczona na każdym przedziale postaci [0,T] T>0, to splot f_1*f_2 jest określony wszędzie oraz jest ciągły w każdym punkcie, a także

\lim_{t\to 0^+}(f_1*f_2)(t)=0.

Wynika stąd w szczególności, że splot jest ciągły gdy chociaż jedna z funkcji f_1, f_2 jest ciągła. Prawdziwe jest także, następujące twierdzenie Titchmarsha, mówiące, że splot jest funkcją zerową wtedy i tylko wtedy, gdy chociaż jedna z funkcji f_1, f_2 jest funkcją zerową prawie wszędzie. Twierdzenie to nie jest prawdziwe dla splotów w (-\infty, \infty).

Działanie splotu jest operatorem liniowym ze względu na obydwa argumenty, tzn. jest operatorem dwuliniowym.

Zbiór funkcji ciągłych, o wartościach zespolonych lub rzeczywistych, określonych na przedziale [0,\infty) z działaniami dodawania i splatania tworzy pierścień przemienny bez jedynki. Pierścień ten nazywany jest pierścieniem Mikusińskiego.

Całka Duhamela[edytuj | edytuj kod]

Pochodna splotu dwóch funkcji f_1 i f_2, tj.

\frac{d}{dt}(f_1*f_2)(t)=\frac{d}{dt}\int\limits_{0}^t f_1(\tau)f_2(t - \tau) d\tau

nazywana jest całką Duhamela. Jeśli f_1 jest dla t\geqslant 0 funkcją ciągłą, a f_2 dla t>0 funkcją różniczkowalną, to zgodnie z twierdzeniem Leibniza o różniczkowaniu całki, jako funkcji parametru wynika, że

\frac{d}{dt}(f_1*f_2)(t)=\frac{d}{dt}\int\limits_{0}^t f_1(\tau)f_2(t - \tau) d\tau=f_1(t)f_2(0^+)+\int\limits_{0}^t f_1(\tau)f_2^\prime(t - \tau) d\tau=f_1(t)f_2(0^+)+(f_1*f_2^\prime)(t).

Jeśli obydwie funkcje f_1, f_2 mają ciągłe pochodne w przedziale t>0, to

\frac{d}{dt}(f_1*f_2)(t)=f_1(0^+)f_2(t)+(f_1^\prime *f_2)(t).

Związki z transformatami[edytuj | edytuj kod]

Jeśli funkcje f_1,f_2bezwzględnie transformowalne (w sensie Laplace'a) oraz chociaż jedna z nich jest ograniczona w każdym przedziale [0,T] dla T>0, to

\mathcal{L}[f_1*f_2]=\mathcal{L}[f_1]\cdot \mathcal{L}[f_2].

Powyższe twierdzenie nazywane jest często twierdzeniem Borela o splocie. Założenie ograniczoności przynajmniej jednej z funkcji f_1, f_2 można zastąpić innym, gwarantującym istnienie splotu f_1*f_2 dla każdego t\geqslant 0. W szczególności, twierdzenie jest prawdziwe, gdy przynajmniej jedna z tych funkcji jest ciągła.

Podobnie dla transformaty Fouriera zachodzi twierdzenie

\mathcal{F}[f_1*f_2]=\mathcal{F}[f_1]\cdot \mathcal{F}[f_2].

Jedną z operacji, którą można wyrazić jako splot skończony jest mnożenie dwóch liczb w reprezentacji pozycyjnej. Innym zastosowaniem są filtry cyfrowe. W celu przyśpieszenia obliczeń dla dużych ciągów, często używa się twierdzenia o transformacie Fouriera splotu, co umożliwia implementację splotu o złożoności obliczeniowej rzędu O(n\log n) w porównaniu do zwyczajowej O(n^2) wykorzystując dwie szybkie transformacje Fouriera, a następnie jedną szybką transformację odwrotną Fouriera.

Splot miar[edytuj | edytuj kod]

Naturalny odpowiednik splotu funkcji liczbowych definiuje się dla miar borelowskich. Dokładniej, jeśli \mu, \nu są miarami borelowskimi na prostej, to funkcję

(\mu * \nu )(B)= \int\limits_\mathbb{R} \mu(B-y)\nu(dy)

nazywamy splotem miar \mu i \nu.

Okazuje się, że jeżeli \xi i \eta są niezależnymi zmiennymi losowymi na pewnej przestrzeni probabilistycznej o rozkładach odpowiednio \mu i \nu, to \mu * \nu jest rozkładem prawdopodobieństwa zmiennej \xi+\eta.

Jeżeli dodatkowo, jedna z tych zmiennych ma rozkład ciągły – np. funkcja g jest gęstością zmiennej \xi to zmienna \xi+\eta ma rozkład ciągły o gęstości

(g*\mu)(t):=\int\limits_\mathbb{R}g(t-x)\mu(dx),

którą nazywamy splotem gęstości z miarą (w tym wypadku probabilistyczną).

Zobacz też[edytuj | edytuj kod]

Bibliografia[edytuj | edytuj kod]

  • Grigorij Michajłowicz Fichtenholz: Rachunek różniczkowy i całkowy. T. II. Warszawa: PWN, 1966.
  • Bolesław Gleichgewicht: Elementy algebry abstrakcyjnej. Warszawa: PZWS, 1966.
  • Jacek Jakubowski, Rafał Sztencel: Wstęp do teorii prawdopodobieństwa. Warszawa: SCRIPT, 2004, s. 103.
  • Jerzy Osiowski: Zarys rachunku operatorowego. Warszawa: Wydawnictwa Naukowo-Techniczne, 1965.
  • Walter Rudin: Analiza rzeczywista i zespolona. Warszawa: Wydawnictwo Naukowe PWN, 1998, s. 158-160.
  • Tomasz P. Zieliński: Cyfrowe przetwarzanie sygnałów: od teorii do zastosowań. Wyd. II popr.. Warszawa: Wydawnictwa Komunikacji i Łączności, 2007. ISBN 978-83-206-1640-8.

Linki zewnętrzne[edytuj | edytuj kod]