Changeset 826 for trunk/doc/pslib/psLibSDRS.tex
- Timestamp:
- Jun 1, 2004, 3:22:02 PM (22 years ago)
- File:
-
- 1 edited
-
trunk/doc/pslib/psLibSDRS.tex (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/doc/pslib/psLibSDRS.tex
r792 r826 1 %%% $Id: psLibSDRS.tex,v 1.4 8 2004-05-27 02:34:32 eugene Exp $1 %%% $Id: psLibSDRS.tex,v 1.49 2004-06-02 01:22:02 price Exp $ 2 2 \documentclass[panstarrs]{panstarrs} 3 3 … … 2339 2339 2340 2340 \begin{verbatim} 2341 psVector *psVectorFFT( const psVector *in, intdirection);2341 psVector *psVectorFFT(psVector *out, const psVector *in, psFFTFlags direction); 2342 2342 psVector *psVectorReal(psVector *out, const psVector *in); 2343 2343 psVector *psVectorImaginary(psVector *out, const psVector *in); 2344 psVector *psVectorComplex(psVector * real, psVector *imag);2344 psVector *psVectorComplex(psVector *out, psVector *real, psVector *imag); 2345 2345 psVector *psVectorConjugate(psVector *out, const psVector *in); 2346 psVector *psVectorPowerSpectrum( const psVector *in);2346 psVector *psVectorPowerSpectrum(psVector *out, const psVector *in); 2347 2347 \end{verbatim} 2348 2348 2349 2349 The forward and reverse FFT is calculated using \code{psVectorFFT}, 2350 2350 which takes as input the vector of interest (\code{in}) and the 2351 direction (\code{direction} ; 1 is forward, -1 is reverse). The input2352 vector may be of type \code{psF32} or \code{psC32}, the result is 2353 always \code{psC32}. If the input vector is \code{psF32}, the 2354 direction must be forward. Neither the forward or inverse transforms 2355 must multiply by $1/N$ (or $1/N^{1/2}$), and so it falls to the 2356 responsibility of the user to multiply a vector that has been forward- 2357 and reverse-transformed by $1/N$.2351 direction (\code{direction}), which is specified by an enumerated type 2352 defined below. The input vector may be of type \code{psF32} or 2353 \code{psC32}, the result is always \code{psC32}. If the input vector 2354 is \code{psF32}, the direction must be forward. Neither the forward 2355 or inverse transforms must multiply by $1/N$ (or $1/N^{1/2}$), and so 2356 it falls to the responsibility of the user to multiply a vector that 2357 has been forward- and reverse-transformed by $1/N$. 2358 2358 2359 2359 Conversions between complex and real vectors requires the functions … … 2370 2370 (\code{psF32}) vectors of the input complex vector (\code{psC32}). 2371 2371 2372 The direction of an FFT performed by \code{psVectorFFT} is specified 2373 by an enumerated type, \code{psFFTFlags}: 2374 2375 \begin{verbatim} 2376 /** Specify direction of FFT, and if the result is real or not */ 2377 typedef enum { 2378 PS_FFT_FORWARD = 0, ///< psImageFFT/psVectorFFT should perform a forward FFT. 2379 PS_FFT_REVERSE = 1, ///< psImageFFT/psVectorFFT should perform a reverse FFT. 2380 PS_FFT_REAL_RESULT = 2 ///< psImageFFT/psVectorFFT should return a real image. This is valid 2381 ///< for only reverse FFT, i.e., the psImageFFT/psVectorFFT flag 2382 ///< parameter should appear as PS_FFT_REVERSE+PS_FFT_REAL_RESULT. 2383 } psFFTFlags; 2384 \end{verbatim} 2385 2386 The entry \code{PS_FFT_REAL_RESULT} means that the output of an 2387 inverse FFT is to be purely real. An example of its use is: 2388 \begin{verbatim} 2389 out = psImageFFT(in, PS_FFT_REVERSE | PS_FFT_REAL_RESULT); 2390 \end{verbatim} 2391 2392 The output from a FFT and power spectrum shall be of the same size as 2393 the input. In the future, if this adversely affects performance, this 2394 will be revised so that the redundant information will be neglected. 2395 2372 2396 In analogy with the vector FFT operations, we also define matching 2373 2397 image operations as follows: 2374 2398 \begin{verbatim} 2375 psImage *psImageFFT( const psImage *image, intdirection);2399 psImage *psImageFFT(psImage *out, const psImage *image, psFFTFlags direction); 2376 2400 psImage *psImageReal(psImage *out, const psImage *in); 2377 2401 psImage *psImageImaginary(psImage *out, const psImage *in); 2378 psImage *psImageComplex(psImage * real, const psImage *imag);2402 psImage *psImageComplex(psImage *out, psImage *real, const psImage *imag); 2379 2403 psImage *psImageConjugate(psImage *out, const psImage *in); 2380 psImage *psImagePowerSpectrum( const psImage *in);2404 psImage *psImagePowerSpectrum(psImage *out, const psImage *in); 2381 2405 \end{verbatim} 2382 2406
Note:
See TracChangeset
for help on using the changeset viewer.
