Splot (analiza matematyczna)

Ten artykuł dotyczy działania na funkcjach. Zobacz też: inne znaczenia tego słowa.

Splot, splot całkowy, mnożenie splotowe lub konwolucja[a]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ą określa 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 splotu nazywana jest rozplotem.

Istnienie i określenie

Niech f {\displaystyle f} i g {\displaystyle g} są bezwzględnie całkowalne w przedziale ( , ) ; {\displaystyle (-\infty ,\infty );} innymi słowy, są całkowalne w sensie Lebesgue’a, czyli należą do przestrzeni L 1 ( R ) . {\displaystyle L^{1}(\mathbb {R} ).}

Wówczas wzór[1]:

( f g ) ( t ) = f ( t τ ) g ( τ ) d τ {\displaystyle (f*g)(t)=\int \limits _{-\infty }^{\infty }f(t-\tau )g(\tau )d\tau }

określa funkcję f g , {\displaystyle f*g,} zdefiniowaną dla prawie wszystkich liczb rzeczywistych t . {\displaystyle t.} Funkcję f g {\displaystyle f*g} nazywa się splotem (dwustronnym) funkcji f {\displaystyle f} z funkcją g {\displaystyle g} i na mocy twierdzenia Fubiniego utożsamia się z elementem przestrzeni L 1 ( R ) . {\displaystyle 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.

Splot bramki napięcia x ( t ) {\displaystyle x(t)} (jako sygnału wejściowego) i odpowiedzi impulsowej h ( t ) {\displaystyle h(t)} obwodu RC, obliczony dla uzyskania przebiegu sygnału wyjściowego y ( t ) = U C ( t ) . {\displaystyle y(t)=U_{C}(t).} Całka iloczynu jest zaznaczona obszarem żółtym. W obu animacjach wynik splotu jest taki sam.

Struktura algebry Banacha

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

f 1 f 2 = f 2 f 1 {\displaystyle f_{1}*f_{2}=f_{2}*f_{1}} (wynika to z możliwości zastosowania podstawienia u = t τ {\displaystyle u=t-\tau } ),
  • łącznym
( f 1 f 2 ) f 3 = f 1 ( f 2 f 3 ) , {\displaystyle \left(f_{1}*f_{2}\right)*f_{3}=f_{1}*\left(f_{2}*f_{3}\right),}
f 1 ( f 2 + f 3 ) = f 1 f 2 + f 1 f 3 . {\displaystyle f_{1}*\left(f_{2}+f_{3}\right)=f_{1}*f_{2}+f_{1}*f_{3}.}
  • łącznym względem mnożenia przez skalary
c ( f 1 f 2 ) = ( c f 1 ) f 2 = f 1 ( c f 2 ) , {\displaystyle c\left(f_{1}*f_{2}\right)=\left(cf_{1}\right)*f_{2}=f_{1}*\left(cf_{2}\right),}

gdzie f 1 , f 2 , f 3 L 1 ( R ) {\displaystyle f_{1},f_{2},f_{3}\in L^{1}(\mathbb {R} )} oraz c {\displaystyle c} jest skalarem.

Dla normy splotu funkcji f 1 {\displaystyle f_{1}} z funkcją f 2 {\displaystyle f_{2}} zachodzi oszacowanie

f 1 f 2 L 1 ( R ) f 1 L 1 ( R ) f 2 L 1 ( R ) , {\displaystyle \|f_{1}*f_{2}\|_{L^{1}(\mathbb {R} )}\leqslant \|f_{1}\|_{L^{1}(\mathbb {R} )}\cdot \|f_{2}\|_{L^{1}(\mathbb {R} )},}

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

e n f f n 0 , {\displaystyle \|e_{n}*f-f\|{\xrightarrow[{n\to \infty }]{}}0,}
f e n f n 0. {\displaystyle \|f*e_{n}-f\|{\xrightarrow[{n\to \infty }]{}}0.}

Lokalnie zwarte grupy topologiczne

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

( f g ) ( t ) = G f ( τ ) g ( t τ 1 ) d μ ( τ ) {\displaystyle (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 {\displaystyle t} grupy G . {\displaystyle G.} Podobnie jak w przypadku miary Lebesgue’a (która jest miarą Haara grupy addytywnej zbioru liczb rzeczywistych) przestrzeń L 1 ( G ) {\displaystyle L^{1}(G)} tworzy z działaniem splotu algebrę Banacha, która jest przemienna wtedy i tylko wtedy, gdy grupa G {\displaystyle G} jest przemienna.

Splot cykliczny (kołowy)

Splot okresowej bramki napięcia x T {\displaystyle 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 ) . {\displaystyle y(t)=U_{C}(t).} Całka iloczynu jest zaznaczona obszarem żółtym. W obu animacjach wynik splotu jest taki sam.

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

( x T h ) ( t ) = d e f   h ( τ ) x T ( t τ ) d τ = h T ( t τ ) x ( τ ) d τ = t o t o + T h T ( t τ ) x ( τ ) d τ = t o t o + t h T ( t τ ) x ( τ ) d τ + t o + t t o + T h T ( t τ + T ) x ( τ ) d τ , {\displaystyle {\begin{aligned}(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{aligned}}}

gdzie t o {\displaystyle t_{o}} jest czasem początkowym,

t τ = { t τ jeśli t τ [ t o , t o + T ) t τ + T w przeciwnym razie {\displaystyle 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.}

h T , {\displaystyle h_{T},} x T {\displaystyle x_{T}} są sumą okresową zdefiniowaną jako:

h T ( t ) = d e f k = h ( t k T ) = k = h ( t + k T ) ,   x T ( t ) = d e f k = x ( t k T ) = k = x ( t + k T ) . {\displaystyle 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

Zbiór liczb całkowitych Z {\displaystyle \mathbb {Z} } z dodawaniem jest lokalnie zwartą grupą topologiczną, gdy w Z {\displaystyle \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 ]   =   m = f [ m ] g [ n m ] = m = f [ n m ] g [ m ] {\displaystyle (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 ] {\displaystyle f[n]} jest popularny w technice i oznacza n {\displaystyle n} -ty wyraz ciągu (sygnału) f {\displaystyle f} ). W zastosowaniach, dopuszcza się splatanie ciągó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.)

Niech x {\displaystyle x} oraz h {\displaystyle 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 ] {\displaystyle y[n]=(x*h)[n]}

określa sygnał wyjściowy y . {\displaystyle y.} x [ n ] {\displaystyle x[n]} można interpretować jako n {\displaystyle n} -tą próbkę pozyskaną z sygnału wejściowego x . {\displaystyle 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.)

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

c [ m , n ] = ( a h ) [ m , n ] = j k h [ j , k ] a [ m j , n k ] . {\displaystyle 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:

Dyskretny splot dwóch macierzy
1 2 3 1 0 1
x 4 5 6 h 0 1 0
7 8 9 1 0 1
1 2 4 2 3
4 6 12 8 6
= y 8 14 25 16 12
4 12 18 14 6
7 8 16 8 9

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

  • y [ 0 , 0 ] = x [ 0 , 0 ] h [ 0 , 0 ] = 1 1 = 1 {\displaystyle y[0,0]=x[0,0]\cdot h[0,0]=1\cdot 1=1}
  • y [ 0 , 1 ] = x [ 0 , 1 ] h [ 0 , 0 ] + x [ 0 , 0 ] h [ 0 , 1 ] = 2 1 + 1 0 = 2 {\displaystyle y[0,1]=x[0,1]\cdot h[0,0]+x[0,0]\cdot h[0,1]=2\cdot 1+1\cdot 0=2}
  • y [ 0 , 2 ] = x [ 0 , 2 ] h [ 0 , 0 ] + x [ 0 , 1 ] h [ 0 , 1 ] + x [ 0 , 0 ] h [ 0 , 2 ] = 3 1 + 2 0 + 1 1 = 4 {\displaystyle y[0,2]=x[0,2]\cdot h[0,0]+x[0,1]\cdot h[0,1]+x[0,0]\cdot h[0,2]=3\cdot 1+2\cdot 0+1\cdot 1=4} itd.

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

Problem brzegu

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ępuje 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:

  • przyjęcie 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

W tym paragrafie będziemy zakładać bezwzględną całkowalność funkcji f 1 {\displaystyle f_{1}} i f 2 {\displaystyle f_{2}} w każdym przedziale postaci ( t 1 , t 2 ) {\displaystyle (t_{1},t_{2})} dla 0 t 1 < t 2 < + . {\displaystyle 0\leqslant t_{1}<t_{2}<+\infty .} Splot jednostronny określa się jako funkcję f 1 f 2 {\displaystyle f_{1}*f_{2}} zmiennej t 0 {\displaystyle t\geqslant 0} wzorem

( f 1 f 2 ) ( t ) = 0 t f 1 ( τ ) f 2 ( t τ ) d τ . {\displaystyle (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 . {\displaystyle t.} Splot jest funkcją prawie wszędzie ciągłą w przedziale [ 0 , ) . {\displaystyle [0,\infty ).} Ponadto o ile tylko jedna z funkcji f 1 , f 2 {\displaystyle f_{1},f_{2}} jest ograniczona na każdym przedziale postaci [ 0 , T ] {\displaystyle [0,T]} T > 0 , {\displaystyle T>0,} to splot f 1 f 2 {\displaystyle f_{1}*f_{2}} jest określony wszędzie oraz jest ciągły w każdym punkcie, a także

lim t 0 + ( f 1 f 2 ) ( t ) = 0. {\displaystyle \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 {\displaystyle 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 {\displaystyle f_{1},f_{2}} jest funkcją zerową prawie wszędzie. Twierdzenie to nie jest prawdziwe dla splotów w ( , ) . {\displaystyle (-\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 , ) {\displaystyle [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

Pochodna splotu dwóch funkcji f 1 {\displaystyle f_{1}} i f 2 , {\displaystyle f_{2},} tj.

d d t ( f 1 f 2 ) ( t ) = d d t 0 t f 1 ( τ ) f 2 ( t τ ) d τ {\displaystyle {\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 {\displaystyle f_{1}} jest dla t 0 {\displaystyle t\geqslant 0} funkcją ciągłą, a f 2 {\displaystyle f_{2}} dla t > 0 {\displaystyle t>0} funkcją różniczkowalną, to zgodnie z twierdzeniem Leibniza o różniczkowaniu całki, jako funkcji parametru wynika, że

d d t ( f 1 f 2 ) ( t ) = d d t 0 t f 1 ( τ ) f 2 ( t τ ) d τ = f 1 ( t ) f 2 ( 0 + ) + 0 t f 1 ( τ ) f 2 ( t τ ) d τ = f 1 ( t ) f 2 ( 0 + ) + ( f 1 f 2 ) ( t ) . {\displaystyle {\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}'(t-\tau )d\tau =f_{1}(t)f_{2}(0^{+})+(f_{1}*f_{2}')(t).}

Jeśli obydwie funkcje f 1 , f 2 {\displaystyle f_{1},f_{2}} mają ciągłe pochodne w przedziale t > 0 , {\displaystyle t>0,} to

d d t ( f 1 f 2 ) ( t ) = f 1 ( 0 + ) f 2 ( t ) + ( f 1 f 2 ) ( t ) . {\displaystyle {\frac {d}{dt}}(f_{1}*f_{2})(t)=f_{1}(0^{+})f_{2}(t)+(f_{1}'*f_{2})(t).}

Związki z transformatami

Jeśli funkcje f 1 , f 2 {\displaystyle f_{1},f_{2}} bezwzględnie transformowalne (w sensie Laplace’a) oraz chociaż jedna z nich jest ograniczona w każdym przedziale [ 0 , T ] {\displaystyle [0,T]} dla T > 0 , {\displaystyle T>0,} to

L [ f 1 f 2 ] = L [ f 1 ] L [ f 2 ] . {\displaystyle {\mathcal {L}}[f_{1}*f_{2}]={\mathcal {L}}[f_{1}]\cdot {\mathcal {L}}[f_{2}].}

Powyższe twierdzenie nazywane jest często twierdzeniem Abela. Założenie ograniczoności przynajmniej jednej z funkcji f 1 , f 2 {\displaystyle f_{1},f_{2}} można zastąpić innym, gwarantującym istnienie splotu f 1 f 2 {\displaystyle f_{1}*f_{2}} dla każdego t 0. {\displaystyle 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

F [ f 1 f 2 ] = F [ f 1 ] F [ f 2 ] . {\displaystyle {\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 ) {\displaystyle O(n\log n)} w porównaniu do zwyczajowej O ( n 2 ) , {\displaystyle O(n^{2}),} wykorzystując dwie szybkie transformacje Fouriera, a następnie jedną szybką transformację odwrotną Fouriera.

Splot miar

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

( μ ν ) ( B ) = R μ ( B y ) ν ( d y ) {\displaystyle (\mu *\nu )(B)=\int \limits _{\mathbb {R} }\mu (B-y)\nu (dy)}

nazywamy splotem miar μ {\displaystyle \mu } i ν . {\displaystyle \nu .}

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

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

( g μ ) ( t ) := R g ( t x ) μ ( d x ) , {\displaystyle (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ż

Uwagi

  1. 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ć”.

Przypisy

  1. splot funkcji, [w:] Encyklopedia PWN [dostęp 2021-10-12] .

Bibliografia

  • 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

  • PrzemysławP. Korohoda PrzemysławP., Instrukcja do laboratorium z cyfrowego przetwarzania sygnałów [online], AGH [zarchiwizowane z adresu 2016-03-04]  (pol.).