group harmonic analysis of turbulence-degraded imagesmath.hawaii.edu/~williamdemeo/trgroups.pdf ·...

71
William J. DeMeo Paul A. Billings [email protected] [email protected] Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized blind deconvolution July 7, 2004 TEXTRON Systems Corporation Hawaii Operations 535 Lipoa Parkway, Suite 149 Kihei, HI 96753

Upload: others

Post on 19-Aug-2020

23 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

William J. DeMeo Paul A. Billings

[email protected] [email protected]

Group Harmonic Analysis ofTurbulence-degraded Images

anisoplanatism and generalized blind deconvolution

July 7, 2004

TEXTRON Systems Corporation

Hawaii Operations

535 Lipoa Parkway, Suite 149

Kihei, HI 96753

Page 2: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

Contents

1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.1 Abelian vs. Nonabelian Group DSP . . . . . . . . . . . . . . . . . . . . . . . . 5

2 Nonabelian Group DSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.1 Main theorems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2 Semidirect Product Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3 Generalized Blind Deconvolution . . . . . . . . . . . . . . . . . . . . . . . . . . 143.1 Standard Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.2 Group Algebra Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.1 Imaging Through Turbulence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.2 Nonabelian Group DSP Subroutines1 . . . . . . . . . . . . . . . . . . . . . . 44

A Mathematical Supplement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63A.1 Exponential families . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63A.2 Poisson impulse processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65A.3 Harmonic Analysis on Finite Groups . . . . . . . . . . . . . . . . . . . . . . . 66

References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Page 3: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 3

Summary. Multi-frame blind deconvolution (MFBD) is a technique for reducingimage degradation due to atmospheric turbulence. In this work we describe somemathematical methods for generalizing the MFBD algorithm. In particular, we de-scribe nonabelian group translations, the superposition of which result in a moregeneral definition of convolution. Such a “generalized convolution” may be used tomodel the effects of anisoplanatism, or space-variant blur,2 and this leads to ourgeneralized blind deconvolution (GBD) approach.

Our basic atmospheric turbulence model takes the observed image to be a con-volution of the true object with a spatially-invariant point spread function. A moregeneral definition of convolution enables the basic model to account for more com-plex spatial and temporal variations of the point spread function. Since the trans-formation is still written and implemented as a convolution, the increase in modelcomplexity comes at no increase in computational cost.

Section 1 briefly discusses the role that translation and translation-invarianceplay in DSP and how finite groups provide insights into these important concepts.Sections 2 and A.3 set down some notation and mathematical prerequisites in prepa-ration for Sect. 3 which describes how to formulate the MFBD algorithm using thismathematical formalism.

2 Space-variant blur (or spatially varying blur), is discussed in [PTS94], amongother places.

Page 4: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

1

Introduction

The translation-invariance of most classical signal processing transforms andfiltering operations is largely responsible for their widespread use, and is cru-cial for efficient algorithmic implementation and interpretation of results. Un-derlying most digital signal processing (DSP) algorithms is the group Z/N ofintegers modulo N , which serves as the data indexing set. Translations are de-fined using addition modulo N , and basic operations, including convolutionsand Fourier expansions, are developed relative to these translations.

DSP on finite abelian groups such as Z/N is well-understood and hasgreat practical utility. Recently, however, interest in the practical utility ofnonabelian groups has grown significantly. Although the theoretical founda-tions of finite nonabelian groups is well established, application of the theoryto DSP has yet to become common-place; cf. the NATO ASI “Computa-tional Non-commutative Algebras,” Italy, 2003. Another notable exceptionis the book [AT03], by An and Tolimieri, which develops theory and algo-rithms for indexing data with nonabelian groups, defining translations witha (non-commutative) group multiply operation, and performing typical DSPoperations relative to these translations. An and Tolimieri demonstrates thatincluding nonabelian groups among the possible data indexing strategies sig-nificantly broadens the range of useful signal processing techniques.

The present work begins by reviewing some group theory that is usefulfor applications. The presentation of this background relies heavily on theworks of An and Tolimieri – their two books [AT03] and [TA98], as well aspersonal communications.1 After laying this groundwork, we discuss an im-portant image processing application in Sect. 3 – imaging through turbulence.The problem can be described simply as the distortion of telescope images1 A more thorough and lucid treatment of this material is found in An and Tolim-

ieri’s books. Many a well-known result is stated and/or derived without a citation,but this does not imply that we invented the result or its derivation. All new re-sults we present will be simple applications of the theory and will appear inSects. 3 and 4.

Page 5: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 5

caused by the earth’s turbulent atmosphere. A simple mathematical calcula-tion shows that under certain conditions – in particular, when the structureof atmospheric distortions varies across the field of view – the standard modelis computationally intractable.

The main contribution of this work is to restate this problem using anew, more general mathematical framework – namely, the one described inSects. 2 and A.3 – and to show that, equipped with this new formalism, wecan account for various types of anisoplanatism by making what amounts toa small, conceptual departure from the standard models and algorithms thatwe currently use for the isoplanatic (i.e., spatially-invariant) case.

To be more specific, we demonstrate that nonabelian group indexing setsgeneralize translation operations, and this results in a more general convo-lution. Our basic atmospheric turbulence model assumes that the noiselessimage is a convolution of the true object with a spatially-invariant pointspread function. A more general definition of convolution enables the basicmodel to account for more complex spatial and temporal variations of thepoint spread function. However, because the transformation is still writtenand implemented as a convolution, this increase in model complexity comesat no increase in computational cost.

1.1 Abelian vs. Nonabelian Group DSP

Abelian group DSP can be completely described in terms of a special classof signals called the characters of the group. (For Z/N , the characters aresimply the exponentials.) Each character of an abelian group represents a one-dimensional translation-invariant subspace, and the set of all characters spansthe space of signals indexed by the group; any such signal can be uniquelyexpanded as a linear combination over the characters.

In contrast, the characters of a nonabelian group G, do not determine abasis for expanding signals indexed by G. However, a basis can be constructedby extending the characters of an abelian subgroup A of G, and then takingcertain translations of these extensions. Some of the characters of A cannotbe extended to characters of G, but only to proper subgroups of G. Thispresents some difficulties involving the underlying translation-invariant sub-spaces, some of which are now multi-dimensional. However, it also presentsopportunities for alternative views of local signal domain information on thesetranslation-invariant subspaces.

The other abelian/nonabelian distinction of primary importance concernstranslations defined on the group. In the abelian group case, translationsrepresent simple linear shifts in space or time. When nonabelian groups indexthe data, however, translations are no longer so narrowly defined.

Page 6: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

2

Nonabelian Group DSP

This section presents some basic theory of digital signal processing (DSP),but relies on a more general mathematical formalism than that employed bythe standard textbooks on the subject.1.

2.1 Main theorems

A character of G is a group homomorphism of G into C×, where C× = C\0.In other words, the mapping % : G → C× is a character of G if it satisfies%(xy) = %(x)%(y), x, y ∈ G. There is always at least one character, the trivialcharacter, which is 1 for all y ∈ G. Let G∗ denote the set of all characters ofG.

By the identification (A.16) between L(G) and CG, a character % ∈ G∗

can be viewed as a formal sum,

% =∑x∈G

%(x)x. (2.1)

Therefore, G∗ ⊂ CG. Expressing the characters as formal sums leads to simpleproofs of important DSP results.

Theorem 2.1. If % is a character of G, then

y% = %y = %(y−1)%, y ∈ G. (2.2)

Proof. By a change of variables,

%y =Xx∈G

%(x)xy =Xx∈G

%(xy−1)x, y ∈ G. (2.3)

1 A few notable exceptions are [AT03, CK01, TA98, TAL97]

Page 7: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 7

By homomorphism property, %(xy−1) = %(x)%(y−1). Therefore,

%y =Xx∈G

%(x)%(y−1)x = %(y−1)%, y ∈ G. (2.4)

A similar change of variables argument shows

y% =Xx∈G

%(y−1x)x = %(y−1)%, y ∈ G. (2.5)

ut

Theorem 2.2. For % ∈ G∗,

1|G|

∑x∈G

%(x) =

1, %(x) = 1,∀x ∈ G,

0, otherwise.(2.6)

where |G| is the order of G.

Proof. By a change of variables,

%(y)Xx∈G

%(x) =Xx∈G

%(yx) =Xx∈G

%(x), y ∈ G. (2.7)

Therefore, either (a) %(x) = 1,∀x ∈ G, or (b)P

%(x) = 0. ut

Theorem 2.1 shows that every character is an eigenvector of left-multiplicationby elements of the group G, so we call them L(G)-eigenvectors. Therefore, bylinearity, the characters are eigenvectors of left-multiplication by f ∈ CG(convolution by f ∈ L(G)). This is re-stated more formally as the followingformula for the G-spectral components of f :

Corollary 2.3. If % ∈ G∗ and f ∈ CG, then

f% = %f = f(%)%, (2.8)

where f(%) =∑

y∈G f(y)%(y−1).

Proof. By Thm. 2.1,

f% =Xy∈G

f(y)y% =Xy∈G

f(y)%(y−1)% (2.9)

Similarly for %f , mutatis mutandis. ut

The functions which make up the standard Fourier basis – the exponentialfunctions – are eigenvectors of the standard convolution. However, as seen inthe proof of Thm. 2.2, this is merely a consequence of the fact that the expo-nential functions satisfy properties which allow us to call them characters. Thenotion of a character basis generalizes the exponential basis to include baseswhich can diagonalize any linear combination of left group multiplications.

Page 8: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

8 July 7, 2004

Corollary 2.4. If λ, τ ∈ G∗, then

λτ =

|G|λ, τ = λ,

0, τ 6= λ.(2.10)

Proof. Suppose τ = λ; then,

λτ =Xx∈G

λ(x)λ(x−1)λ =Xx∈G

λ(1)λ = |G|λ

Suppose τ 6= λ. By definition,

λ(τ) =Xx∈G

λ(x)τ(x−1) =Xy∈G

λ(y−1)τ(y) = τ(λ) (2.11)

By (2.8), λ(τ)τ = λτ = τλ = τ(λ)λ. Since λ(τ) = τ(λ) and τ 6= λ, it must be thecase that τ = 0 and λτ = 0. ut

Corollary 2.4 can be expressed in the language of idempotent theory. A nonzeroelement e ∈ CG is called an idempotent if e2 = e. Two idempotents e1 and e2

are called orthogonal if e1e2 = e2e1 = 0. Corollary 2.4 says that1|G|

ρ : ρ ∈ G∗

(2.12)

is a set of pairwise orthogonal idempotents.

2.2 Semidirect Product Groups

To determine whether a particular group is useful for a DSP application, wemust specify exactly how this group represents the data. The group represen-tation may reduce computational complexity, or it may simply make it easierto state, understand, or model a given problem.

In this section we describe procedures for specifying and studying a sim-ple class of nonabelian groups that have proven useful in applications – theabelian by abelian semidirect products. These are perhaps the simplest ex-tension of abelian groups and DSP over such groups closely resembles thatover abelian groups. However, the resulting processing tools can have vastlydifferent characteristics.

2.2.1 Action group

Let G be a finite group of order N , K a subgroup of G, and H a normalsubgroup of G. If G = HK and H ∩ K = 1, then we say that G is thesemidirect product G = HK. It can be shown that G = HK if and only ifevery x ∈ G has a unique representation of the form x = yz, y ∈ H, z ∈ K.

Page 9: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 9

Denote by Aut(H) the set of all automorphisms of H. The mapping Ψ :K → Aut(H) defined by

Ψz(x) = zxz−1, z ∈ K, x ∈ H (2.13)

is a group homomorphism. Define the binary composition in G in terms of Ψas follows:

x1x2 = (y1z1)(y2z2) = y1Ψz1(y2)z1z2, (2.14)

y1, y2 ∈ H, z1, z2 ∈ K.

If K is a normal subgroup of G, then y−1Ky = K for all y ∈ G, andG is simply the cartesian product H × K with component-wise multiplica-tion. What is new in the semidirect product is the possibility that K actsnontrivially on H. For this reason, K is sometimes called the “action group.”

Simplest nonabelian example As above, CN (x) = xn : 0 ≤ n < N denotesthe cyclic group of order N with generator x, and U(N) denotes the group ofunits.

If the mapping Ψ given in (2.13) is defined over K = U(N), then Ψ isa group isomorphism. Under this identification, we can form the semidirectproduct G = HK, with H = CN (x) and K a subgroup of U(N). Throughoutthis section, G will denote such a semidirect product group.

The elements u ∈ K are integers. However, we follow [AT03] and use ku todenote the element u ∈ K as this avoids confusion that can arise on occasion.2

Without loss of generality, assume the action group K is a cyclic groupof order J = |K| with generator u. We identify each element of K with anindex, and denote the set of elements by

K = kju : 0 ≤ j < J. (2.15)

Thus, to each kv ∈ K, there corresponds a j ∈ Z such that kju = kv. We use

xnkv and xnkju to denote typical points of G = CN (x)K.

Given two points in G, say z = xmku and y = xnkv, define multiplicationaccording to (2.14) as follows:

zy = (xmku)(xnkv) = xm+unkukv, (2.16)

where m + un is taken modulo N . Since kv = kju for some j ∈ Z, then

kukv = k1+ju , and zy = xm+unkj+1

u .Let z = xmkv and suppose kw is the inverse of kv in K. Then the inverse

of z must bez−1 = xN−wmkw. (2.17)

This is easily verified as follows:2 This notation is especially useful when K is a cyclic group with generator u. If

we denote elements of K by kju, instead of by uj , it is easier to distinguish them

from elements of the abelian group CN (x).

Page 10: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

10 July 7, 2004

z−1z = xN−wmkwxmkv (2.18)= xN−wm+wmkwkv ≡ 1.

Suppose K ⊂ U(N) has order |K| = J , and consider the semidirect prod-uct group with elements

G = xnkju : 0 ≤ n < N, 0 ≤ j < J (2.19)

= 1, x, . . . , xN−1, k, xk, . . .

. . . , xN−1k, k2u, xk2

u, . . .

. . . , xN−1kJ−1u .

Translations For f ∈ CG,

f =∑y∈G

f(y)y =∑n,j

f(xnkju)xnkj

u, (2.20)

where 0 ≤ n < N and 0 ≤ j < J . As above, translations of CG are defined asleft-multiplication by elements of G.

The semidirect product in (2.19) has a very basic form, and there is a sim-ple dichotomy of translation types that arise from left-multiplication by ele-ments of G. Translations of the first type are the familiar “abelian translates,”obtained upon left-multiplication by powers of x, as illustrated in Fig. A.1.

By change of variables,

xmf =∑n,j

f(xnkju)xn+mkj

u

=∑n,j

f(xn−mkju)xnkj

u (2.21)

which is simply a “right shift” of f by m units. Similarly, left-multiplication bypowers of x−1 effects “left shift” of f . (Recall, x−1 ≡ xN−1 and x−m ≡ xN−m.)

Of the second type of translation arising from left-multiplication by ele-ments of G are the “nonabelian translates.” For kv ∈ K,

kvf =∑n,j

f(xnkju)kvxnkj

u

=∑n,j

f(k−1v xnkj

u)xnkju (2.22)

Suppose that kw = k`u is the inverse of kv in K. Then,

kvf =∑n,j

f(kwxnkju)xnkj

u

=∑n,j

f(xwnk`+ju )xnkj

u (2.23)

Page 11: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 11

From (2.23) it is clear that kvf results in a more complex transformation thanxmf .

For the general element z = xmkv ∈ G with inverse z−1 = xN−wmkw

(2.17), we derive rules for generalized translations with respect to z and z−1.

zf =∑y∈G

f(y)zy =∑y∈G

f(z−1y)y

=∑n,j

f(xN−wmkw xnkju)xnkj

u

=∑n,j

f(xN−w(m−n)kwkju)xnkj

u (2.24)

z−1f =∑y∈G

f(y)z−1y =∑y∈G

f(zy)y

=∑n,j

f(xmkvxnkju)xnkj

u

=∑n,j

f(xm+vnkvkju)xnkj

u (2.25)

2.2.2 Examples

As seen above, when varying group structures are placed on indexing sets,and products in the resulting group algebra are computed, interesting signaltransforms obtain. In this section, we elucidate the nature of these operationsby examining some simple concrete examples in detail.

Example 2.5.3 Let G1 be the abelian group

G1 = C2N (x) = xn : 0 ≤ n < 2N. (2.26)

Let G2 be the dihedral group with elements

G2 = CN (x)1, kN−1= xnkj

N−1 : 0 ≤ n < N, 0 ≤ j < 2.

We order the elements of G2 as follows:

1, x, . . . , xN−1, kN−1, xkN−1, . . . , xN−1kN−1

Thus, G2 is divided into two blocks of N -samples.Another group, G3, will be constructed as follows: for some integer M ≥ 2,

define N = 2M , so that(

N2 + 1

)2 ≡ 1 mod N , and N/2 + 1 generates asubgroup of U(N) of order 2. Let3 An and Tolimieri (2003), page 125.

Page 12: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

12 July 7, 2004

G3 = CN (x)1, kN2 +1

= xnkjN2 +1

: 0 ≤ n < N, 0 ≤ j < 2.

Note that G2 and G3 are isomorphic groups.

By describing the translations of functions in CG2, we will see that thenonabelian translates of CG2 are “intra-block time-reversal” operations. Asimilar analysis of G3 shows that the nonabelian translates of CG3 performan “intra-block interleave” operation.

Note that multiplication on G2 obeys the following relations:

xN = k2N−1 = 1, (2.27)

xmkj+1N−1 xnkj

N−1 =

xm−n, j = 0,xm+n, j = 1,

(2.28)

and, for any z = xmkN−1,

xmkN−1xmkN−1 = xm+(N−1)m = xNm = 1. (2.29)

If f ∈ CG2, then

f =∑

n

f(xn)xn + f(xnkN−1)xnkN−1, (2.30)

where 0 ≤ n < N . Since (2.27) implies kN−1 = k−1N−1, the nonabelian translate

kN−1f is given by∑n

f(kN−1xn)xn + f(kN−1x

nkN−1)xnkN−1

which is equivalent to∑n

f(xN−nkN−1)xn + f(xN−n)xnkN−1. (2.31)

Comparing (2.30) and (2.31), we see that the nonabelian translate of f ∈ CG2

swaps the first N samples of f with the remaining N samples and performs atime-reversal within each sub-block.

To express this another way, define g = kN−1f . The first N coefficients ofg are defined in terms of f as

g(xn) = f(xN−nkN−1), 0 ≤ n < N,

while the remaining N coefficients are given by

g(xnkN−1) = f(xN−n), 0 ≤ n < N.

For a simple linear function, this special translation is illustrated in Fig. 2.1.A similar analysis of G3 = CN (x)1, kN

2 +1 reveals that the nonabeliantranslates of CG3 interleave the elements within each N -sample sub-block ofG3, in addition to swapping the two blocks themselves.

Page 13: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 13

f ∈ CG2

g = k7

g f = k7 f

x x2 . . . x7 k7 xk

7 . . . x7 k

7 1

Fig. 2.1. A linear signal f ∈ CG2, where N = 8 (left); the element kN−1 ∈ G2 (mid-dle) – as an element of the group algebra, kN−1 is the “impulse function” g ∈ CG2

with one nonzero coefficient, g(kN−1) = 1; the product gf = kN−1f (right) is, ingeneral, the convolution product and is implemented by appealing to the convolutiontheorem and using a generalized FFT algorithm.

Page 14: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

3

Generalized Blind Deconvolution

We present two descriptions of one image processing problem – reducingturbulence-induced image blur. The first description (Sect. 3.1) is developedusing mathematics that are common to this problem area, while the seconddescription (Sect. 3.2) presents a more general framework that we believe isbetter suited to the problem, especially in the presence of space-varying turbu-lence (anisoplanatism). To the best of our knowledge, the problem has neverbefore been approached from the point of described in Sect. 3.2.

We have retained the traditional description of the problem for two rea-sons. First, it demonstrates the well-known fact that the computational costincurred in the anisoplanatic case can be prohibitive, making it infeasible toprocess reasonably-sized images when using an implementation of the modelas it is traditionally described. Second, we hope that by juxtaposing the oldwith the new, we render the abstract mathematical concepts more accessible,and the resulting computational advantages more obvious.

3.1 Standard Approach

The physical model underlying the algorithms of this section is based on the-ory found in the book [Goo85], the paper [BRS01] and the notes [Bil01]. Themathematical notation we use is slightly more general than what is typicallyfound in this context. However, these adjustments take little getting used to,and they often yield expressions that are much simpler and easier to compre-hend.

Until otherwise noted, let

A = 0, 1, . . . , N − 1 × 0, 1, . . . , N − 1 ' Z/N × Z/N.

denote the indexing set for the 2-dimensional spatial coordinate plane, andLA the collection of complex valued functions on A. Let f ∈ LA denote theobject of interest and define

Page 15: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 15

g = ideal image, d = detected image,

h = coherent OTF, s = incoherent OTF,

and assume f, g, d ∈ LA, and h, s ∈ L(A∗). The domain of h and s is A∗ –the character group of A – which can be interpreted as frequency space.

The incoherent optical transfer function (OTF), denoted s ∈ L(A∗), is theautocorrelation of the coherent optical transfer function. Let h ? h denote thisautocorrelation, which is defined for each u ∈ A∗ as follows:

s(u) = (h ? h)(u) =∑

v∈A∗

h(v)h(v − u) (3.1)

Take the function h to be the Fourier transform of the function h, which iscalled the coherent point spread function (PSF). In particular, for any u =(u1, u2) ∈ A∗,

h(u) =∑x∈A

h(x) e−i2π xtuN (3.2)

=N−1∑x1=0

N−1∑x2=0

h(x1, x2) e−i2πx1u1+x2u2

N

When (3.2) is plugged into (3.1), the latter can be simplified as follows:

s(u) =∑

v∈A∗

∑x∈A

h(x) e−i2π xtvN

∑y∈A

h(y) ei2πyt(v−u)

N

=∑x,y

h(x)h(y) e−i2π ytuN

∑v∈A∗

ei2π(y−x)tv

N

Recall the important, yet easily proved, character formula,1

∑v∈A∗

ei2π(y−x)tv

N =

|A|, y = x,

0, y 6= x,

whence,

s(u) = |A|∑x∈A

h(x)h(x) e−i2π xtuN (3.3)

= N2N−1∑x1=0

N−1∑x2=0

h(x1, x2)h(x1, x2) e−i2πx1u1+x2u2

N .

Appearing in the summation in (3.3) is the squared modulus of the coherentPSF,1 This is a special case of Theorem 2.2.

Page 16: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

16 July 7, 2004

s(y) = |h(y)|2 = h(y)h(y)

which is called the incoherent point spread function.By an image “ensemble” we mean a set of K images, or frames, indexed

by k ∈ B = 0, 1, 2, . . . ,K − 1. For the kth frame in the ensemble, suppose2

gk = C(f)sk =∑y∈A

f(y)T(y)sk (3.4)

where C(f)sk denotes convolution of sk by f , and T(y) denotes translation ofsk by y. In particular, at any point x in the image plane,

gk(x) =∑y∈A

f(y)sk(x− y) =∑y∈A

f(y)T(y)sk(x), k ∈ B.

To be even more explicit, for x = (x1, x2) ∈ A,

gk(x1, x2) =N−1∑y1=0

N−1∑y2=0

f(y1, y2)sk(x1 − y1, x2 − y2), k ∈ B.

3.1.1 Poisson noise model

Consider the Poisson distribution with mean λ, which has a probability massfunction (pmf)

p(x|λ) =λx e−λ

x!Suppose that, at each point x ∈ A, the value dk(x) is a realization of a Poissonprocess with mean gk(x). Then

p (dk(x)|gk(x)) =gk(x)dk(x) e−gk(x)

dk(x)!

To be more precise, we could suppose dk(x) is a realization of a doublystochastic Poisson process3 with rate function λ(t;x) and mean

gk(x) =∫ tk+1

tk

∫Nδ(x)

λ(t; z) dz dt

whereNδ(x) = z : ‖x−z‖ < δ is a δ-neighborhood4 of the spatial coordinatex, and (tk, tk+1] represents the interval of time over which the image was2 We previously used gk = t · C(f)sk, where t ∈ LA was a truncation window,

and · denotes point-wise multiplication. However, since the function t does notinfluence any derivations of this section, it is notationally cleaner to postponeinclusion of the truncation factor.

3 See Sect. A.2 for more about Poisson processes.4 Here we assume the (continuous) 2-dimensional image plane has been equally

partitioned into δ-neighborhoods about the points in our discrete index set.

Page 17: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 17

exposed. Then we could take the (continuous) rate function λ to representthe superposition of the object and the point spread function as follows:

λ(t;x) =∫

f(t; z)s(t;x, z) dz

Though this point of view may provide a more precise representation ofreality, we settle for the approximation that results from estimating the dis-crete values gk(x). Interpolation of such values could give rise to an estimateof the rate function λ, but instead we take gk(x) as an approximation of thediscrete superposition of object and point spread function.

Denote the set of all pixels in images belonging to the noiseless and de-tected ensembles, respectively, by

g = gk(x)k∈Bx∈A

, d = dk(x)k∈Bx∈A

.

Assuming independence, the joint pmf for pixels in the detected ensemble is

p (d|g) =∏k∈B

∏x∈A

p (dk(x)|gk(x)) =∏k∈B

∏x∈A

gk(x)dk(x) e−gk(x)

dk(x)!(3.5)

Given that we observed d, we want to find the values g which yield a jointdensity p (·|g) from which the observed data set is the most likely outcome.In other words, we seek a maximum likelihood estimate (MLE) of g. Since dis given and we wish to maximize the right hand side of (3.5) over differentvalues of g, it makes sense to write (3.5) as a function of g given d; that is,

L (g|d) =∏k∈B

∏x∈A

gk(x)dk(x) e−gk(x)

dk(x)!

This is typically called the likelihood function. Since the natural log is amonotonic transformation, it’s equivalent (and usually easier) to maximizethe log of the likelihood function,

` (g|d) =∑k∈B

∑x∈A

dk(x) log gk(x)− gk(x)− log dk(x)! (3.6)

The function ` is called the “log likelihood function.” Note that the last termon the right hand side of (3.6) is constant and so can be ignored for thepurposes of maximizing

Recall from (3.4), gk is defined as C(f)sk. Our ultimate goal is to find agood estimate of sk and f . Thus, instead of maximizing the likelihood overvalues of gk, we maximize over values of f and sk simultaneously.

3.1.2 MLE derivations

Gradient with respect to f . Maximizing the log likelihood function over pos-sible values of the object leads to the MLE of the object, which we denote

Page 18: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

18 July 7, 2004

by f . To derive this estimate we find that value of f at which the derivative,with respect to f(z), equals 0 for each z ∈ A.

∂` (g|d)∂f(z)

=∑k∈B

∑x∈A

∂f(z)[dk(x) log gk(x)− gk(x)]

=∑k∈B

∑x∈A

∂gk(x)[dk(x) log gk(x)− gk(x)]

∂gk(x)∂f(z)

=∑k∈B

∑x∈A

[dk(x)gk(x)

− 1]

∂gk(x)∂f(z)

and∂gk

∂f(z)=

∂f(z)

∑y∈A

f(y)T(y)sk = T(z)sk

Therefore,∂` (g|d)∂f(z)

=∑k∈B

∑x∈A

[dk(x)gk(x)

− 1]

T(z)sk(x) (3.7)

In simple optimization problems, the gradient is a function of the variableover which we optimize. In the present case, the gradient is a function of gk,which in turn is a function of f via (3.4). Therefore, given a set of K PSFestimates sk0≤k<K , we seek a vector f , which, through (3.4), minimizes themagnitude of (3.7) for each z ∈ A. That is, we must find the vector f whichminimizes ∣∣∣∣∣∑

k∈B

∑x∈A

[dk(x)gk(x)

− 1]

T(z)sk(x)

∣∣∣∣∣ , z ∈ A

Gradient with respect to sk. In order to maximize the likelihood function withrespect to the PSF we could proceed by estimating sk directly, but it is oftenuseful to write sk as a function of phase-aberration, and then estimate theform of this function.

3.1.3 PSF phase parameterization

There are unknown phase errors across the aperture that distort the image.We represent this distortion with a phase-aberration function, Φk, which mayvary with k; in other words, the phase-aberration may be different for eachframe.

In deriving the MLE of sk using the second approach mentioned above,we first expand the phase-aberration function in a suitable basis. (Often aZernike basis is used.) If we denote the set of basis functions by ϕj0≤j<J ,then the phase-aberration for the kth frame is expanded as follows:

Φk =J−1∑j=0

αkjϕj

Page 19: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 19

We usually take the basis functions ϕj as given and not depending on k. Onthe other hand, the coefficients αkj must be estimated for each k ∈ B.

The incoherent PSF for the kth frame is

sk = |hk|2 = hkh∗k (3.8)

where hk is the coherent PSF, which is the inverse Fourier transform of thecoherent transfer function, or pupil function.

Continue to assume A = Z/N × Z/N , and let τa denote the character ofA defined by

τa(x) = ei2π xtaN = ei2π

x1a1N ei2π

x2a2N , x ∈ A

Then the coherent OTF can be written as the transform of the coherent PSFas follows:

hk = Fhk =∑x∈A

hk(x)τ∗x (3.9)

which, at any u ∈ A∗, evaluates to

hk(u) =∑x∈A

hk(x) e−i2π xtuN

The pupil function is complex-valued, and we take as its complex argumentthe phase-aberration function. That is,

hk(u) = |hk(u)| eiΦk(u) = |hk(u)| eiP

j αkjϕj(u), u ∈ A (3.10)

From (3.8)–(3.10), it is clear that sk can be written as a function of αkj .

sk = hkh∗k

=1|A|

∑u∈A∗

hk(u)τu1|A|

∑v∈A∗

h∗k(v)τ∗v

=1|A|2

∑u∈A∗

∑v∈A∗

hk(u)h∗k(v)τuτ−v (3.11)

Since h∗k(u) = |hk(u)| e−iϕk(u), we have

sk =1|A|2

∑u∈A∗

∑v∈A∗

|hk(u)||hk(v)| eiP

j αkj [ϕj(u)−ϕj(v)]τu−v (3.12)

Now that we have written sk as a function of αkj0≤j<J , we can maximizethe likelihood function (3.6) with respect to αkj . For each index pair (a, b),we have

∂` (g|d)∂αab

=∑k∈B

∑x∈A

[dk(x)gk(x)

− 1]

∂gk(x)∂αab

Page 20: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

20 July 7, 2004

and∂gk

∂αab=∑y∈A

∂gk

∂sk(y)∂sk(y)∂αab

(3.13)

By the definition of gk and commutativity of convolution,

gk = C(f)sk = C(sk)f =∑x∈A

sk(x)T(x)f

Therefore,∂gk

∂sk(y)= T(y)f (3.14)

It remains only to compute the partial of sk with respect αab. From (3.12),

∂sk

∂αab=

1|A|2

∑u∈A∗

∑v∈A∗

|hk(u)||hk(v)| i[ϕb(u)−ϕb(v)]δ(k−a) eiP

j αkj [ϕj(u)−ϕj(v)]τu−v

Over the domain (u, v) ∈ A∗ ×A∗, define

Hab(u, v) =1|A|2

|ha(u)||ha(v)| [ϕb(u)− ϕb(v)] eiP

j αaj [ϕj(u)−ϕj(v)]+i π2

Then,

∂sa

∂αab=∑

u∈A∗

∑v∈A∗

Hab(u, v)τu−v, and∂sk

∂αab= 0, k 6= a (3.15)

Inserting (3.14) and (3.15) into (3.13) yields

∂ga

∂αab=∑y∈A

∑u∈A∗

∑v∈A∗

Hab(u, v)τu−v(y)T(y)f

=∑

u∈A∗

∑v∈A∗

Hab(u, v)C(τu−v)f

=∑

u∈A∗

∑v∈A∗

Hab(u, v)f(u− v)τu−v

wheref(u) =

∑y∈A

f(y)τu(y)

denotes the Fourier coefficient of f at u.We can now formally express the gradient of ` with respect to αab as

follows:

∂` (g|d)∂αab

=∑x∈A

∑u∈A∗

∑v∈A∗

[da(x)ga(x)

− 1]Hab(u, v)f(u− v)τu−v(x) (3.16)

Page 21: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 21

If we let ra = da

ga− 1, another Fourier coefficient in expression (3.16) becomes

apparent.ra(u− v) =

∑x∈A

ra(x)τu−v(x)

from which

∂` (g|d)∂αab

=∑

u∈A∗

∑v∈A∗

Hab(u, v)f(u− v)ra(u− v) (3.17)

Equation (3.17) provides a formal expression of the gradient. However,we require an expression which better facilitates algorithmic implementation.Note that

sa = hah∗a = Re[ha]2 + Im[ha]2

is real valued. Therefore, we can write (3.12) as

sk(x) = Re[sk(x)]

=1|A|2

∑u,v

|hk(u)||hk(v)| cos

∑j

αkj [ϕj(u)− ϕj(v)] + 2π(u− v)t x

N

from which, we have

∂sa(y)∂αab

=1|A|2

∑u,v

|ha(u)||ha(v)| [ϕb(u)− ϕb(v)]

× sin

∑j

αaj [ϕj(u)− ϕj(v)] + 2π(u− v)t y

N

Substituting for

∑u,v Hab(u, v)τu−v in (3.16) yields

∂` (g|d)∂αab

=1|A|2

∑x,y

∑u,v

[da(x)ga(x)

− 1]

t(x)f(x− y)|ha(u)||ha(v)| [ϕb(u)− ϕb(v)]

× sin

∑j

αaj [ϕj(u)− ϕj(v)] + 2π(u− v)t y

N

This suggests a way to find a parameter set which yields a zero gradient. Thatis, find those values of αajj such that the following is satisfied:

J−1∑j=0

αaj [ϕj(u)− ϕj(v)] + 2π(u− v)t y

N= nπ, n ∈ Z (3.18)

Page 22: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

22 July 7, 2004

DEBUG:Paul states (email, 2002.11.26) “...(3.18) must be satisfied for all u, vand y since that term in your equation is embedded inside a couple ofsummations. Probably doesn’t have a solution.”

3.1.4 The spatially varying case.

The foregoing assumes that the point spread function is spatially invariant. Wenow state the problem for the more general spatially varying case. Focusingat first on a single image frame, we need not involve the frame index k untillater. As before, identify A = Z/N × Z/N with its character group by thestandard presentation.

A = Z/N × Z/N = (Z/N × Z/N)∗ = A∗

For y ∈ A a spatial coordinate in the object plane. the noiseless image isthe superposition,

g =∑y∈A

f(y)sy (3.19)

where g, f, sy ∈ LA. Note that in this model our point spread function varieswith y.

Assume sy = hyh∗y, where

hy = F−1hy =1|A|

∑u∈A∗

hy(u)τu (3.20)

At any point x = (x1, x2) in the focal plane, (3.20) evaluates to

hy(x1, x2) =1

N2

N−1∑u1=0

N−1∑u1=0

hy(u) ei2πx1u1

N ei2πx2u2

N .

Thus far, the equations defining the PSFs and transfer function are iden-tical to the invariant case, with the frame index k replaced by a spatial coor-dinate in the object frame. However, a basic difference arises in the functionalform of the coherent transfer function.

hy(u) = |hy(u)| eiΨy(u) (3.21)

where

Ψy(u) =L−1∑`=0

Φ`(β`y + (1− β`)u) (3.22)

Page 23: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 23

Fig. 3.1. Phase screen at elevation d` and example coordinate location, p, at whichto evaluate phase-aberration functions for two points, x and y.

The index ` delimits a discrete set of points d` along the elevation axis whichrepresent phase screen elevations. The total phase-aberration for the pair u, ytakes contributions from phase-aberration functions Φ` at various altitudes,evaluated at a point along the line connecting u and y. In Fig. 3.1 is anabstract depiction of a phase screen, with just enough detail to write pointson a phase screen as a functions of points in the object and pupil planes. Moreprecisely, given the object elevation dy, the phase screen elevation d`, and twopoints in the pupil and object planes, resp. x, y, we wish compute the locationof the point p on the phase screen through which the ray

xy connecting x and

y passes. If θ(x, y) is the angle between the elevation axis5 and the rayxy,

then

tan(θ(x, y)) =|p− x|

d`=|y − x|

dy

Some basic algebra leads to the desired equation for the location6 of p.

p =d`

dyy +

(1− d`

dy

)x (3.23)

For ease of notation, when p is an argument of the phase-aberration functionΦ`, we denote the ratio of elevations by β` = d`/dy, as in (3.22).

Denote a set of basis functions by ϕj0≤j<J . We represent the phase-aberration function for the phase screen at elevation d` by the following ex-pansion:

Φ` =J−1∑j=0

α`jϕj

5 In The elevation axis is represented by the horizontal axis in Fig. 3.1.6 By “location” of p we really mean the distance |p| from 0 (on the vertical axis of

Fig. 3.1) to the point p.

Page 24: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

24 July 7, 2004

The basis functions ϕj usually do not depend on `, whereas the coefficientsα`j must be estimated for each ` ∈ 0, 1, . . . , L− 1.

DEBUG:However, Paul states (email, 2002.11.26) that basis functions sort of de-pend on `, “since each layer’s size (radial extent) is scaled. A given func-tion is typically magnified as the distance from the aperture is increased.You might be able to fold this issue ‘under the rug’ with some notationor substitutions.”

Finally, we have

Ψy(u) =L−1∑`=0

J−1∑j=0

α`jϕj(β`y + (1− β`)u) (3.24)

Remark 3.1. During implementation, we should be able to exploit periodicitiesof the basis functions. This would facilitate, among other things, estimationof the coefficients α`j in (3.24). In particular, suppose ϕj is B-periodic; thatis,

ϕj(x) = ϕj(x + y), y ∈ B (3.25)

If the order of B divides L, say M = L/|B|, then

L−1∑`=0

α`jϕj(β`y+(1−β`)u) =M−1∑m=0

∑y∈B

α(m+y)j

ϕj(βmy+(1−βm)u) (3.26)

We see that, without the benefit of periodicity, there are L coefficients tocompute. Exploiting B-periodicity, we compute only M = L/|B| coefficients.

N.B. the form of (3.26) is probably wrong due to the form of the operandof ϕj . To correct for this, we need to represent the periodicities of ϕj alongthe line connecting y and u, rather than in the simple form given by (3.25).

Periodic PSF. Since s is ultimately a function of the basis ϕj, it should bepossible to exploit periodicities in ϕj when working with s. This would greatlyfacilitate algorithmic implementation of the space-variant model.

Suppose the group A has order N . Let B be a subgroup of A with orderL = |B|, where L = N/M . Later we address the problem of writing sy asa periodic function. For now, assume sy is B-periodic in y; that is, for eachx ∈ A,

sa(x) = sa+b(x), a ∈ A, b ∈ B

Then, by (3.19),

Page 25: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 25

g =∑y∈A

f(y)sy

=∑

a∈A/B

∑b∈B

f(a + b)sa+b

=∑

a∈A/B

(∑b∈B

f(a + b)

)sa

This reduces the order of spatial variance to |A/B| = M .In order to find periodicities in sy, consider its functional form. By 3.11,

sy =1|A|2

∑u∈A∗

∑v∈A∗

hy(u)h∗y(v)τu−v

Thus, we must locate periodicities in

hy(u) = |hy(u)| eiΨy(u)

where

Ψy(u) =L−1∑`=0

Φ`(β`y + (1− β`)u)

3.2 Group Algebra Approach

3.2.1 Noisy image in CG

This physical model underlying the algorithms of this section is based on the-ory found in the book [Goo85], the paper [BRS01] and the notes [Bil01]. How-ever, the present exposition is set in the more general mathematical frameworkdescribed in Section A.3.

Let f denote the object of interest and define

g = ideal (noiseless) image, d = detected image,

h = coherent OTF, s = incoherent OTF,

and assume f, g, d ∈ CG, and h, s ∈ CG∗; that is, the domain of h is G∗

– the character group of G – which can be interpreted as frequency space.The incoherent optical transfer function (OTF), s ∈ CG∗, is defined as theautocorrelation of the coherent optical transfer function. We denote this au-tocorrelation by h ? h and define it as follows:

s(τ) = (h ? h)(τ) =∑

λ∈G∗

h(λ)h(τ−1λ), τ ∈ G∗.

Page 26: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

26 July 7, 2004

As an element of the group algebra CG∗, s is the formal sum

s =∑

τ∈G∗

s(τ)τ

To derive the coefficients s(τ) : τ ∈ G∗ we make use of the following iden-tities:

τ(x) = τ−1(x) = τ(x−1), (τ−1λ)(x) = τ−1(x)λ(x),

h(λ) =∑x∈G

h(x)λ(x−1). (3.27)

Equation (3.27) implies that h is the Fourier transform of a function, h, whichwe call the coherent point spread function (PSF). The coefficient of s at τ ∈ G∗

is now readily derived as follows:

s(τ) = (h ? h)(τ) =∑

λ∈G∗

h(λ)h(τ−1λ)

=∑

λ∈G∗

∑y∈G

h(y)λ(y−1)

(∑x∈G

h(x)(τ−1λ)(x−1)

)

=∑x∈G

∑y∈G

h(y)h(x) τ−1(x−1)∑

λ∈G∗

λ(y−1)λ(x−1)

=∑x∈G

∑y∈G

h(y)h(x)τ(x−1)∑

λ∈G∗

λ(y−1x)

= |G|∑x∈G

h(x)h(x)τ(x−1) (3.28)

The last equality holds by the following character formula:

∑λ∈G∗

λ(y−1x) =

|G|, x = y,

0, x 6= y.

In the final summation of (3.28) appears the squared modulus of the coherentPSF. We denote this function by s(x) = h(x)h(x) and call it the incoherentpoint spread function.

3.2.2 Ideal image in CG

Assume the object of interest is f ∈ CG, where G = HKc is as definedabove. Then,

f =∑a∈G

f(a)a =∑j,k

∑m

f(xjykkmc )xjykkm

c

Page 27: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 27

Take the function g ∈ CH to be some imperfect representation of f . Forexample, a blurry image is formed by mixing the object with a point spreadfunction s ∈ CH.

g = fs =

∑j,k

∑m

f(xjykkmc )xjykkm

c

s (3.29)

This is a superposition in which the function s is left-multiplied by elementsof G. Recall that left-multiplication of s ∈ CH generalizes translation ofs ∈ L(H). Thus, the product fs in CG generalizes the convolution f ∗ s inL(G). The following further elucidates.

Consider a single left-multiply of s ∈ CH by hk ∈ HKc.

L(hk)s = xjykkmc s

=∑p,q

s(xpyq)(xjykkmc )xpyq

=∑p,q

s((xjykkmc )−1xpyq)xpyq

So, by (3.29), the function g ∈ CH is defined by the values

g(xpyq) =∑j,k

∑m

f(xjykkmc )s((xjykkm

c )−1xpyq) (3.30)

The important thing to take from (3.30) is that left-multiplying by an elementof a nonabelian group is a linear transformation that is quite general andincludes standard translation as a special case. In particular, when the operandis an element of the abelian group H, left-multiply is a simple shift operator;e.g.,

L(xjyk)s(xpyq) = s((xjyk)−1xpyq) = s(xp−jyq−k) (3.31)

where, as usual, arithmetic in exponents is performed modulo |H|. Moreover,a superposition of such left-multiplies of CH is equivalent to the usual convo-lution of L(H),

(C(f)s)(x) =∑y∈H

f(y)ys(x) =∑y∈H

f(y)s(y−1x)

However, when the operand is an element of the action group Kc, a muchricher class of transformations is available, and this class can be constructedto include rotations, scale changes, and other revealing transformations. Thisis an important and powerful consideration since it allows us to apply ourexisting fast algorithms for the standard convolution to operations that aremore general than simple spatial or temporal shifts.

Page 28: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

4

Software

4.1 Imaging Through Turbulence

4.1.1 Phase screens and point spread functions

The function phasescr generates phase screens with Kolmogorov statistics.Three important parameters of the optical systems use are1

r0 = coherence diameterd = aperture diameterob = obscuration

The coherence diameter is often called the Fried seeing parameter. It is ameasure of the extent over which the atmosphere is coherent. Essentially,if the horizontal distance between two points is less than r0, then index ofrefraction measurements at those points will be statistically correlated. Oftenr0 ranges from 5 to 20 cm. Figure 4.1 depicts a typical optical system andexplains the meaning of the obscuration parameter ob.

Suppose an image frame consists of an N x N array of pixel values, andgiven are K image frames. The function phasescr generates phase screens withKolmogorov statistics and has the following interface:

[phi, z] = phasescr(dr0, N, K, o)

where phi stores the phase component of the OTF and z stores the Zernikecoefficients. The first argument, dr0 = d/r0, is the ratio of aperture diameterto coherence diameter. The last argument, o = ob/d, is called the obscurationratio.

The function zern2psf takes the Zernike coefficients z returned by phasescrand generates an incoherent PSF, which we denote by s.

s = zern2psf(z, N, o);

1 See, e.g., Goodman [Goo85], Sect. 8.6.3 for definitions of these variables.

Page 29: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 ../noweb/textron.nw 29

detector

primarymirror

secondarymirror

Fig. 4.1. Light reflects off the secondary mirror, and passes through a hole in pri-mary mirror. The obscuration parameter ob specifies either the size of this hole orthe size of the shadow cast upon the primary mirror by the secondary mirror.

We can view the PSF with showimg(s). The incoherent OTF is S = fft2(s).If the object of interest is denoted by f, and its Fourier transform by

F = fft2(f), then the noiseless image g has spectral domain representationG = F.*S. That is,

G = fft2(f) .* fft2(s);

and

g = real(fftshift(ifft2(G)));

4.1.2 An example using phasescr and zern2psf

The following example demonstrates the procedure, described above, for gen-erating a phase screen, a PSF, and an OTF, as well as the resulting turbulence-degraded image of the object.

ex screen psf.m – demonstrate use of phasescr and zern2psf.〈define global variables 29〉≡ (30a)

r0 = .1; % coherence diameter

d = 1.53; % aperture diameter

N = 256; % leading dimension of image array

K = 16; % number of frames

ob = .287; % obscuration

Page 30: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

30 ../noweb/textron.nw July 7, 2004

〈ex screen psf.m 30a〉≡〈add header line 43c〉clear;

〈define global variables 29〉〈generate phase screens 30b〉〈generate psf 30c〉showimg(s); % View the result.

〈compute otf 30d〉〈invoke convolution theorem 30e〉

〈generate phase screens 30b〉≡ (30a)[phi, z] = phasescr(d/r0, N, K, ob/d); % phase screens (Kolmogorov stats)

Uses phasescr 31c.

〈generate psf 30c〉≡ (30a)s = zern2psf(z, N, ob/d); % incoherent PSF

Uses zern2psf 33a.

〈compute otf 30d〉≡ (30a)S = fft2(s); % incoherent OTF

By the convolution theorem, the noiseless image g has spectral domainrepresentation G = F.*S, where F is the Fourier transform of the object f.〈invoke convolution theorem 30e〉≡ (30a)

F = fft2(f); % f is the object of interest

G = F.*S; % noiseless image in spectral domain

g = real(fftshift(ifft2(G))); % noiseless image in spatial domain

4.1.3 Subroutines for phase screens and point spread functions

This section contains annotated listings of Matlab code that implements thefunctions described above, as well as the subroutines called by those functions.pab is the original author of most, if not all, of the code in this section. wjdused noweave2 to generate the annotated versions shown here.

phasescr.m – generate phase screens with Kolmogorov statistics.

The main function definition begins at 〈phasescr.m 31c〉.〈add phasescr description 30f〉≡ (31c)

% Generate phase screens with Kolmogorov statistics

%

2 noweave is part of the noweb literate programming system (see [Ram94],http://www.literateprogramming.com/). The noweb system facilitates detailedsource code documentation and automates the simultaneous production of an an-notated (LATEX) version of the program and a clean, terse (source code) versionof the program.

Page 31: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 ../noweb/textron.nw 31

〈add phasescr io comments 31a〉≡ (31c)% Input

% dr0: aperture-to-coherence ratio (d/r0)

% N: image array is N x N

% K: (default: 1) number of frames

% o: (default: 0) obscuration-to-aperture ratio (ob/d)

% t: (default: 1) indicates whether to remove tilt

% Output

% phi: phase component of the OTF

% z: Zernike coefficients

〈add phasescr usage comments 31b〉≡ (31c)% Usage

% [phi, z] = phasescr(dr0, N, K, o);

%

% Special case: Gemini telescope

% aperture=1.57m, obscuration=0.287m; for r0=10cm,

% dr0 = 1.57/.1 = 15.7

% o = 0.287/1.57 = 0.1828

%

% Special case: AEOS telescope

% aperture=3.63m, obscuration=0.253m; for r0=10cm,

% dr0 = 3.63/.1 = 36.3

% o = 0.253/3.63 = 0.06969.

%

Uses phasescr 31c.

〈phasescr.m 31c〉≡function [ps,zc] = phasescr(dr0, N, K, obscure, tiltYN)

〈add phasescr description 30f〉〈add phasescr io comments 31a〉〈add phasescr usage comments 31b〉〈add header line 43c〉〈check phasescr arguments 31d〉J = dr0nz(dr0, 1); % # terms required for err < 1 rad^2

c = cov_kolmogorov(dr0, J); % correlation of Zerns under Kolmogorov

〈generate random numbers with given correlation 32a〉〈remove tilt if requested 32b〉ps = zern2ps(zc, N, obscure);% return phase screen

Defines:phasescr, used in chunks 30b, 31b, and 40e.

Uses cov kolmogorov 37b, dr0nz 38b, and zern2ps 35b.

〈check phasescr arguments 31d〉≡ (31c)if(nargin < 5) tiltYN = 1; end;

if(nargin < 4) obscure = 0; end;

if(nargin < 3) K = 1; end;

Page 32: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

32 ../noweb/textron.nw July 7, 2004

〈generate random numbers with given correlation 32a〉≡ (31c)% generate random numbers w/ given correlation

zc = zeros(1,K);

if(J > 1) R = chol(c); % c = R’R

zc = [ zc ; R’ * randn(J-1,K) ];

end;

〈remove tilt if requested 32b〉≡ (31c)if(~tiltYN) zc(1:min([J 3]),:) = 0; end; % remove tilt if requested

zern2psf.m – compute PSF from Zernike coefficients.

The main function definition begins at 〈zern2psf.m 33a〉.〈add zern2psf description 32c〉≡ (33a)

% Compute point spread function (PSF) from Zernike coefficients

%

〈add zern2psf io comments 32d〉≡ (33a)% Inputs

% zc: Zernike coefficients (J x K), K is # of psfs

% N: Psf array size

% obscure: Ratio of centrally obscured to total aperture

% zern: Zernike basis functions, see

% Output

% psf: the centered psf

%

〈add zern2psf usage comments 32e〉≡ (33a)% Usage

% psf = zern2psf(zc, N[, obscure])

% psf = zern2psf(zc, zern)

% Note

% If the first form is used, the Zernike basis is calculated. If

% many calls are to be made, the basis can be precomputed.

%

% Returns the psf centered in the array.

%

Uses zern2psf 33a.

〈add zern2psf see also comments 32f〉≡ (33a)% See also: zernbasis, zern2ps, aperzern

%

Uses zern2ps 35b and zernbasis 36a.

Page 33: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 ../noweb/textron.nw 33

〈zern2psf.m 33a〉≡function psf = zern2psf(zc,N,obscure)

〈add zern2psf description 32c〉〈add zern2psf io comments 32d〉〈add zern2psf usage comments 32e〉〈add zern2psf see also comments 32f〉〈add header line 43c〉if(nargin < 3) obscure = 0; end;

[J,K] = size(zc);

〈see if zernike basis was passed in for speed 33b〉for(i=K:-1:1) % reverse order to prealloc array

S = makeotf(zc(:,i), zern);

psf(:,:,i) = real(fftshift(ifft2(S))); % center in array

end;

Defines:zern2psf, used in chunks 30c, 32e, and 35a.

Uses makeotf 34a.

〈see if zernike basis was passed in for speed 33b〉≡ (33a)if(length(N)==1) % must compute zernike coefficients

zern = zernbasis(J, N/2, N/2, obscure);

else

zern = N;

end;

Uses zernbasis 36a.

makeotf.m – generate incoherent optical transfer function (OTF).

The main function definition begins at 〈makeotf.m 34a〉.〈add makeotf description 33c〉≡ (34a)

% Generates the incoherent transfer function (OTF) with given

% aperture and atmospheric distortions.

%

% Input

% zCoef Zernike polynomial coeffs (weights) for atmospheric distortion

% zern 3d array of Zernike polynomial terms

% Outputs

% S - incoherent transfer function

% H - coherent transfer function

% See also: zernpoly

%

Uses zernpoly 36d.

Page 34: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

34 ../noweb/textron.nw July 7, 2004

〈makeotf.m 34a〉≡function [S, H] = makeotf(zCoef, zern)

〈add makeotf description 33c〉〈add header line 43c〉〈get aperture support aperSup and dimension aperDim 34b〉〈get phase screen H 34c〉〈scale H and reshape to match object array shape 34d〉% Incoherent psf is mag^2 of coherent psf

h = ifft2(H);

S = fft2(h.*conj(h));

Defines:makeotf, used in chunk 33a.

〈get aperture support aperSup and dimension aperDim 34b〉≡ (34a)aperSup = squeeze(zern(1,:,:)); % piston term shows aperture mask

aperDim = size(aperSup,1);

〈get phase screen H 34c〉≡ (34a)H = zern2ps(zCoef, zern) .* aperSup; % get the phase screen

Uses zern2ps 35b.

Scale H so that, after 1/N2 of ifft and a convolution, we have S(1) == 1.〈scale H and reshape to match object array shape 34d〉≡ (34a)

% Scale H such that the embedded H after 1/N^2 of ifft and

% convolution give S(1) == 1, or unit volume to imaging convolution

H = H * (aperDim*2 / sqrt(sum(aperSup(:))) );

H = embed2(H); % embed in object sized array

zern2ps.m – compute phase screen for given Zernike coefficients.

The main function definition begins at 〈zern2ps.m 35b〉.〈add zern2ps description 34e〉≡ (35b)

% Compute phase screen for given Zernike coefficients

〈add zern2ps io comments 34f〉≡ (35b)% Inputs:

% zc - Zernike coefficients (J x K), K is # of psfs

% N - Phase screen array size

% obscure - Ratio of centrally obscured to total aperture

% zern - Zernike basis functions

〈add zern2ps usage comments 34g〉≡ (35b)% ps = zern2ps(zc, N[, obscure])

% ps = zern2ps(zc, zern)

% Note:

% If the first form is used, the Zernike basis is calculated. If

% many calls are to be made, the basis can be precomputed.

%

% Returns the phase screen centered in the array.

%

Uses zern2ps 35b.

Page 35: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 ../noweb/textron.nw 35

〈add zern2ps see also 35a〉≡ (35b)% See also: zernbasis, zern2psf

%

Uses zern2psf 33a and zernbasis 36a.

〈zern2ps.m 35b〉≡function ps = zern2ps(zc, N, obscure)

〈add zern2ps description 34e〉〈add zern2ps io comments 34f〉〈add zern2ps usage comments 34g〉〈add zern2ps see also 35a〉〈add header line 43c〉if(nargin < 3) obscure = 0; end;

[J,K] = size(zc);

if(J*K == length(zc) & K > 1) zc = zc(:); end; % fix row vector

〈get zernike basis zern 35c〉N = size(zern, 2); % resync size of array

% construct aperature phase screen

〈get phase ang 35d〉ps = exp(j*ang);

Defines:zern2ps, used in chunks 31c, 32f, and 34.

〈get zernike basis zern 35c〉≡ (35b)% see if zernike basis passed in for speed

if(length(N)==1) % must compute zernike coefficients

zern = zernbasis(J, N, N, obscure);

else

zern = N;

end;

Uses zernbasis 36a.

〈get phase ang 35d〉≡ (35b)zc = zc’; % K x J (row of coefs)

ang = zc * reshape(zern, J, N*N); % KxN^2

ang = reshape(ang’, N, N, K); % phasor, NxNxK

Page 36: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

36 ../noweb/textron.nw July 7, 2004

zernbasis.m – generate 3-d matrix of nz Zernike polynomial series terms cor-responding to the r,c coordinates of the nr x nc matrix.〈zernbasis.m 36a〉≡

function z = zernbasis(nz, nr, nc, ob)

〈add zernbasis description 36c〉〈add header line 43c〉if(nargin < 4) ob = 0; end;

〈construct 2d map aper of aperture pixels 36b〉naper = sum(aper(:));

t0 = clock;

z = zeros(nz, nr, nc);

mask = ones(nz, 1);

for(col = 1:nc)

rows = find(aper(:,col));

for(i = 1:length(rows))

row = rows(i);

z(:, row, col) = zernpoly(r(row, col), t(row, col), mask);

end;

pause(0); % avoid lockup

end;

Defines:zernbasis, used in chunks 32f, 33b, and 35.

Uses zernpoly 36d.

〈construct 2d map aper of aperture pixels 36b〉≡ (36a)dim = max(nc, nr);

y = linspace0(-nc/dim,nc/dim,nc); % use dim to enforce square pixels

x = linspace0(-nr/dim,nr/dim,nr);

[X,Y] = meshgrid(x,y);

r = sqrt(X.^2 + Y.^2);

t = atan2(Y, X);

aper = (r <= 1 & r >= ob); % 2d map of aperature pixels

〈add zernbasis description 36c〉≡ (36a)% Generate 3D matrix of ’nz’ Zernike polynomial series terms

% corresponding to the r,c coordinates of the [nr by nc] matrix.

% Obscuration ratio ob (< 1).

zernpoly.m – generate Zernike polynomial expansion for optical aberration.〈zernpoly.m 36d〉≡

function z = zernpoly(r, t, mask)

〈add zernpoly description 37a〉〈add header line 43c〉% Should be run from mex file, die if not

error(’Zernpoly: MEX file not created’);

Defines:zernpoly, used in chunks 33c and 36a.

Page 37: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 ../noweb/textron.nw 37

〈add zernpoly description 37a〉≡ (36d)% Generate the Zernike polynomial expansion for optical aberration.

%

% The Zernike polynomial series terms are returned for the given

% polar coordinates (r,t), where 0 <= r <= 1, 0 <= t < 2pi.

% ’mask’ specifies which terms to calculate.

% Returns length(mask) terms in z.

%

cov kolmogorov.m – compute covariance of Zernike coefficients under Kol-mogorov turbulence from order 2 to J.〈cov kolmogorov.m 37b〉≡

function c = cov_kolmogorov(dr0, J)

〈add cov kolmogorov description 37e〉〈add header line 43c〉〈determine number of modes 37c〉〈compute correlation of Zernike coefficients 37d〉

Defines:cov kolmogorov, used in chunk 31c.

The function zern mn returns the number of modes required for J Zerniketerms.〈determine number of modes 37c〉≡ (37b)

[m, n] = zern_mn(J);

Uses zern mn 39a.

Correlations of Zernike coefficients under the assumed Kolmogorov turbu-lence model is computed according to equation (3.158) in Roggeman andWelsh [RW96].〈compute correlation of Zernike coefficients 37d〉≡ (37b)

% Correlation of Zernike coefficients under Kolmogorov

% (Roggemann/Welsh eq 3.158)

for(i=2:J) % ignore 1,1 term, matrix not pos. def.

for(j=2:i)

c(j-1,i-1) = 0.0072*dr0^(5/3) * (-1)^((n(i)+n(j)-2*m(i))/2) * ...

sqrt((n(i)+1)*(n(j)+1)) * pi^(8/3) * (m(i)==m(j)) * ...

gamma(14/3) * gamma((n(i)+n(j)-5/3)/2) / ...

gamma((n(i)-n(j)+17/3)/2) / gamma((n(j)-n(i)+17/3)/2) / ...

gamma((n(i)+n(j)+23/3)/2) * iseven(i-j);

end;

end;

〈add cov kolmogorov description 37e〉≡ (37b)% Compute covariance of Zernike coefficients under Kolmogorov turbulence

% from order 2 to J. Only the upper triangle is valid.

Page 38: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

38 ../noweb/textron.nw July 7, 2004

dr0nz.m – return corresponding d/r0 or # zernike terms.

The main function definition begins at 〈dr0nz.m 38b〉.〈dr0nz description 38a〉≡ (38b)

% dr0nz - Return corresponding d/r0 or # zernike terms

% Input

% x - Either d/r0 ratio or # zernike terms

% dir - specify whether x is d/r0 or # zernike terms 1 | -1

% Output

% y - Value corresponding to specified X

%

Uses dr0nz 38b.

〈dr0nz.m 38b〉≡function y = dr0nz(x, dir)

〈dr0nz description 38a〉〈add header line 43c〉if(nargin < 2) dir = 1; end;

% Roggeman/Welsh eq 3.160: e2 ~ 0.2944N^(-sqrt(3)/2)(d/r0)^(5/3)

if(dir > 0)

dr0 = x;

〈find number of terms required 38c〉else

〈Return d/r0 ratio corresponding to number of terms required 38d〉end;

Defines:dr0nz, used in chunks 31c and 38a.

〈find number of terms required 38c〉≡ (38b)% figure out # terms required for err < 1 rad^2

% lookup table for lower orders (not much different, but why not)

errfact = [1.0299 .582 .134 .111 .088 .0648 .0587 .0525 ...

.0463 .0401 .0377 .0352 .0328 .0304 .0279 .0267 ...

.0255 .0243 .0232 .022 .0208];

w = dr0 > 10.21; % last entry on table gives dr0=10.21

y(w) = ceil( (0.2944*dr0(w).^(5/3)).^(2/sqrt(3)) );

y(~w) = findnear(dr0(~w), 1./errfact.^(3/5));

〈Return d/r0 ratio corresponding to number of terms required 38d〉≡ (38b)% Return d/r0 ratio corresponding to # of terms for err<1

% Use of table (for N <= 21) not implemented

N = x;

y = (N^(sqrt(3)/2) / 0.2944)^(3/5);

Page 39: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 ../noweb/textron.nw 39

zern mn.m – return number of modes required for given number of Zernikes.

〈zern mn.m 39a〉≡function [mm,nn] = zern_mn(J)

〈add zern mn description 39b〉〈add header line 43c〉[mm, nn] = deal(zeros(1,J));

maxn = ceil(-1.5 + 0.5*sqrt(1+8*J));

j = 1;

for(n=0:maxn)

for(m=0:n)

if(iseven(n-m))

nn(j:j+1) = n;

mm(j:j+1) = m;

j = j + 1 + (m~=0); % += 1 if m==0, else += 2

end;

end;

end;

Defines:zern mn, used in chunk 37c.

〈add zern mn description 39b〉≡ (39a)% Return number of modes required for specified number of Zernike terms

%

% J - maximum number of terms

% [mm,nn] - required zernike orders for each term (1:J)

%

4.1.4 An anisoplanatism example

The next example demonstrates how the phasescr and conv2 ps subroutinescan be used to simulate the effects of anisoplanatic turbulence.

ex aniso conv.m – simulate anisoplanatic turbulence with phasescr and conv2 ps.

The main function definition begins at chunk 40a.〈ex aniso conv variables 39c〉≡ (40a)

z = [0 .25 .5]; % phase screen positions

N = 512; % image array is NxN

K = length(z); % number of frames

Page 40: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

40 ../noweb/textron.nw July 7, 2004

〈ex aniso conv.m 40a〉≡〈add header line 43c〉clear;

〈ex aniso conv variables 39c〉〈define object o as array of point masses 40f〉〈display gaussblur version of o (never defined)〉〈aperture-to-coherence ratio dr0=5 (never defined)〉〈aperture-to-coherence ratio dr0=16 (never defined)〉〈aperture-to-coherence ratio dr0=26 (never defined)〉〈clean up and save 41a〉

〈aperture-to-coherence ratio 5 40b〉≡dr0 = 5; % aperture-to-coherence ratio (d/r0)

〈get phase screens and perform superposition 40e〉figure(2); clf; showimg(a, ’d/r0 = 5’);

a5 = a; clear a;

〈aperture-to-coherence ratio 16 40c〉≡dr0 = 16; % new aperture-to-coherence ratio (d/r0)

〈get phase screens and perform superposition 40e〉figure(3); clf; showimg(a, ’d/r0 = 16’);

a16 = a; clear a;

〈aperture-to-coherence ratio 26 40d〉≡dr0 = 26; % new aperture-to-coherence ratio (d/r0)

〈get phase screens and perform superposition 40e〉figure(4); clf; showimg(a, ’d/r0 = 26’);

a26 = a; clear a;

〈get phase screens and perform superposition 40e〉≡ (40)for(k=1:5),

ps = phasescr(dr0, N, K);

for(i=1:K),

pss(i).z = z(i);

pss(i).ps = ps(:,:,i);

end;

a(:,:,k) = conv2_ps(o, pss, 1);

end;

Uses conv2 ps 41d and phasescr 31c.

〈define object o as array of point masses 40f〉≡ (40a)% Define object as array of point masses

o = zeros(N); % object array

n = 50:50:500; % locations of point masses 50, 100, ..., 500

o(n,n) = 1;

o = cntrimg(o, ’centroid’); % put image centroid at center of array

〈display gaussblur version of object 40g〉≡figure(1); clf; show(gaussblur(o,1))

Page 41: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 ../noweb/textron.nw 41

〈clean up and save 41a〉≡ (40a)whos

save a5 a16 a26 o;

conv2 ps.m – compute spatially variant convolution.

The main function definition begins at chunk 41d.〈add conv2 ps description 41b〉≡ (41d)

% Compute spatially variant convolution

%

〈add conv2 ps io 41c〉≡ (41d)% Input

% obj: object array

% phase_struct: struct with the following members:

% z: distance from aperture

% ps: phase screen (assumed properly sized to array boundary)

% zobj: distance to object

% Returns the psf centered in the array.

〈conv2 ps.m 41d〉≡function img = conv2_ps(obj, ps_struct, zobj)

〈add conv2 ps description 41b〉〈add conv2 ps io 41c〉〈add header line 43c〉N = size(obj,1); N2 = N/2;

Nscreen = length(ps_struct);

u = 1:N; % coordinates at aperture

aper = circ2d(N/2,N); % assume nyquist sampling

img = zeros(N);

t0 = clock;

for(ix = 1:N)

for(iy = 1:N)

if(obj(iy, ix) == 0) continue; end; % no contribution anyway

〈perform the superposition 41e〉end;

statelap(’update’,ix, N, t0);

end;

statelap(’close’);

Defines:conv2 ps, used in chunk 40e.

Uses circ2d 43a.

Chunk 41e carries out the superpostion g(x) =∑

y f(y)s(x, y).〈perform the superposition 41e〉≡ (41d)

〈accumulate phase of all phase screens in H 42a〉〈compute psf s at this field position 42c〉img = img + obj(iy,ix)*s; % g(x) = sum_x’( f(x’) s(x, x’) )

Page 42: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

42 ../noweb/textron.nw July 7, 2004

〈accumulate phase of all phase screens in H 42a〉≡ (41e)H = ones(N); % accumulator

for(l = 1:Nscreen)

zl = ps_struct(l).z;

〈compute coordinates (vx,vy) of rays in lth screen 42b〉psi = ps_struct(l).ps(vy, vx); % interp phases to give same sized array

H = H .* psi; % accumulate phases

end;

〈compute coordinates (vx,vy) of rays in lth screen 42b〉≡ (42a)zrat = zl / zobj; % ratio of lth screen to obj dist

vx = u*(1-zrat) + ix*zrat; % coordinates of rays in lth screen

vy = u*(1-zrat) + iy*zrat;

vx = round(vx); vy = round(vy);

The psf s is computed for each field position. (Initially, H was multipliedby exp(-j*2*pi/N*(xp x*rampx + xp y*rampy)); Now the resulting psf isshifted instead.)〈compute psf s at this field position 42c〉≡ (41e)

% compute PSF for this field position

H = H.*aper; % nyquist sampling

h = ifft2(H, N, N);

s = abs2(h);

s = shift(s, iy-1, ix-1);

circ2d.m – creates a 2D array with ones inside of circle and zeros outside.

The main function definition begins at 〈circ2d.m 43a〉.〈add circ2d description 42d〉≡ (43a)

% Creates a 2D array with ones inside of circle and zeros outside.

%

% Value is unity for sqrt(x^2+y^2) <= .5

%

〈add circ2d io comments 42e〉≡ (43a)% Input

% x,y: coordinates axes. Assume y=x if not specified.

% If x and y scalar, return centered function, diameter=x, size=[y, y].

% Output

% z: 2d array containing circle

% n: number of pixels inside the circle.

%

〈add circ2d usage comments 42f〉≡ (43a)% Usage

% circ2d(5,128) % is 128x128 with diameter~=5

Uses circ2d 43a.

Page 43: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 ../noweb/textron.nw 43

〈circ2d.m 43a〉≡function [z,n]=circ2d(x, y);

〈add circ2d description 42d〉〈add circ2d io comments 42e〉〈add circ2d usage comments 42f〉〈add header line 43c〉〈construct meshgrid [X,Y] 43b〉R = sq(X)+sq(Y);

w = R <= .25; % .25 == .5^2

z(w) = 1;

n = sum(w(:));

Defines:circ2d, used in chunks 41–43.

〈construct meshgrid [X,Y] 43b〉≡ (43a)if(nargin < 2) y = x; end; % allow for easy symmetry

if(length(x) == 1 & length(y) == 1) % specify width and number for centered array

x = linspace0(-y/2,y/2,y) / x; % circ2d(5,128) is 128x128 with diameter~=5

y = x;

end;

[X,Y] = meshgrid(x, y);

z=zeros(size(X));

Uses circ2d 43a.

4.1.5 Miscellaneous code

〈add header line 43c〉≡ (30a 31c 33–41 43a)

% $Header$

Page 44: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

44 ../noweb/textron.nw July 7, 2004

4.2 Nonabelian Group DSP Subroutines3

The names of the Matlab functions which perform semidirect product trans-forms follow a general pattern. For example, n 2 indicates that the abeliannormal subgroup is Cn(x), while that of nn 2 is Cn(x)×Cn(y). In both cases,the 2 in the function name indicates that the action group has order 2, sayC2(kc). However, the action of C2(kc) – that is, the form of the matrix c – issometimes specified by an argument to the function. The following sectionsdescribe some of these Matlab functions in detail.

4.2.1 Matlab Fourier transform

Many of our programs involve various incarnations of the Fourier transform,and even when the resulting Fourier analysis is of a non-classical nature,the algorithms often rely on standard FFT routines, such as those built intoMatlab. Therefore, we must know exactly what it is that the routines fft andifft compute.

For length N input vector f .

1. The DFT (computed with fft) is a length N vector F , with elements

F (k) =N∑

n=1

f(n)v−(k−1)(n−1), 1 ≤ k ≤ N, v = ei2π 1N .

2. The inverse DFT (computed by ifft) is given by

f(n) =1N

N∑k=1

F (k)v(k−1)(n−1), 1 ≤ n ≤ N, v = ei2π 1N .

4.2.2 Signal dimensions

Many of our routines for 1-dimensional signals use some common global vari-ables associated with signal length. These are listed in the table below.

src code symbol math symbol descriptionn2 2N signal lengthn N signal half-lengthm N/2 signal quarter-length

Some functions use the variable nn=(0:n-1) to represent the index set0, 1, . . . , N − 1. Furthermore, though the means of specifying signal lengthcan vary, once n2 is found, the code for signal half-length and quarter-lengthshould certainly be the same for all 1-d functions.

3 Some of the Matlab software for nonabelian group dsp was generously providedby Myoung An.

Page 45: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 ../noweb/gfip.nw 45

〈signal dimension variables 45a〉≡ (51c 52f 56e 61d)n=n2/2; % $N$ : signal half-length

m=n/2; % $N/2$ : signal quarter-length

nn=(0:n-1); % $\0,1,\ldots,N-1\$

4.2.3 Action groups and re-indexing

The argument gp accepted by some of the functions specifies the “action”group to which the cyclic group C2 = 1, k corresponds. The possible groupactions are as follows:

gp = 1 : x 7→ x−1

gp = 2 : xk 7→ x(m+1)k

gp = 3 : xk 7→ x(m−1)k

The first action group (gp=1) maps x to x−1, the second (gp=2) maps xk

to x(m+1)k, and the third (gp=3) maps xk to x(m−1)k. The following chunkis inserted into some of our functions; it defines variables which are used toperform the appropriate re-indexing.〈Group transforms 45b〉≡ (50a 51d)

if (gp==1) % x --> x^-1

d1 = 2;

c1 = [1 m+1];

end

if (gp==2) % x^k --> x^(m+1)k

d1 = m;

c1 = 2*(1:m)-1;

end

if (gp==3) % x^k --> x^(m-1)k

d1 = 2;

c1 = [1 m-1];

end

Alternatively, we’ve modified some functions to call a subroutine which per-forms the re-indexing. This subroutine, called indexset, is described below.

Page 46: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

46 ../noweb/gfip.nw July 7, 2004

indexset.m – return index set, ordered for a given group.

This function returns a vector rn of indices ordered with respect to the givenaction group gp. The main function definition begins at 〈indexset.m 46d〉.

Suppose n=N is the signal half-length. The first action group (gp=1) mapsx to x−1, so indexset(n,1) returns

rn = n− (0 : n− 1) mod n+ 1= 0, n− 1, n− 2, . . . , 2, 1+ 1.

〈construct group reindexing sets 46a〉≡ (46d) 46b .if (gp==1) % $x \mapsto x^-1$

rn=mod(n-nn,n)+1;

end

The second action group maps xk to x( n2+1)k, so indexset(n,2) returns

rn =

0,n

2+ 1, 2,

n

2+ 3, 4, . . . , n− 2,

n

2− 1

+ 1.

〈construct group reindexing sets 46a〉+≡ (46d) / 46a 46c .if (gp==2) % $x^k \mapsto x^(m+1)k$

rn=mod((m+1)*nn,n)+1;

end

The third action group maps xk to x( n2−1)k, so indexset(n,3) returns

rn =

0,n

2− 1, n− 2,

n

2− 3, n− 4, . . . , 2,

n

2+ 1

+ 1.

〈construct group reindexing sets 46a〉+≡ (46d) / 46bif (gp==3) % x^k \mapsto x^(m-1)k

rn=mod((m-1)*nn,n)+1;

end

Note the symmetry between index orderings for gp=2 and gp=3.〈indexset.m 46d〉≡

function rn = indexset(n,gp)

〈indexset purpose 46e〉nn=(0:n-1); % $\0,1,\ldots,N-1\$

〈construct group reindexing sets 46a〉Defines:

indexset, used in chunks 54 and 60c.

〈indexset purpose 46e〉≡ (46d)% return a vector of indices ordered with respect to action group gp.

%

Page 47: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 ../noweb/gfip.nw 47

4.2.4 Abelian group translations

abel tr.m – abelian (cyclic) translation.

The main function definition begins at chunk 47c.〈abel tr purpose 47a〉≡ (47d)

% Abelian (cyclic) translation

%

〈abel tr io 47b〉≡ (47d)% INPUT

% x 2-D array

% t1 integer by which to translate x in first dimension

% t2 integer by which to translate x in second dimension

%

% OUTPUT

% y 2-D array containing translated version of x

%

〈abel tr.m 47c〉≡function y=abel_tr(x,t1,t2)

〈abel tr description 47d〉[m2,n2]=size(x);

for k1=1:m2

kk1=mod(k1-1-t1,m2)+1;

for k2=1:n2

kk2=mod(k2-1-t2,n2)+1;

y(k1,k2)=x(kk1,kk2);

end

end

〈abel tr description 47d〉≡ (47c)〈abel tr purpose 47a〉〈abel tr io 47b〉

cyclicshift.m – cyclic shift a 1-dimensional signal.

Given a signal x, a set of indices nn over which x is defined, and an integern0, the cyclicshift program performs a circular translation of the signal by n0units. By circular, we mean that the end (beginning) of the signal is wrappedaround to the beginning (end) for positive (negative) n0. The main functiondefinition begins at 〈cyclicshift.m 48b〉.〈cyclicshift purpose 47e〉≡ (48c)

% y(nn) = x(nn-n0) where nn-n0 is mod length(nn)

%

Page 48: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

48 ../noweb/gfip.nw July 7, 2004

〈cyclicshift io 48a〉≡ (48c)% INPUT

% x = vector (signal) with length(m) elements

% nn = index set

% n0 = amount by which to right-shift x

%

% OUTPUT

% y = x (because it’s the index set that’s changed)

% kk = index set

%

% USAGE

% [y,kk] = sigshift(x,nn,n0)

%

〈cyclicshift.m 48b〉≡function [y,kk] = cyclicshift(x, nn, n0)

〈cyclicshift description 48c〉N = length(nn);

if length(x) ~= N,

error(’size of input does not match index lengths’);

end;

kk = mod(nn+n0,N);

y = x;

〈cyclicshift description 48c〉≡ (48b)〈cyclicshift purpose 47e〉〈cyclicshift io 48a〉

cyclicshift2.m – cyclic shift a 2-dimensional signal.

Given array x, two sets of indices mm and nn over which x is defined, and twointegers m0 and n0, the cyclicshift2 program performs a circular translationof the array by m0 units in the vertical direction and by n0 units in thehorizontal direction. By circular, we mean that the end (beginning) of thearray is wrapped around to the beginning (end) for positive (negative) m0 andn0. The main function definition begins at 〈cyclicshift2.m 49b〉.〈cyclicshift2 purpose 48d〉≡ (49c)

% y(mm,nn) = x(mm-m0,nn-n0) where (mm-m0,nn-n0) is modulo

% (length(mm),length(nn))

%

Page 49: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 ../noweb/gfip.nw 49

〈cyclicshift2 io 49a〉≡ (49c)% INPUT

% x = 2d array of size length(mm)xlength(nn)

% mm = index set for leading (vertical) dimension of x

% nn = index set for trailing (horizontal) dimension of x

% m0 = amount by which to down-shift x

% n0 = amount by which to right-shift x

%

% OUTPUT

% y = x (because it’s the index set that’s changed)

% jj = index set for leading (vertical) dimension of y

% kk = index set for trailing (horizontal) dimension of y

%

% USAGE

% [y, jj, kk] = cyclicshift2(x,mm,nn,m0,n0)

%

Uses cyclicshift2 49b.

〈cyclicshift2.m 49b〉≡function [y,jj,kk] = cyclicshift2(x,mm,nn,m0,n0)

〈cyclicshift2 description 49c〉N1 = length(mm); % vertical dimension length

N2 = length(nn); % horizontal dimension length

Nx = size(x);

if Nx(1) ~= N1 | Nx(2) ~= N2,

error(’size of input does not match index lengths’);

end;

jj = mod(mm+m0,N1); kk = mod(nn+n0,N2); % index set for y

y = x;

Defines:cyclicshift2, used in chunk 49a.

〈cyclicshift2 description 49c〉≡ (49b)〈cyclicshift2 purpose 48d〉〈cyclicshift2 io 49a〉

4.2.5 Semidirect product transforms

These functions should be used for signals indexed with an abelian by abeliansemidirect product group of the form CNC2, where N is even and C2 =1, k. We assume that signals are indexed by such a group according to thefollowing ordering scheme:

CN (x)C2(k) = 1, x, . . . , xN−11, k= 1, x, . . . , xN−1, k, xk, . . . , xN−1k

Page 50: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

50 ../noweb/gfip.nw July 7, 2004

n 2.m – semidirect product transform.

For input signal f, n 2(f, gp) computes expansion coefficients with respectto the semidirect product group CNC2.〈n 2.m 50a〉≡

function [y1,y2]=n_2(f,gp)

〈n 2 description 50c〉〈n 2 variables 51c〉y1=zeros(n,1); y2=zeros(n,1);

bf(1:n)=sqrt(n)*ifft(f(1:n,1));

bf(1+n:n2)=sqrt(n)*ifft(f(1+n:n2,1));

〈Group transforms 45b〉for k=1:d1

t1=rt2*(bf(c1(k))+bf(c1(k)+n));

t2=rt2*(bf(c1(k))-bf(c1(k)+n));

bf(c1(k))=t1;

bf(c1(k)+n)=t2;

y1(c1(k))=t1;

y1(c1(k)+n)=t2;

end

y2=bf-y1;

Defines:n 2, used in chunks 51a, 52e, and 55b.

〈n 2 purpose 50b〉≡ (50c)% Semidirect product transform.

%

〈n 2 description 50c〉≡ (50a)〈n 2 purpose 50b〉〈n 2 io 50d〉〈n 2 remarks 51a〉〈n 2 see also 51b〉

〈n 2 io 50d〉≡ (50c)% INPUT

% f & signal for which to compute expansion coefs wrt $C_N \sdp C_2$.

% gp & (int) indicates action group to use for $C_2$.

%

% OUTPUT

% y1 & expansion coefs of signal wrt semidirect product group

% $C_N \sdp C_2$.

% y2 & ???

%

Page 51: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 ../noweb/gfip.nw 51

〈n 2 remarks 51a〉≡ (50c)% REMARKS

% o For input signal f, n_2(f,gp) computes expansion coefficients

% wrt semidirect product group $C_N \sdp C_2$ where input argument

% gp specifies the action group $C_2$.

〈sdp usage note 1 53〉%

Uses n 2 50a.

〈n 2 see also 51b〉≡ (50c)% See also: in_2

%

Uses in 2 51d.

Recall, signal length, half-length, and quarter-length are n2 = 2N , n = N ,and m = N/2, respectively.〈n 2 variables 51c〉≡ (50a)

n2 = length(f); % $2N$ : signal length

〈signal dimension variables 45a〉rt2=1/sqrt(2);

in 2.m – inverse semidirect product transform.

For a signal f, given are expansion coefficients with respect to semidirectproduct group CNC2. Given these expansion coefficients, y, the functionin 2(y, gp) computes the inverse semidirect product transform f.〈in 2.m 51d〉≡

function f=in_2(y,gp)

〈in 2 description 52a〉〈in 2 variables 52f〉〈Group transforms 45b〉for k=1:d1

t1=y(c1(k))+y(c1(k)+n);

t2=y(c1(k))-y(c1(k)+n);

y(c1(k))=rt2*t1;

y(c1(k)+n)=rt2*t2;

end

f(1:n)=(1/sqrt(n))*fft(y(1:n));

f(1+n:n2)=(1/sqrt(n))*fft(y(1+n:n2));

Defines:in 2, used in chunks 51b and 54.

〈in 2 purpose 51e〉≡ (52a)% Inverse semidirect product transform.

%

Page 52: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

52 ../noweb/gfip.nw July 7, 2004

〈in 2 description 52a〉≡ (51d)〈in 2 purpose 51e〉〈in 2 io 52b〉〈in 2 remarks 52c〉〈in 2 see also 52e〉〈in 2 history 52d〉

〈in 2 io 52b〉≡ (52a)% INPUT

% y & expansion coefficients of a signal wrt semidirect product group

% $C_N \sdp C_2$.

% gp & (int) indicates action group to use for $C_2$.

%

% OUTPUT

% f & signal for which y holds expansion coefficients wrt $C_N \sdp C_2$.

%

〈in 2 remarks 52c〉≡ (52a)% REMARKS

% o Computes the inverse transform coefficients of a 1D signal

% with respect to the semidirect product group $C_N \sdp C_2$.

% In other words, output f is the signal for which input y is

% the set of expansion coefficients wrt the sdp group.

〈sdp usage note 1 53〉

〈in 2 history 52d〉≡ (52a)%

% HISTORY

% 2001.04.02 & Myoung An & original program

% 2004.03.23 & William DeMeo & comments, minor mods/additions

〈in 2 see also 52e〉≡ (52a)% See also: n_2

%

Uses n 2 50a.

Recall, signal length, half-length, and quarter-length are n2 = 2N , n = N ,and m = N/2, respectively.〈in 2 variables 52f〉≡ (51d)

n2 = length(y); % $2N$ : signal length

〈signal dimension variables 45a〉rt2=1/sqrt(2);

Page 53: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 ../noweb/gfip.nw 53

〈sdp usage note 1 53〉≡ (51a 52c 61b)% o Use this for abelian by abelian semidirect product groups

% of the form $C_N \sdp C_2$, where N is even and $C_2 = \1, k\$.

% o Signals are indexed by the elements of $C_N \sdp C_2$,

% ordered as follows:

% \[

% C_N \sdp C_2 = \1,x,\ldots,x^N-1, k,xk,\ldots,x^N-1k\

% \]

% o The argument gp specifies the "action" group to which

% $C_2 = \1, k\$ corresponds. Possible group actions are:

% gp=1: x --> x^-1

% gp=2: x^k --> x^(m+1)k

% gp=3: x^k --> x^(m-1)k

%

Page 54: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

54 ../noweb/gfip.nw July 7, 2004

4.2.6 Generalized convolutions

The generalized convolution of v by u is a linear combination of translatedversions of v; more precisely, if G represents the indexing set (or group overwhich the signals are defined), then convolution of v by u is the superposition

C(u)v =∑

x

u(x)T(x)v, (4.1)

where T(x) represents translation (possibly noncommutative); in particular,for each y ∈ G,

(C(u)v)(y) =∑x∈G

u(x)T(x)v(y) =∑x∈G

u(x)v(x−1y) (4.2)

where x−1y represents multiplication as defined on the group G. It is thedefinition of this group multiply which changes as gp, the third argumentto cn 2, changes; that is, gp specifies the group with respect to which theconvolution is to be performed.

cn 2.m – semidirect product convolution of 1-dimensional signals.

For two 1-dimensional input signals, u and v, cn 2(u,v,gp) computes thegeneralized convolution of v by u. The output of cn 2 is a 1-dimensionalsignal which stores the resulting convolution product.

This function should be used for abelian by abelian semidirect productgroups of the form CNC2, where N is even and C2 = 1, k. The inputsignals u and v are indexed by the elements of CNC2, ordered as follows:

CN1, k = 1, x, . . . , xN−1, k, xk, . . . , xN−1k

Thus, such signals have length 2N , which the cn 2 function denotes n2.〈cn 2.m 54〉≡

function y=cn_2(u,v,gp)

〈cn 2 description 55g〉〈cn 2 check arguments 55d〉〈cn 2 variables 56e〉rn = indexset(n,gp);

〈re-order u by rn 55a〉〈sdp transform input signals 55b〉〈multiply sdp transforms 55c〉y=sqrt(n)*in_2(c,gp);

Defines:cn 2, used in chunks 56c and 59b.

Uses in 2 51d and indexset 46d.

Page 55: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 ../noweb/gfip.nw 55

The second half of input signal u is reordered according to index set map-ping rn.〈re-order u by rn 55a〉≡ (54)

uu(1:n,1)=u(1:n,1);

for k=1:n

uu(k+n,1)=u(rn(k)+n,1);

end

Semidirect product coefficients are computed with the n 2 function.〈sdp transform input signals 55b〉≡ (54)

[u1,u2]=n_2(uu(:,1),gp);

[v1,v2]=n_2(v(:,1),gp);

Uses n 2 50a.

〈multiply sdp transforms 55c〉≡ (54)c(1:n) = u2(1:n).*v2(1:n) + u2(1+n:n2).*v2(1+n:n2) + sqrt(2)*u1(1:n).*v1(1:n);

c(1+n:n2) = u2(1+n:n2).*v2(1:n) + u2(1:n).*v2(1+n:n2) + sqrt(2)*u1(1+n:n2).*v1(1+n:n2);

In the check arguments section, we set the default group, gp=1, in casenone was selected.〈cn 2 check arguments 55d〉≡ (54) 55e .

if nargin < 3,

gp=1;

end;

We also check that the input signals are the same length. Future versionsmight lift this restriction and accommodate signals of different length.〈cn 2 check arguments 55d〉+≡ (54) / 55d

if length(u) ~= length(v),

error(’input signals must be of the same length’);

end;

% TODO % accommodate signals of different length

〈cn 2 purpose 55f〉≡ (55g)% Semidirect product convolution of 1-dimensional signals.

%

〈cn 2 description 55g〉≡ (54)〈cn 2 purpose 55f〉〈cn 2 io 56a〉〈cn 2 remarks 56b〉〈cn 2 see also 56d〉〈cn 2 history 56c〉

Page 56: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

56 ../noweb/gfip.nw July 7, 2004

〈cn 2 io 56a〉≡ (55g)% INPUT

% u & 1D array (signal)

% v & 1D array (signal) of same length as u

% gp & (int) indicates group wrtw convolution is performed & default: 1

%

% OUTPUT

% y & 1D array (signal) stores resulting convolution product.

%

〈cn 2 remarks 56b〉≡ (55g)% REMARKS

% o The key operation which distinguishes the convolution

% \[

% C(u)v = sum_x u(x) T(x) v

% \]

% over different groups is the translation $T(x) v$.

%

〈cn 2 history 56c〉≡ (55g)% HISTORY

% 2001.04.03 & Myoung An & wrote original program, named the

% & file cn_2, but named the function cnv2.

% 2004.03.29 & William DeMeo & added documentation, changed name

% & of function from cnv2 to cn_2.

% 2004.04.29 & William DeMeo & minor mods

%

Uses cn 2 54.

〈cn 2 see also 56d〉≡ (55g)% See also: conv2sdp

%

Uses conv2sdp 57a.

Recall, signal length, half-length, and quarter-length are n2 = 2N , n = N ,and m = N/2, respectively.〈cn 2 variables 56e〉≡ (54)

n2=size(u,1); % signal length $2N$

〈signal dimension variables 45a〉

Page 57: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 ../noweb/gfip.nw 57

conv2sdp.m – 2-dimensional generalized convolution.

“Ordinary” convolution is specified with third argument gp=1. Generalizedconvolutions have gp=2, gp=3, or gp=4, and for these we assume the N x N2arrays, f and g, are both shaped like this:

------- N2 -------| |N NxN NxN N| | N+N = N2------- N2 -------

That is, f has 2 sub-arrays, each of size N x N; same goes for g.〈conv2sdp.m 57a〉≡

function y=conv2sdp(f,g,gp)

〈conv2sdp description 58d〉[N,N2]=size(f);

if (N2~=2*N),

error("unexpected matrix dimensions; HELP CONV2SDP for more info");

end;

if (gp==1), % "ordinary" convolution

〈handle ordinary convolution case 57b〉else, % "generalized" convolution

〈handle generalized convolution cases 57c〉end;

Defines:conv2sdp, used in chunk 56d.

〈handle ordinary convolution case 57b〉≡ (57a)ftf=fft2(f);

ftg=fft2(g);

ftfg=ftf.*ftg;

y=ifft2(ftfg);

〈handle generalized convolution cases 57c〉≡ (57a)ftf1=fft2(f(1:N,1:N));

ftf2=fft2(f(1:N,1+N:N2));

ftg1=fft2(g(1:N,1:N));

ftg2=fft2(g(1:N,1+N:N2));

〈case gp=2 57d〉〈case gp=3 58a〉〈case gp=4 58b〉

〈case gp=2 57d〉≡ (57c)if (gp==2) %(zx=xz, zy=yz)

y=[ifft2(ftf1.*ftg1+ftf2.*ftg2) ifft2(ftf1.*ftg2+ftf2.*ftg1)];

end

Page 58: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

58 ../noweb/gfip.nw July 7, 2004

〈case gp=3 58a〉≡ (57c)if (gp==3) %(z x^k y^l = x^-k y^-l z)

ff1(1,1)=ftf2(1,1)*ftg2(1,1);

ff2(1,1)=ftf2(1,1)*ftg1(1,1);

for k2=2:N

rk2=N-k2+2;

ff1(1,k2)=ftf2(1,k2)*ftg2(1,rk2);

ff2(1,k2)=ftf2(1,k2)*ftg1(1,rk2);

end

for k1=2:N

rk1=N-k1+2;

ff1(k1,1)=ftf2(k1,1)*ftg2(rk1,1);

ff2(k1,1)=ftf2(k1,1)*ftg1(rk1,1);

for k2=2:N

rk2=N-k2+2;

ff1(k1,k2)=ftf2(k1,k2)*ftg2(rk1,rk2);

ff2(k1,k2)=ftf2(k1,k2)*ftg1(rk1,rk2);

end

end

y=[ifft2(ftf1.*ftg1+ff1) ifft2(ftf1.*ftg2+ff2)];

end

〈case gp=4 58b〉≡ (57c)if (gp==4) %(z x^k y^l = x^l y^k z)

y=[ifft2(ftf1.*ftg1+ftf2.*ftg2.’) ifft2(ftf1.*ftg2+ftf2.*ftg1.’)];

end

〈conv2sdp purpose 58c〉≡ (58d)% 2-D generalized convolution.

%

〈conv2sdp description 58d〉≡ (57a)〈conv2sdp purpose 58c〉〈conv2sdp io 58e〉〈conv2sdp remarks 59a〉〈conv2sdp see also 59b〉〈conv2sdp history 59c〉

〈conv2sdp io 58e〉≡ (58d)% INPUT

% f & NxN2 array

% g & NxN2 array

% gp & (int) indicates which group to use.

%

% OUTPUT

% y & NxN2 array storing 2-D convolution product C(f)g.

%

Page 59: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 ../noweb/gfip.nw 59

〈conv2sdp remarks 59a〉≡ (58d)% REMARKS

% o This is a modified version of Myoung An’s Matlab program CNNV2.

%

% o "Ordinary" convolution is specified with third argument gp==1.

% Generalized convolutions have gp==2, or 3, or 4, and for these

% we assume the N x N2 arrays, f and g, are both shaped like this:

%

% ------- N2 -------

% | |

% N NxN NxN N

% | |

% ------- N2 -------

%

% where N2 = 2*N; that is, f has 2 sub-arrays, each of size NxN;

% same goes for g.

%

〈conv2sdp see also 59b〉≡ (58d)% See also: cn_2

%

Uses cn 2 54.

〈conv2sdp history 59c〉≡ (58d)% HISTORY

% 2002.07.05 & Myoung An & original program (named cnnv2)

% 2004.03.23 & William DeMeo & docs, comments, minor mods/additions

%

% REFERENCES

% [1] Myoung An and Richard Tolimieri, "Group Filters and Image

% Processing." Psypher Press, 2003.

cnvmt.m – construct convolution matrix.〈cnvmt.m 59d〉≡

function y=cnvmt(x)

n=size(x,1);

fd=fft(x(1:n,1));

〈convolve with exponentials 60a〉% inverse fft and transpose

tt=ifft(tt).’; % ifft(tt) = ifft(fft(x) .* fft(F))

% forward fft and transpose

y=fft(tt).’;

Defines:cnvmt, used in chunk 60c.

Page 60: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

60 ../noweb/gfip.nw July 7, 2004

Basically, the first block point-wise multiplies fft(x) and the n x n iden-tity matrix In; i.e.,

tt = fft(x) .∗In = X . ∗ F

where F is the n x n Fourier matrix, F = ifft(eye(n)). Thus tt must bethe convolution of x with exponentials.〈convolve with exponentials 60a〉≡ (59d)

for k=1:n

tt(k,k)=fd(k,1); % essentially a pt-wise multiply

end; % of fft(x) with eye(n)

% tt = X .* I = fft(x) .* fft(F),

% where F is the N x N Fourier matrix

% F = ifft(eye(n))

% So, tt = convolution of x with exponentials

gn 2.m –

For input signal u, gn 2(u, gp) computes something -- DEBUG -- with re-spect to the semidirect product group CNC2. The main function definitionbegins at chunk 60c.〈gn 2 io 60b〉≡ (60d)

%

% INPUT

% u the signal for which to

% gp integer specifying which action group to use.

%

% OUTPUT

% y

%

〈gn 2.m 60c〉≡function y=gn_2(u,gp)

〈gn 2 description 60d〉〈gn 2 variables 61d〉rn = indexset(n,gp);

u1=cnvmt(u(1:n,1));

u2=cnvmt(u(1+n:n2,1));

for k2=1:n

for k1=1:n

ur2(k1,k2)=u2(rn(k1),rn(k2));

end

end

y=[u1 ur2;ur2 u1];

Uses cnvmt 59d and indexset 46d.

〈gn 2 description 60d〉≡ (60c)〈gn 2 purpose 61a〉〈gn 2 io 60b〉〈gn 2 remarks 61b〉〈gn 2 history 61c〉

Page 61: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 ../noweb/gfip.nw 61

〈gn 2 purpose 61a〉≡ (60d)%

〈gn 2 remarks 61b〉≡ (60d)% REMARKS

〈sdp usage note 1 53〉%

〈gn 2 history 61c〉≡ (60d)%

% HISTORY

% 2001.04.02 & Myoung An & original program

% 2004.03.23 & William DeMeo & documentation, minor mods/additions

%

Recall, signal length, half-length, and quarter-length are n2 = 2N , n = N ,and m = N/2, respectively.〈gn 2 variables 61d〉≡ (60c)

n2=size(u,1);

〈signal dimension variables 45a〉

4.2.7 Digital lines

fline.m – line of slope a/b through point (c,d).

The main function definition begins at 〈fline.m 61g〉.There is a simple method for constructing an N ×N array representation

of the line L(a, b)+(c, d); that is, the line of slope a/b and passing through thepoint (c,d). (See An and Tolimieri [AT03], Section 10.4, for more details.)First, assuming the N×N array represents a plane in which the line is defined,locate the coordinates of points through which the line passes.〈locate fline coordinates 61e〉≡ (61g)

ff=zeros(N);

yy= mod(c+(0:N-1)*a,N)+1;

xx= mod(d+(0:N-1)*b,N)+1;

An element of the array will be 1 if it represents a point through whichthe line passes; otherwise, it will be 0.〈construct fline 61f〉≡ (61g)

for n=1:N,

ff(yy(n),xx(n))=1;

end;

〈fline.m 61g〉≡function ff=fline(N, a, b, c, d, DISPLAY)

〈fline description 62d〉〈fline check arguments 62a〉〈locate fline coordinates 61e〉〈construct fline 61f〉〈optionally display fline array 62b〉

Page 62: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

62 ../noweb/gfip.nw July 7, 2004

All of the arguments have default values.〈fline check arguments 62a〉≡ (61g)

if nargin < 1, N=64; end;

if nargin < 2, a=1; end;

if nargin < 3, b=1; end;

if nargin < 4, c=0; end;

if nargin < 5, d=0; end;

if nargin < 6, DISPLAY=0; end;

〈optionally display fline array 62b〉≡ (61g)if DISPLAY,

imagesc(ff);

end;

〈fline purpose 62c〉≡ (62d)% Line of slope a/b through point (c,d).

%

〈fline description 62d〉≡ (61g)〈fline purpose 62c〉〈fline io 62e〉

〈fline io 62e〉≡ (62d)% Returns NxN array representing line of slope a/b,

% passing through the point (c,d).

%

% INPUT

% N & (int) leading dimension of output array

% a & (int) rise (but n.b., in Matlab you "rise" down)

% b & (int) run

% c & (int) 1st coord of pt through which line passes

% d & (int) 2nd coord of pt through which line passes

%

% OUTPUT

% ff & scene array

%

Page 63: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

A

Mathematical Supplement

A.1 Exponential families

Definition A.1 (Exponential family). (Schervish [Sch95], p. 102) A para-metric family with parameter space P and density fX|Θ(x|θ) with respect toa measure ν on (X,B) is called an exponential family if

fX|Θ(x|θ) = c(θ)h(x) exp

[K−1∑k=0

πk(θ)tk(x)

](A.1)

for some measurable functions πk0≤k<K , tk0≤k<K , and some integer K.

Since fX|Θ in Def. A.1 is a probability density, the function c(θ) can bewritten as

c(θ) =

∫X

h(x) exp

[K−1∑k=0

πk(θ)tk(x)

]dν(x)

−1

so that dependence on θ is through the vector π(θ) = (π0(θ), . . . , πK−1(θ)) ∈RK .

Example A.2 (Gaussian). Suppose Xn∞n=0 are i.i.d. normal random vari-ables with mean µ and variance σ2; let θ = (µ, σ2) and x = (x0, x1, . . . , xN−1).Then,

fX|Θ(x|θ) =(σ√

2π)−N

exp

[− 1

2σ2

N−1∑n=0

(xn − µ)2]

= (2π)−N/2σ−N exp(−Nµ2

2σ2

)exp

σ2N x− 1

2σ2

N−1∑n=0

x2n

)In this form it is clear that fX|Θ is expressed in terms of (A.1) with thefollowing definitions:

Page 64: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

64 ../noweb/gfip.nw July 7, 2004

K = 2, c(θ) = σ−N exp(−Nµ2

2σ2

), h(x) = (2π)−N/2,

π0(θ) =µ

σ2, π1(θ) = − 1

2σ2, t0(x) = N x, t1(x) =

N−1∑n=0

x2n

Example A.3 (Poisson). Suppose Xn∞n=0 are i.i.d. Poisson λ random vari-ables; let θ = λ and x = (x0, x1, . . . , xN−1). Then,

fX|Θ(x|θ) =N−1∏n=0

e−θθxn

xn!=

exp(−Nθ + log θ ·

∑N−1n=0 xn

)∏N−1

n=0 xn!

= e−Nθ

(N−1∏n=0

xn!

)−1

exp (log θ ·N x)

In this form it is clear that K = 1,

c(θ) = e−Nθ, h(x) =

(N−1∏n=0

xn!

)−1

, π0(θ) = log θ, t0(x) = N x.

A particular exponential family of distributions has a fixed K and definesthe (vector-valued) functionsions π : P → RK and t : X → RK . By composi-tion with the functions Θ : Ω → P and X : Ω → X, we arrive at the followingfunctions of Ω:

π(Θ) : Ω → RK , t(X) : Ω → RK

The inner product of the resulting vectors is a mapping from Ω to R, andthe result is the value in the exponent of (A.1). In the statistics literature thefunction π(Θ) = (π0(Θ), . . . , πK−1(Θ)) is called the natural parameter and

Π =

π ∈ RK :∫

X

h(x) exp[π(θ)tt(x)

]dν(x) < ∞

the natural parameter space. The function t(X) is a sufficient statistic – thenatural sufficient statistic – and is usually denoted T (X). We adopt this no-tation in the sequel. We make two further abuses of notation letting t denotea particular realization of t(X) and θ a particular realization of π(Θ).

Lemma A.4. (Schervish [Sch95], p. 103) If X has an exponential family dis-tribution, then so does the natural sufficient statistic T (X) and the naturalparameter space for T is the same as that for X. In particular, there exists adominating measure νT such that

fT |Θ(t|θ) =dPΘ,T

dνT(t) = c(θ) exp(θtt)

is the density of T given Θ = θ, with respect to νT .

Page 65: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 ../noweb/gfip.nw 65

Theorem A.5. (Schervish [Sch95], p. 105)Let the density of T with respect to a measure νT be c(θ) exp(θtt). If φ : T → Ris measurable and ∫

|φ(t)| exp(θtt) dνT (t) < ∞

thenf(z) =

∫φ(t) exp(ztt) dνT (t)

is an analytic function of z in the region where the real part of z is interiorto the natural parameter space, and

∂zkf(z) =

∫tkφ(t) exp(ztt) dνT (t)

Theorem A.5 allows us to calculate moments of sufficient statistics in expo-nential families by taking derivatives of the function log c(θ).

Example A.6. Let φ(t) = 1. Then,

Eθ(Tk) =∫

c(θ)tk exp(θtt) dνT (t) = c(θ)∂

∂θk

∫exp(θtt) dνT (t)

= c(θ)∂

∂θk

1c(θ)

(by Lem. A.4)

= − 1c(θ)

∂c(θ)∂θk

= − ∂

∂θklog c(θ).

MLE in exponential families. In exponential families, there is a simple methodfor finding MLEs in most cases. The logarithm of the likelihood function willbe

log L(θ) = log c(θ) + xtθ

If the MLE occurs in the interior of the parameter space, it occurs where thepartial derivatives of log L(θ) are 0; that is, where

xk = − ∂

∂θklog c(θ)

By the result of Ex. A.6, the MLE is that θ for which x = EθX.

A.2 Poisson impulse processes

In many studies of physical phenomena the number of times something occursduring a given interval of time is of primary importance. Often it is appropriateto model such counting processes as stochastic with a Poisson distribution.The counting of photon emissions is an important example.1

1 A good reference covering statistical optics, in general, and photon counts inparticular, is [Goo85].

Page 66: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

66 ../noweb/gfip.nw July 7, 2004

Definition A.7 (Poisson process). Let U(t) be a random process with sam-ple functions u(t). We call U(t) a Poisson process if

1. The probability that k events occur within the time interval (t0, t1] isgiven by

P (k; t0, t1) =

(∫ t1t0

λ(t) dt)k

k!exp

(−∫ t1

t0

λ(t) dt

)where λ(t) ≥ 0 is called the rate of the process.

2. The number of events occurring in any two non-overlapping time intervalsare statistically independent.

Example A.3 showed that a family of Poisson distributions, with parameterspace P = λk, is an exponential family of distributions.

For a given rate function λ(t), the mean and second moment of the numberof events occurring in the interval (t0, t1] is readily seen to be

EK|Λ(k|λ) =∫ t1

t0

λ(t) dt (A.2)

andEK|Λ(k2|λ) = EK|Λ(k|λ) +

[EK|Λ(k|λ)

]2,

respectively.

Definition A.8 (Doubly stochastic Poisson process). If U(t) is a Pois-son process with a rate function λ(t) that is itself a sample function of arandom process Λ(t), then U(t) is called a doubly stochastic Poisson process.

Starting from (A.2), we arrive at the unconditional mean of K by integratingwith respect to the probability measure µΛ as follows:

E (K) = EEK|Λ(k|λ) (Λ) =∫ ∫ t1

t0

λ(t) dt dµΛ(λ) =∫ t1

t0

E (Λ(t)) dt.

If we assume Λ(t) is a stationary random process, then

E (K) = E (Λ) (t1 − t0).

A.3 Harmonic Analysis on Finite Groups

This section summarizes the notations, definitions, and important facts neededbelow. The presentation style is terse since the goal of this section is to distillfrom the more general literature only those results that are most relevant toour application. The books [AT03] and [TA98] treat similar material in a morethorough and rigorous manner.

Throughout, C denotes complex numbers, G an arbitrary (nonabelian)group, and L(G) the collection of complex valued functions on G.

Page 67: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 ../noweb/gfip.nw 67

A.3.1 Cyclic groups

A group C is called a cyclic group if there exists x ∈ C such that every y ∈ Chas the form y = xn for some integer n. In this case, we call x a generator ofC. Cyclic groups are frequently constructed as special subgroups of arbitrarygroups.

Throughout the following discussion, G is an arbitrary group, not neces-sarily abelian. For x ∈ G, the set of powers of x

gpG(x) = xn : n ∈ Z (A.3)

is a cyclic subgroup of G called the group generated by x in G. When G isunderstood, we simply write gp(x).

It will be convenient to have notation for a cyclic group of order N withoutreference to a particular underlying group. Let the set of formal symbols

CN (x) = xn : 0 ≤ n < N (A.4)

denote the cyclic group of order N with generator x, and define binary com-position by

xmxn = xm+n, 0 ≤ m,n < N, (A.5)

where m + n is addition modulo N . Then CN (x) is a cyclic group of order Nhaving generator x. The identity element of CN (x) is x0 = 1, and the inverseof xn in CN (x) is xN−n.

To say that a group is abelian is to specify that the binary compositionof the group is commutative, in which case the symbol + is usually used torepresent this operation. For nonabelian groups, we write the (noncommu-tative) binary composition as multiplication. Since our work involves bothabelian and nonabelian groups, it is notationally cleaner to write the binaryoperations of all groups – whether abelian or not – as multiplications. As thefollowing discussion illustrates, groups such as Z/N with addition modulo Nhave a simple multiplicative representation.

Example A.9. LetZ/N = 0, 1, . . . , N − 1 (A.6)

and let addition modulo N be the binary composition on Z/N . This group isisomorphic to the cyclic group CN (x); i.e.,

Z/N = n : 0 ≤ n < N' xn : 0 ≤ n < N = CN (x). (A.7)

Indeed, it is by identification (A.7) that the binary composition on Z/N can bewritten as multiplication. More precisely, by uniquely identifying each elementm ∈ Z/N with an element xm ∈ CN (x), the binary composition m + n isreplaced with that of A.5.

Page 68: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

68 ../noweb/gfip.nw July 7, 2004

Example A.10. For an integer L ∈ Z/N , denote by gpN (xL) the subgroupgenerated by xL in CN (x). If L divides N , say LM = N , then

gpN (xL) = xmL : 0 ≤ m < M (A.8)

is a cyclic group of order M .

A.3.2 Group of units

Multiplication modulo N is a ring product on the group of integers Z/N . Anelement m ∈ Z/N is called a unit if there exists an n ∈ Z/N such that mn = 1.The set U(N) of all units in Z/N is a group with respect to multiplicationmodulo N , and is called the group of units.The group of units can be describedas the set of all integers 0 < m < N such that m and N are relatively prime.

Example A.11. For N = 8,

U(8) = 1, 3, 5, 7. (A.9)

A.3.3 The group algebra CG

The group algebra CG is the space of all formal sums

f =∑x∈G

f(x)x, f(x) ∈ C, (A.10)

with the following operations:

f + g =∑x∈G

(f(x) + g(x))x, f, g ∈ CG, (A.11)

αf =∑x∈G

(αf(x))x, α ∈ C, f ∈ CG, (A.12)

fg =∑x∈G

∑y∈G

f(y)g(y−1x)

x, f, g ∈ CG. (A.13)

For g ∈ CG, the mapping L(g) of CG defined by

L(g)f = gf, f ∈ CG, (A.14)

is a linear operator on the space CG called left multiplication by g.Since y ∈ G can be identified with the formal sum ey ∈ CG consisting of

a single nonzero term,

yf = L(ey)f =∑x∈G

f(y−1x)x. (A.15)

Page 69: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

July 7, 2004 ../noweb/gfip.nw 69

In relation to translation of L(G), (A.15) is the CG analog.The mapping Θ : L(G) → CG defined by

Θ(f) =∑x∈G

f(x)x, f ∈ L(G), (A.16)

is an algebra isomorphism of the convolution algebra L(G) onto the groupalgebra CG. Thus we can identify Θ(f) with f , using context to decide whetherf refers to the function in L(G) or the formal sum in CG.

An important aspect of the foregoing isomorphism is the correspondencebetween the translations of the spaces. Translation of L(G) by y ∈ G cor-responds to left multiplication of CG by y ∈ G. Convolution of L(G) byf ∈ L(G) corresponds to left multiplication of CG by f ∈ CG. We state theserelations symbolically as follows:

L(G) ' CGT(y) ↔ L(y)C(f) ↔ L(f)

0 2 4 6 80

0.2

0.4

0.6

0.8

1

f(m

)

f

0 2 4 6 80

0.2

0.4

0.6

0.8

1

f(m

−2)

x2 f

0 2 4 6 80

0.2

0.4

0.6

0.8

1

f(m

−9)

x9 f

0 2 4 6 80

0.2

0.4

0.6

0.8

1

f(m

+7)

x−7 f

Fig. A.1. An impulse f ∈ CA and a few abelian group translates, x2f, x9f, x−7f .

A.3.4 Translation-invariant subspaces

A subspace V of the space CG is called a left ideal if

uV = uf : f ∈ V ⊂ V, u ∈ G. (A.17)

A left ideal of CG corresponds to a subspace of L(G) invariant under all lefttranslations. If V is a left ideal, then, by linearity, gV ⊂ V for all g ∈ CG.The set CGg, defined by fg : f ∈ CG, is a left ideal of CG, called the left

Page 70: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

70 ../noweb/gfip.nw July 7, 2004

ideal generated by g in CG. A left ideal V of CG is called irreducible if theonly left ideals of CG contained in V are 0 and V. The sum of two distinct,irreducible left ideals is always a direct sum.

For abelian group A, the group algebra CA of signals is decomposed intoa direct sum of irreducible ideals. Since multiplication of CA by elements ofG corresponds to translation, ideals represent translation-invariant subspaces.Furthermore, in the abelian case, such translation-invariant subspaces are one-dimensional.

Similarly, for nonabelian group G, the group algebra CG is decomposedinto a direct sum of left ideals and, again, the ideals are translation-invariantsubspaces. However, some of them must now be multi-dimensional, and hereinlies the potential advantage of using nonabelian groups for indexing the data.The left translations are more general and represent a broader class of trans-formations. Therefore, projections of data into the resulting left ideals can re-veal more complicated partitions and structures as compared with the Fouriercomponents in the abelian group case.

Page 71: Group Harmonic Analysis of Turbulence-degraded Imagesmath.hawaii.edu/~williamdemeo/TRgroups.pdf · Group Harmonic Analysis of Turbulence-degraded Images anisoplanatism and generalized

References

AT03. Myoung An and Richard Tolimieri, Group filters and image processing,Psypher Press, Boston, 2003.

Bil01. Paul A. Billings, Poisson noise model, personal notes, 2001.BRS01. Paul A. Billings, Michael F. Reiley, and Bruce E. Stribling, Mitigating

turbulence-induced image blur using multiframe blind deconvolution, Proc.AMOS Technical Conference, 2001.

CK01. Gregory Chirikjian and Alexander Kyatkin, Engineering applications ofnoncommutative harmonic analysis, CRC Press, 2001.

Goo85. Joseph W. Goodman, Statistical optics, John Wiley & Sons, Inc., 1985.PTS94. Richard Paxman, Brian Thelen, and John Seldin, Phase-diversity correction

of turbulence-induced space-variant blur, Optics Letters (1994).Ram94. Norman Ramsey, Literate programming simplified, IEEE Software (1994),

97–105.RW96. Michael Roggemann and Byron Welsh, Imaging through turbulence, CRC

Press, 1996.Sch95. Mark J. Schervish, Theory of statistics, Springer Series in Statistics,

Springer-Verlag, New York, NY, 1995.TA98. Richard Tolimieri and Myoung An, Time-frequency representations,

Birkhauser, Boston, 1998.TAL97. Richard Tolimieri, Myoung An, and Chao Lu, Mathematics of multidimen-

sional fourier transform algorithms, Springer-Verlag, New York, 1997.