08/28/96

Fourier formats for mixed radix disk format.


IFORM:
            NSAM      
      odd        even
  
2D    -11        -12

3D    -21        -22


Fourier files have NSAM changed depending on NSAM of the corresponding
real file.  For odd NSAM of a real file, the Fourier file will have
record length NNNN=NSAM+1, for even NSAM of a real file, the Fourier file
will have record length NNNN=NSAM+2.  Thus, the record length of a Fourier
file, both 2D and 3D is even.

The Fourier coefficients are written in in such a way that element
(KX=0,KY=0,KZ=0) is in location (1,1,1).  

First record contains Fourier coefficients:
Location in file:          KX KY KZ
 1,1,1                 Re(  0  0  0)
 2,1,1                 Im(  0  0  0)
 3,1,1                 Re(  1  0  0)
 4,1,1                 Im(  1  0  0)
  .
  .
 NNNN-1,1,1            Re(NNNN/2  0  0)
 NNNN,1,1              Im(NNNN/2  0  0)


Record LY, LZ contains Fourier coefficients:
Location in file:          KX   KY   KZ
 1,LY,LZ               Re(  0  LY-1 LZ-1)
 2,LY,LZ               Im(  0  LY-1 LZ-1)
 3,LY,LZ               Re(  1  LY-1 LZ-1)
 4,LY,LZ               Im(  1  LY-1 LZ-1)
  .
  .
 NNNN-1,LY,LZ          Re(NNNN/2  LY-1 L-1Z)
 NNNN,LY,LZ            Im(NNNN/2  LY-1 LZ-1)

Important: if KY>NROW/2+1 the corresponding frequency
becomes LY=KY-1-NROW, if KZ>NSLICE/2+1 the corresponding frequency
becomes LZ=KZ-1-NSLICE. 


The remaining part of this document describes old Fourier formats, no
longer used in the SPIDER system.










FOURIER.DOC 1/4/89  FORMAT OF SPIDER FOURIER TRANSFORMS BASED
ON FRASER'S DISK FFT PROGRAMS.

THE TOTAL NUMBER OF RECORDS IN THE POWER-OF-TWO FOURIER
FILE (IFORM=-1) IS GIVEN BY:
     NREC=(NSAM+2)*NROW
     NREC=NREC/NSAM
     IF(MOD((NSAM+2)*NROW,NSAM).NE.0)  NREC=NREC+1
 

(THIS IS A RE-TYPED VERSION OF A DOCUMENT THAT GOT LOST. JF.)


THE FORMAT OF THE 2-D FOURIER TRANSFORM USED IN SPIDER AS STORED
ON DISK FOLLOWS THE FORMAT OF FRASER'S DISK FFT. (AN ALTERNATIVE
STORAGE FORMAT WILL SOON BE DEVELOPED WHICH FOLLOWS THE NATURAL
ARRANGEMENT OF COEFFICIENTS MORE CLOSELY.)


THE FOURIER TRANSFORM IS IN TRANSPOSED FORM, AND OCCUPIES THE
DISK SPACE OF THE IMAGE IT REPLACES USING THE SAME RECORD LENGTHS.
TWO ADDITIONAL RECORDS ARE USED, AND SPACE SET ASIDE FOR THESE
IN THE IMAGE ARE FREQUENTLY REFERRED TO AS "FOURIER OVERSPILL".
THUS THE FOURIER TRANSFORM OF A SQUARE NSAM X NROW IMAGE WITH 
NSAM=NROW OCCUPIES NSAM+2 RECORDS, EACH OF WHICH HAS THE LENGTH
OF NSAM FOUR-BYTE WORDS.

IN THE SQUARE IMAGE, A SINGLE ROW OF THE TRANSPOSED FT HAS NSAM
COMPLEX COEFFICIENTS, WHICH ARE STORED SUCCESSIVELY IN TWO
SUCCESSIVE ROWS. IF THE FOURIER TRANSFORM IS INDEXED BY F(KX,KY)
WHERE KX REFERS TO SPATIAL FREQUENCIES CORRESPONDING TO THE X-DIRECTION,
AND KY TO THOSE IN Y-DIRECTION, THEN THE ORDER OF COEFFICIENTS IS
AS FOLLOWS:

1ST RECORD:	KX=0, KY=0	KX=0, KY=1	...	KX=0, KY=NROW/2-1

2ND RECORD:	KX=0, KY=-NROW/2                ...     KX=0, KY=-1

3RD RECORD:	KX=1, KY=0	KX=1, KY=1      ...     KX=1, KY=NROW/2-1

4TH RECORD:	KX=1, KY=-NROW/2		...	KX=1, KY=-1


.
.
.

NSAM+1ST RECORD:KX=NSAM/2, KY=0                 ...	KX=NSAM/2, 
							     KY=NROW/2-1

NSAM+2ND RECORD:KX=NSAM/2, KY=-NROW/2           ...     KX=NSAM/2, KY=-1 
		

IN ORDER TO ACCESS THE FOURIER TRANSFORM ON DISK FROM A PROGRAM,
YOU MAY USE THE SUBROUTINE FFIND, WHICH GIVES THE RECORD NUMBER
AND POSITION OF THE COMPLEX COEFFICIENT IN THE BUFFER READ IN FOR
ANY COMBINATION OF KX, KY. FOR NEGATIVE KX, THE PROGRAM RETURNS
THE EQUIVALENT VALUES FOR RECORD NUMBER AND POSITION IN BUFFER
WITH A NEGATIVE PHASE FACTOR. PROGRAMS THAT USE FFIND SHOULD ALWAYS
CHECK IF THE RECORD NUMBER OF THE NEW INDEX PAIR (KX, KY) IS THE
SAME AS THE ONE READ IN BEFORE, TO AVOID UNNECESSARY IO ACCESSES.