7
KONVOLUCE, KORELACE A AUTOKORELACE
7 7.1
1
Konvoluce a Fourierova transformace konvoluce. Korelace, autokorelace Definice konvoluce
Konvolucí f (~x) = f1 (~x) ∗ f2 (~x) dvou funkcí f1 (~x), f2 (~x), ~x ∈ EN , se rozumí integrál ∞Z
Z f (~x) = f1 (~x) ∗ f2 (~x) =
···
f1 (~y ) f2 (~x − ~y ) dN ~y .
(1)
−∞
Podmínky existence jsou složité. Někdy se uvádí ([1], str. 156) jako dostačující podmínka absolutní integrovatelnost aspoň jedné z funkcí f1 (~x), f2 (~x). Jinou dostačující podmínkouR je existence 2N –antu, R∞ ∞ v němž jsou obě funkce absolutně integrovatelné (tj. např. existence integrálů 0 · · · 0 |f1 (~x)| dN ~x, R∞ R∞ · · · 0 |f2 (~x)| dN ~x). 0 Konvoluce má mnoho aplikací ve vědě a technice. Pravděpodobně nejčastější aplikací konvoluce je tzv. superpoziční integrál v teorii lineárních (časově nebo prostorově) invariantních systémů. Představuje–li f1 (~x) vstupní signál a h(~x) tzv. impulsovou odezvu systému (tj. odezvu systému na vstupní signál představovaný Diracovou distribucí δ(~x)), je výstupní signál f2 (~x) charakterizován superpozičním integrálem Z f2 (~x) =
∞Z
f1 (~y ) h(~x − ~y ) dN ~y ,
···
(2)
−∞
jenž má tvar konvoluce. (Podrobnosti viz např. [1], str. 168, [2], str. 159.) Tato aplikace (2) je významným argumentem proto, aby konvoluce byla definována právě integrálem (1), kdy integrační proměnná ~y v argumentu jedné z funkcí vystupuje ve tvaru ~x − ~y . Argumentem matematické povahy pro definici konvoluce ve tvaru (1) je, že jde o operaci, jež je k oběma funkcím f1 , f2 komutativní (viz vztahy 7.2(1) v dalším textu). Jiné operace tohoto typu, např. korelace definovaná v odst. 7.5, nejsou komutativní. Pro nás je aktuálně důležitý velmi speciální případ konvoluce, a to konvoluce funkce a Diracovy distribuce, jež má význam posunutí funkce (viz obr. 1): f (~x) ∗ δ(~x − ~x 0 ) = f (~x − ~x 0 ).
(3)
Podle definice konvoluce (1) má totiž levá strana rov. (3) tvar f (~x) ∗ δ(~x − ~x 0 ) =
∞Z
Z
···
f (~y ) δ(~y − (~x − ~x 0 )) dN ~y ,
−∞
z něhož — vzhledem k filtrační vlastnosti Diracovy distribuce — vyplývá platnost rov. (3).
x2
x0 0
f(x )
f(x - x0) x1
Obrázek 1: Posunutí funkce f (~x) o vektor ~x 0 .
2
7
7.2
KONVOLUCE, KORELACE A AUTOKORELACE
Vlastnosti konvoluce
(i) Konvoluce je komutativní: f1 (~x) ∗ f2 (~x) = f2 (~x) ∗ f1 (~x).
(1)
O platnosti vztahu (1) se přesvědčíme substitucí ~z = ~x − ~y v definičním integrálu 7.1(1): Z f1 ∗ f2 =
∞Z
Z
N
···
f1 (~y ) f2 (~x − ~y ) d ~y =
−∞
∞Z
···
f1 (~x − ~z) f2 (~z) dN ~z = f2 ∗ f1 .
−∞
(ii) Konvoluce je asociativní: (f1 ∗ f2 ) ∗ f3 = f1 ∗ (f2 ∗ f3 ).
(2)
Záměnou pořadí integrace dostaneme
Z (f1 ∗ f2 ) ∗ f3
Z ···
=
Z Z N N · · · f1 (~y ) f2 (~z − ~y ) d ~y f3 (~x − ~z) d ~z =
~z Z
~y Z
···
=
Z Z f1 (~y ) · · · f2 (~z − ~y ) f3 (~x − ~z) dN ~z dN ~y .
~y
~z
Substitucí ~z − ~y = p~ ve vnitřním integrálu a označením g = f2 ∗ f3 dostaneme
Z (f1 ∗ f2 ) ∗ f3
Z ···
=
Z Z p) f3 (~x − ~y − p~) dN p~ dN ~y = f1 (~y ) · · · f2 (~ p~
~y Z =
Z ···
f1 (~y ) g(~x − ~y ) dN ~y = f1 ∗ g = f1 ∗ (f2 ∗ f3 ).
~y (iii) Pro konvoluci platí distributivní zákon (f1 + f2 ) ∗ f3 = f1 ∗ f3 + f2 ∗ f3 .
(3)
Platnost vztahu (3) je zřejmá z toho, že integrace v definici konvoluce 7.1(1) je lineární operací. (iv) Z téhož důvodu je zřejmé, že pro libovolnou konstantu a platí (af1 ) ∗ f2 = a(f1 ∗ f2 ).
(4)
(v) Translace konvoluce: Platí–li f1 (~x) ∗ f2 (~x) = f (~x), platí také f1 (~x − ~x 0 ) ∗ f2 (~x) = f (~x − ~x 0 ). Vlastnost (5) lze dokázat s pomocí vztahů 7.1(3) a 7.2(2), 7.2(1): f1 (~x − ~x 0 ) ∗ f2 (~x)
f1 (~x) ∗ δ(~x − ~x 0 ) ∗ f2 (~x) = f1 (~x) ∗ δ(~x − ~x 0 ) ∗ f2 (~x) = = f1 (~x) ∗ f2 (~x) ∗ δ(~x − ~x 0 ) = f1 (~x) ∗ f2 (~x) ∗ δ(~x − ~x 0 ) = =
= f (~x) ∗ δ(~x − ~x 0 ) = f (~x − ~x 0 ).
(5)
7
KONVOLUCE, KORELACE A AUTOKORELACE
3
(vi) Integrál z konvoluce dvou funkcí je roven součinu integrálů obou funkcí: Z
∞Z
···
Z ∞Z Z ∞Z Z ∞Z · · · f1 (~y ) f2 (~x − ~y ) dN ~y dN ~x = · · · f1 (~x) dN ~x · · · f2 (~x) dN ~x.
−∞
−∞
−∞
(6)
−∞
Platnost tohoto tvrzení se dokáže substitucí ~t = ~x − ~y ve vnitřním integrálu po záměně pořadí integrací:
Z
Z ··· ~x
Z Z Z Z Z Z N N · · · f1 (~y ) · · · f2 (~x − ~y ) dN ~x dN ~y = · · · f1 (~y ) f2 (~x − ~y ) d ~y d ~x = ~y
~y Z
~x Z
···
=
f1 (~y )
~y Z =
Z ···
f1 (~y ) dN ~y
Z
~y
7.3
f2 (~t) dN ~t dN ~y =
~t Z
···
Z
Z ···
f2 (~t) dN ~t.
~t
Fourierova transformace konvoluce a Fourierova transformace součinu
~ a FT f2 (~x) = F2 (X). ~ Pak Nechť FT f1 (~x) = F1 (X) (i) 1 ~ 2 (X) ~ FT f1 (~x) ∗ f2 (~x) = N F1 (X)F A
(1)
~ 2 (X) ~ = AN f1 (~x) ∗ f2 (~x). FT−1 F1 (X)F
(2)
~ ∗ F2 (X) ~ FT f1 (~x)f2 (~x) = B N F1 (X)
(3)
~ ∗ F2 (X) ~ = 1 f1 (~x)f2 (~x). FT−1 F1 (X) BN
(4)
a tedy
(ii)
a tedy
Vyjádřeno slovy: (i) Fourierova transformace konvoluce funkcí je úměrná součinu Fourierových transformací těchto funkcí. (ii) Fourierova transformace součinu dvou funkcí je úměrná konvoluci Fourierových transformací těchto funkcí. Důkaz tvrzení (i) je snadný a zakládá se na záměně pořadí integrací:
FT f1 (~x) ∗ f2 (~x)
= AN
Z
Z ···
Z Z N ~ · ~x dN ~x = · · · f1 (~y ) f2 (~x − ~y ) d ~y exp −ik X
~x
~y Z Z Z Z N N ~ = · · · f1 (~y ) A · · · f2 (~x − ~y ) exp −ik X · (~x − ~y ) d (~x − ~y ) × ~y ~x ~ · ~y dN ~y . × exp −ik X ~ a nezávisí na integrační proměnné ~y vnějšího integrálu, takže Výraz ve složené závorce je roven F2 (X) jej lze vytknout před integrál:
4
7
KONVOLUCE, KORELACE A AUTOKORELACE
~ 1 F1 (X), ~ FT f1 (~x) ∗ f2 (~x) = F2 (X) AN což je tvrzení (1). Důkaz tvrzení (3) je o něco složitější. Funkce f1 (~x) a f2 (~x) v konvoluci vyjádříme inverzními Fourierovými transformacemi, záměnou pořadí integrací získáme vnitřní integrál, jenž je Diracovou distribucí a využitím filtrační vlastnosti této distribuce se dostane tvrzení (3):
FT f1 (~x) f2 (~x)
= AN
Z
Z
~ · ~x dN ~x = f1 (~x) f2 (~x) exp −ik X
··· ~x
= AN B 2N
Z
Z Z ~ ) exp ik Y ~ · ~x dN Y ~× · · · F1 (Y ~ Y
Z ··· ~x
Z ×
Z ···
~ · ~x dN ~x = ~ exp ik Z ~ · ~x dN Z ~ exp −ik X F2 (Z)
~ Z = AN B 2N Z ×
Z
Z
~) F1 (Y
···
Z
Z ···
~ × F2 (Z)
~ ~ Z Z Y ~ +Z ~ −X ~ · ~x dN ~x dN Z ~ dN Y ~ = · · · exp ik(Y ~x
N
= A B
= BN
2N
Z
Z ··· ~ Y Z
Z ···
~) F1 (Y
Z
Z ···
~ F2 (Z)
2π |k|
N
~ = ~ dN Y ~ +Z ~ −X ~ dN Z δ(Y
~ Z ~ ) F2 (X ~ −Y ~ ) dN Y ~ = B N F1 (X) ~ ∗ F2 (X). ~ F1 (Y
~ Y Vztah (1) může být užitečný pro výpočet dekonvoluce. Předpokládejme například, že známe výstupní funkci f2 (~x) lineárního prostorově invariantního systému se známou impulsovou odezvou h(~x) a že chceme zjistit vstupní funkci f1 (~x). Superpoziční integrál f2 (~x) = f1 (~x) ∗ h(~x)
(5)
(srov. 7.1(2)) k tomu nelze bezprostředně použít. Podle vztahu (1) však pro Fourierovu transformaci vztahu (5) platí ~ = 1 F1 (X) ~ H(X), ~ F2 (X) AN
(6)
~ je Fourierova transformace impulsové odezvy (nazývá se často přenosovou funkcí systému). kde H(X) Odtud můžeme vypočítat vstupní funkci f1 (~x) inverzní Fourierovou transformací ( f1 (~x) = FT
7.4
−1
~ = AN FT−1 F1 (X)
~ F2 (X) ~ H(X)
) .
(7)
Příklady
Vztahy 7.3(1) až 7.3(4) jsou příhodné také pro výpočty Fourierových integrálů. Zejména tehdy, když počítáme Fourierovu transformaci nějaké složitější funkce, kterou lze považovat za součin nebo konvoluci dvou nebo několika jednodušších funkcí. Uvedeme několik příkladů:
7
KONVOLUCE, KORELACE A AUTOKORELACE
7.4.1
Příklad: f (x) = cos(ax) rect
x b
5
, a > 0, b > 0.
Jde zřejmě o funkci cos(ax) omezenou na interval x ∈ (−b/2, b/2) (viz obr. 2). Její Fourierovu transformaci vypočteme opět pomocí vztahu 7.3(3):
Obrázek 2: Graf funkce f (x) = cos(ax) rect
x b
, a > 0, b > 0.
n x o n x o = B FT cos(ax) ∗ FT rect . F (X) = FT cos(ax) rect b b Podle vztahů 3.2(1) a 1.3(16) je
(1)
1 h a a i δ X− +δ X + , 2B k k n x o sin k 2b X FT rect , = Ab b k 2b X FT cos(ax)
=
takže h b sin k 2b X a a i F (X) = A ∗ δ X − + δ X + = 2 k 2b X k k " # sin k 2b X + ka b sin k 2b X − ka + = A = 2 k 2b X − ka k 2b X + ka " # sin k 2b X + ab b sin k 2b X − ab 2 2 = A + . 2 k 2b X − ab k 2b X + ab 2 2
(2)
Pokud nespecifikujeme vzájemný vztah parametrů a a b, nemá smysl výraz (2) dále upravovat. Je však z něho zřejmé, že — pokud je ab π — má Fourierova transformace F (X) vždy významná . maxima přibližně v bodech X = ± ka , F (± ka ) = A 2b , jež odpovídají distribucím δ(X ± ka ) ve Fourierově transformaci funkce cos ax. (Jsou dobře patrná také z obrázků 4 a 6 v dalším textu.) Zvolme parametr b tak, aby funkce cos(ax) rect xb obsahovala celočíselný počet půlperiod funkce cos(ax). Dosáhneme toho tím, že položíme b = mπ a , kde m = 1, 2, . . . značí počet půlperiod. Výraz (2) při této hodnotě parametru b má tvar " # mπ mπ sin k mπ mπ sin k mπ 2a X − 2 2a X + 2 F (X) = A + = mπ mπ 2a k mπ k mπ 2a X − 2 2a X + 2 " # π π sin kmπ A sin kmπ 2a X − m 2 2a X + m 2 = + = kX kX a a −1 a +1 mπ mπ 2 1 kX mπ kX mπ kX = A cos sin − sin cos . 2 a ( kX a 2 2 a 2 2 a a ) −1
(3)
6
7
KONVOLUCE, KORELACE A AUTOKORELACE
Předpokládejme, že funkce cos(ax) rect xb obsahuje sudý počet půlperiod, tj. celistvý počet period. p Pak m = 2p, p = 1, 2, . . ., takže b = 2pπ a . Poněvadž sin(pπ) = 0, cos(pπ) = (−1) , zjednoduší se výraz (3) do tvaru kX 2 kX F (X) = A (−1)p kX a2 sin pπ a a ( a ) −1
(4)
Grafy funkce (4) pro p = 1 a p = 6 jsou na obrázcích 3 a 4.
Obrázek 3: Graf funkce f (x) kX = A a2 1−( akX )2 sin π kX a .
=
cos(ax) rect
ax 2π
Obrázek 4: Graf funkce f (x) kX = A a2 ( kX a)2 −1 sin 6π kX a .
=
cos(ax) rect
ax 12π
a její Fourierovy transformace F (X)
=
a její Fourierovy transformace F (X)
=
a
a
Předpokládejme nyní, že funkce cos(ax) rect xb obsahuje lichý počet půlperiod. Pak m = 2p − 1, p−1 , cos 2p−1 p = 1, 2, . . ., takže b = (2p − 1) πa . Poněvadž sin 2p−1 2 π = (−1) 2 π = 0, zjednoduší se výraz (3) do tvaru 2 (−1)p 2p − 1 kX F (X) = A cos π . (5) 2 a ( kX 2 a a ) −1 Grafy funkce (5) pro p = 1 a p = 6 jsou na obrázcích 5 a 6. 7.4.2
Příklad: f (x) = sin(a|x|) (obr. 7)
Tuto funkci můžeme považovat za součin f (x) = sin(a|x|) = sgn(x) sin(ax) =
x sin(ax). |x|
Její Fourierovu transformaci můžeme tedy vypočítat pomocí vztahu 7.3(3):
7
KONVOLUCE, KORELACE A AUTOKORELACE
ax π
Obrázek 5: Graf funkce f (x) = cos(ax) rect
Obrázek 6: Graf funkce f (x) cos( 11 π kX ) = A a2 ( kX2 )2 −1a .
=
7
a její Fourierovy transformace F (X) = A a2
cos(ax) rect
ax 11π
cos( π 2
kX a
)
2 1−( kX a )
a její Fourierovy transformace F (X)
.
=
a
F (X) = FT sin(a|x|) = B FT
x |x|
∗ FT sin ax .
(6)
Obě Fourierovy transformace jsme vypočetli již dříve: FT
x |x|
= −A
2i , kX
2.7(7)
i h a a i FT sin(ax) = −δ X − +δ X + . 2B k k
6.2(2)
Dosadíme je do (6) a máme A 1 h a a i FT sin(a|x|) = ∗ −δ X − +δ X + . k X k k Konvoluci snadno vypočteme. Je totiž a 1 ∗δ X − X k 1 a ∗δ X + X k
Z
∞
= −∞ Z ∞
= −∞
1 a δ X − − y dy = y k 1 a δ X + − y dy = y k
1 X− 1 X+
a k a k
, .
Takže A FT sin(a|x|) = k Grafy funkcí (7) a (6) jsou na obr. 7
−1 1 + X − ka X+
a k
=A
2 1 . a 1 − kX 2 a
(7)
8
7
KONVOLUCE, KORELACE A AUTOKORELACE
Obrázek 7: Grafy funkcí sin(a|x|) a FT sin(a|x|) = A a2
7.4.3
1 2 1−( kX a )
při a > 0.
Příklad: f (x) = step(x) sin(ax) (obr. 8)
Fourierovu transformaci této funkce získáme velmi snadno, neboť je lineární kombinací již vypočtených x , je Fourierových transformací. Poněvadž step(x) = 21 1 + |x| FT step(x) sin(ax)
= =
1 x 1 FT sin(ax) + FT sin(ax) = 2 2 |x| 1 i h a a i A −δ X − +δ X + + . 4B k k a 1 − kX 2
(8) (9)
a
Graf funkce step(x) sin(ax) i její Fourierovy transformace (9) je na obr. 8.
Obrázek 8: Graf funkce step(x) sin(ax) a její Fourierovy transformace (8) při a > 0.
7.5
Korelace a autokorelace
Korelace (anglicky cross–correlation) funkcí f1 (~x) a f2 (~x) bývá v literatuře definována různými způsoby, které na neštěstí nejsou ekvivalentní, zejména když jde o komplexní funkce. Přidržíme se zde definice, která je nejvhodnější pro aplikace v teorii difrakce (srov. odst. 7.6 v dalším textu) a definujeme korelaci integrálem Z f (~x) = f1 (~x) ? f2 (~x) =
∞Z
···
f1∗ (~y ) f2 (~y + ~x) dN ~y .
(1)
−∞
Podmínky existence integrálu (1) jsou obdobné jako u konvoluce. V každém případě integrál (1) existuje, je–li aspoň jedna z funkcí f1 (~x), f2 (~x) absolutně integrovatelná. Substituce ~z = ~x + ~y , resp. ~z = ~y + ~x/2 vedou k ekvivalentnímu vyjádření korelace:
7
KONVOLUCE, KORELACE A AUTOKORELACE ∞Z
Z
f1∗ (~z − ~x) f2 (~z) dN ~z,
(2)
f1∗ (~z − ~x/2) f2 (~z + ~x/2) dN ~z.
(3)
···
f (~x) =
9
−∞
resp. Z f (~x) =
∞Z
··· −∞
Praktický význam korelace spočívá v tom, že vyjadřuje jakousi míru podobnosti obou funkcí. V teorii komunikace se jí používá k nalezení známé funkce v zašumělém signálu. Definice korelace je formálně podobná definici konvoluce. Existují však podstatné rozdíly mezi korelací a konvolucí. Především korelace není komutativní. Pro korelaci totiž platí f1 (~x) ? f2 (~x) = f2∗ (−~x) ? f1∗ (−~x).
(4)
Lze se o tom přesvědčit úpravou pravé strany této rovnice:
f2∗ (−~x) ? f1∗ (−~x)
Z =
∞Z
···
f2 (−~y ) f1∗ (−~x − ~y ) dN ~y =
−∞
Z
∞Z
···
f2 (~z) f1∗ (~z − ~x) dN ~z =
−∞
= f1 (~x) ? f2 (~x). Souvislost mezi konvolucí a korelací vyjadřují rovnice f1 (~x) ∗ f2 (~x) = f1∗ (−~x) ? f2 (~x) = f2∗ (−~x) ? f1 (~x), f1 (~x) ? f2 (~x) = f1∗ (−~x) ∗ f2 (~x).
(5) (6)
O platnosti těchto rovnic se lze přesvědčit porovnáním definičního integrálu 7.1(1) pro konvoluci a integrálu (2) pro korelaci. Položíme–li v definičním integrálu (1) korelace f1 = f2 = f , mluvíme o autokorelaci funkce f (~x): Z f (~x) ? f (~x) =
∞Z
···
f ∗ (~y ) f (~y + ~x) dN ~y .
(7)
−∞
V aplikacích ve strukturní analýze se autokorelace reálné funkce f (~x) nazývá zobecněnou Pattersenovou funkcí (viz např. [3], str. 92). Z rovnice (6) a z komutativnosti 7.2(1) konvoluce plyne f (~x) ? f (~x) = f ∗ (−~x) ∗ f (~x) = f (~x) ∗ f ∗ (−~x).
7.6
(8)
Fourierova transformace součinu f (~x) f ∗ (~x) a inverzní Fourierova trans~ F ∗ (X) ~ formace součinu F (X)
Při experimentech se téměř vždy registruje intenzita záření, a nikoli komplexní amplituda, tj. vlnová funkce příslušného vlnění. Uvedeme příklad z optiky, kdy preparát f (x1 , x2 ) je osvětlen rovinnou vlnou a zobrazen čočkou. Chceme–li zaregistrovat vlnění v rovině těsně za preparátem, neregistrujeme funkci f (x1 , x2 ), ale intenzitu f (x1 , x2 ) f ∗ (x1 , x2 ). Podobně chceme–li zaregistrovat difrakční jev v obrazové ohniskové rovině čočky, neregistrujeme Fourierovu transformaci F (X1 , X2 ), ale čtverec modulu Fourierovy transformace F (X1 , X2 ) F ∗ (X1 , X2 ). Podobně je tomu ve strukturní analýze. Např. v rentgenové difraktografii dává experiment nikoliv ~ elektronové hustoty preparátu, ale intenzitu, tj. funkci úměrnou čtverci Fourierovu transformaci F (X) ~ F ∗ (X). ~ modulu Fourierovy transformace, tj. F (X) Má tedy smysl vyšetřit, (i) jak souvisí Fourierova transformace funkce |f (~x)|2 s Fourierovou transfor~ funkce f (~x) a (ii) jak souvisí inverzní Fourierova transformace funkce |F (X)| ~ 2 s funkcí f (~x), mací F (X) 2 ~ tj. Fourierovou transformací čeho je |F (X)| .
10
7
KONVOLUCE, KORELACE A AUTOKORELACE
(i) Počítejme tedy FT |f (~x)|2 . Podle věty 7.3(3) o Fourierově transformaci součinu je ~ ∗ FT f ∗ (~x) . FT f (~x) f ∗ (~x) = B N F (X) Fourierovu transformaci funkce f ∗ (~x) jsme vypočítali v odst. 1.6. Podle 1.6(1) je ~ FT f ∗ (~x) = F ∗ (−X). Je tedy ~ ∗ F ∗ (−X) ~ = B N F (X) ~ ? F (X). ~ FT |f (~x)|2 = B N F (X)
(1)
Fourierova transformace čtverce modulu funkce je tedy úměrná autokorelaci Fourierovy transformace funkce. ~ 2 . Použitím 7.3(2) a 1.6(2) dostaneme (ii) Obdobně postupujeme při výpočtu FT−1 |F (X)|
~ F ∗ (X) ~ FT−1 F (X)
~ = AN f (~x) ∗ FT−1 F ∗ (X) = AN f (~x) ∗ f ∗ (−~x) = = AN f (~x) ? f (~x).
Je tedy čtverec modulu Fourierovy transformace funkce úměrný Fourierově transformaci autokorelace funkce: ~ 2 = AN FT f (~x) ∗ f ∗ (−~x) = AN FT f (~x) ? f (~x) . |F (X)|
(2)
Kdybychom tedy vypočítali nebo experimentálně získali inverzní Fourierovu transformaci inten~ = |F (X)| ~ 2 , získali bychom nikoli funkci f (~x) charakterizující objekt, nýbrž pouze její zity I(X) autokorelaci. To je dobré mít na paměti zejména v případech, kdy funkce a její autokorelace mají obdobný vzhled (mřížky).
Reference [1] Gaskill J. D.: Linear Systems, Fourier Transforms, & Optics. John Wiley & Sons, New York 1978. [2] Komrska J.: Vlnová optika, část Difrakce světla. Akademické nakladatelství CERM, Brno 2004. [3] Cowley J. M.: Diffraction Physics. 2nd ed. North-Holland Publ. Co., Amsterdam 1991.