Multiplies two Hermitian images KPG1_HMLTx
See the Notes for more details of Hermitian images and how they are multiplied.
There is a routine for processing single- and double-precision arrays; replace "
x"
in the routine name
by R or D as appropriate. The data type of the IN1, IN2, and OUT arguments must match the routine
used.
Fourier transforms supplied in Hermitian form can be thought of as being derived as follows (see the NAG manual, introduction to Chapter C06 for more information on the storage of Hermitian FFTs):
1) Take the one-dimensional FFT of each row of the original image. 2) Stack all these one-dimensional
FFTs into a pair of two-dimensional images the same size as the original image. One two-dimensional
image ("
A"
) holds the real part and the other ("
B"
) holds the imaginary part. Each row of image A
will have symmetry such that A(J,row) = A(M-J,row) (J goes from 0 to M-1), while each row of image B
will have symmetry such that B(J,row) = -B(M-J,row). 3) Take the one-dimensional FFT of each
column of image A. 4) Stack all these one-dimensional FFTs into a pair of two-dimensional
images, image AA holds the real part of each FFT, and image BA holds the imaginary part.
Each column of AA will have symmetry such that AA(column,K) = AA(column,N-K) (K
goes from 0 to N-1), each column of BA will have symmetry such that BA(column,K) =
BA(column,N-K). 5) Take the one-dimensional FFT of each column of image B. 6) Stack all these one-dimensional FFTs into a pair of two-dimensional images, image AB holds the real part of each FFT, and image BB holds the imaginary part. Each column of AB will have symmetry such that AB(column,K) = AB(column,N-K) (K goes from 0 to N), each column of BB will have symmetry such that BB(column,K) = -BB(column,N-K). 7) The resulting four images all have either positive or negative symmetry in both axes. The Hermitian FFT images supplied to this routine are made up of one quadrant from each image. The bottom-left quadrant is taken from AA, the bottom-right quadrant is taken from AB, the top-left quadrant is taken from BA and the top-right quadrant is taken from BB.
The product of two Hermitian FFTs is itself Hermitian and so can be described in a similar manner. If the first input FFT corresponds to the four images AA1, AB1, BA1 and BB1, and the second input FFT corresponds to the four images AA2, AB2, BA2, BB2, then the output is described by the four images AA, AB, BA and BB where:
AA = AA1AA2 BB1BB2 - BA1BA2 - AB1AB2 BB = AA1BB2 BB1AA2 BA1AB2 AB1BA2 BA = BA1AA2 - AB1BB2 AA1BA2 - BB1AB2 AB = -BA1BB2 AB1AA2 AA1AB2 - BB1BA1