PDF version (NAG web site
, 64-bit version, 64-bit version)
NAG Toolbox: nag_sum_fft_hermitian_2d (c06pw)
Purpose
nag_sum_fft_hermitian_2d (c06pw) computes the two-dimensional inverse discrete Fourier transform of a bivariate Hermitian sequence of complex data values.
Syntax
[
x,
ifail] = nag_sum_fft_hermitian_2d(
m,
n,
y)
Description
nag_sum_fft_hermitian_2d (c06pw) computes the two-dimensional inverse discrete Fourier transform of a bivariate Hermitian sequence of complex data values , for and .
The discrete Fourier transform is here defined by
where
and
. (Note the scale factor of
in this definition.)
Because the input data satisfies conjugate symmetry (i.e., is the complex conjugate of , the transformed values are real.
A call of
nag_sum_fft_real_2d (c06pv) followed by a call of
nag_sum_fft_hermitian_2d (c06pw) will restore the original data.
This function calls
nag_sum_fft_realherm_1d_multi_col (c06pq) and
nag_sum_fft_complex_1d_multi_row (c06pr) to perform multiple one-dimensional discrete Fourier transforms by the fast Fourier transform (FFT) algorithm in
Brigham (1974) and
Temperton (1983).
References
Brigham E O (1974) The Fast Fourier Transform Prentice–Hall
Temperton C (1983) Fast mixed-radix real Fourier transforms J. Comput. Phys. 52 340–350
Parameters
Compulsory Input Parameters
- 1:
– int64int32nag_int scalar
-
, the first dimension of the transform.
Constraint:
.
- 2:
– int64int32nag_int scalar
-
, the second dimension of the transform.
Constraint:
.
- 3:
– complex array
-
The Hermitian sequence of complex input dataset
, where
is stored in
, for
and
.
That is, if
y is regarded as a two-dimensional array of dimension
, then
must contain
.
Optional Input Parameters
None.
Output Parameters
- 1:
– double array
-
The real output dataset
, where
is stored in
, for
and
. That is, if
x is regarded as a two-dimensional array of dimension
, then
contains
.
- 2:
– int64int32nag_int scalar
unless the function detects an error (see
Error Indicators and Warnings).
Error Indicators and Warnings
Errors or warnings detected by the function:
-
-
Constraint: .
-
-
Constraint: .
-
-
An internal error has occurred in this function.
Check the function call and any array sizes.
If the call is correct then please contact
NAG for assistance.
-
An unexpected error has been triggered by this routine. Please
contact
NAG.
-
Your licence key may have expired or may not have been installed correctly.
-
Dynamic memory allocation failed.
Accuracy
Some indication of accuracy can be obtained by performing a forward transform using
nag_sum_fft_real_2d (c06pv) and a backward transform using
nag_sum_fft_hermitian_2d (c06pw), and comparing the results with the original sequence (in exact arithmetic they would be identical).
Further Comments
The time taken by nag_sum_fft_hermitian_2d (c06pw) is approximately proportional to , but also depends on the factors of and . nag_sum_fft_hermitian_2d (c06pw) is fastest if the only prime factors of and are , and , and is particularly slow if or is a large prime, or has large prime factors.
Workspace is internally allocated by nag_sum_fft_hermitian_2d (c06pw). The total size of these arrays is approximately proportional to .
Example
See
Example in
nag_sum_fft_real_2d (c06pv).
Open in the MATLAB editor:
c06pw_example
function c06pw_example
fprintf('c06pw example results\n\n');
m = int64(5);
n = int64(2);
x = [0.010 0.346;
1.284 1.960;
1.754 0.855;
0.089 0.161;
1.004 1.844];
[y, ifail] = c06pv(m, n, x);
fprintf('\nComponents of discrete Fourier transform\n');
disp(reshape(y, m/2, n));
[x, ifail] = c06pw(m, n, y);
fprintf('Original sequence as restored by inverse transform\n');
disp(reshape(x, m, n));
c06pw example results
Components of discrete Fourier transform
2.9431 + 0.0000i -0.3241 + 0.0000i
-0.0235 - 0.5576i -0.4660 - 0.2298i
-1.1666 + 0.6359i 0.3624 + 0.2615i
Original sequence as restored by inverse transform
0.0100 0.3460
1.2840 1.9600
1.7540 0.8550
0.0890 0.1610
1.0040 1.8440
PDF version (NAG web site
, 64-bit version, 64-bit version)
© The Numerical Algorithms Group Ltd, Oxford, UK. 2009–2015