SourcePro® 2023.1 |
SourcePro® API Reference Guide |
Performs two-dimensional (2-D) double precision complex fast Fourier transforms (FFTs) of an RWGenMat<DComplex> matrix. More...
#include <rw/cfft2d.h>
Public Member Functions | |
DComplexFFT2DServer () | |
DComplexFFT2DServer (size_t nrows, size_t ncols) | |
DComplexFFT2DServer (size_t n) | |
DComplexFFT2DServer (const DComplexFFT2DServer &) | |
size_t | cols () const |
RWGenMat< DComplex > | fourier (const RWGenMat< DComplex > &) |
RWGenMat< DComplex > | ifourier (const RWGenMat< DComplex > &) |
DComplexFFT2DServer & | operator= (const DComplexFFT2DServer &v) |
size_t | rows () const |
void | setCols (size_t N) |
void | setRows (size_t N) |
Class DComplexFFT2DServer performs two-dimensional (2-D) double precision complex fast Fourier transforms (FFTs) of an RWGenMat<DComplex> matrix. The transform of a complex matrix is a complex matrix; therefore, the server returns a complex matrix for either a forward or backward transform.
At any given moment, the server is configured to transform a matrix with specified dimensions. These dimensions can be set one of three ways:
The last method means that if the matrix size changes, the server automatically reconfigures to the new size. Since this is an expensive calculation, it is most efficient to call the server repeatedly for matrices of the same size. Different FFT servers may be constructed to handle different sizes.
The forward transform calculated is:
\[ A(m, n) = \displaystyle\sum_{j=0}^{M-1} \displaystyle\sum_{k=0}^{N-1} X(j, k) exp\left(-2\pi i\left[\frac{jm}{M}+\frac{kn}{n}\right]\right); \]
\[ m=0, \quad .., \quad M-1; \quad k=0, \quad .., \quad N-1 \]
The inverse Fourier transform (IDFT) calculated is:
\[ X(j, k) = \displaystyle\sum_{m=0}^{M-1} \displaystyle\sum_{n=0}^{N-1} A(m, n) exp\left(2\pi i\left[\frac{jm}{M}+\frac{kn}{n}\right]\right); \]
\[ j=0, \quad .., \quad M-1; \quad k=0, \quad .., \quad N-1 \]
As with the 1-D FFT, a call to fourier() followed by a call to ifourier() results in the original matrix multiplied by the total number of elements, that is, the number of rows times the number of columns.
DComplexFFT2DServer::DComplexFFT2DServer | ( | ) |
Constructs a double precision FFT server for a matrix of unspecified dimensions. The dimensions are initialized when the server is used.
DComplexFFT2DServer::DComplexFFT2DServer | ( | size_t | nrows, |
size_t | ncols | ||
) |
Constructs a complex FFT server designed to transform a matrix with nrows rows and ncols columns.
DComplexFFT2DServer::DComplexFFT2DServer | ( | size_t | n | ) |
Constructs a complex FFT server designed to transform a square matrix with n rows and columns.
DComplexFFT2DServer::DComplexFFT2DServer | ( | const DComplexFFT2DServer & | ) |
Copy constructor. The new server references the old server's data.
|
inline |
Returns the number of columns that the 2-D FFT server is currently configured to transform.
Returns the 2-D FFT of a complex matrix.
Returns the inverse 2-D FFT of a complex matrix.
DComplexFFT2DServer& DComplexFFT2DServer::operator= | ( | const DComplexFFT2DServer & | v | ) |
Sets self to the same order as v.
|
inline |
Returns the number of rows the 2-D FFT server is currently configured to transform.
void DComplexFFT2DServer::setCols | ( | size_t | N | ) |
Resets the number of columns of a 2-D FFT server to N.
void DComplexFFT2DServer::setRows | ( | size_t | N | ) |
Resets the number of rows of a 2-D FFT server to N.
Copyright © 2023 Rogue Wave Software, Inc., a Perforce company. All Rights Reserved. |