Rogue Wave banner
Previous fileTop of DocumentContentsIndex pageNext file
Essential Math Module User's Guide
Rogue Wave web site:  Home Page  |  Main Documentation Page

4.2 Transforms of Real Sequences

It is worth discussing the difference between DComplexFFTServer and DoubleFFTServer. Say you want to transform a real sequence of N points V(j), j=0, ..., N–1. Note that the transform of a real sequence is a complex conjugate-even sequence, that is, a sequence where C(j) = conj(C(–j)) = conj(C(N–j)). How can you calculate the transform? In general, you have two choices:

The DoubleFFTServer uses the second approach. Because the result is a complex conjugate-even sequence, the DoubleFFTServer returns only the lower half of the sequence, which saves considerable time. Here is an example illustrating the two approaches:

Program output (exact results depend on machine precision):

A close inspection shows that the full transformed sequence using the first approach is complex-conjugate even. The second approach, using the DoubleFFTServer, returns only the lower half of that sequence. The global function expandConjugateEven() can be used to expand it into the full N-point conjugate-even sequence. See the RWMathVec description in the SourcePro C++ API Reference Guide for more information.



Previous fileTop of DocumentContentsNo linkNext file

Copyright © Rogue Wave Software, Inc. All Rights Reserved.

The Rogue Wave name and logo, and SourcePro, are registered trademarks of Rogue Wave Software. All other trademarks are the property of their respective owners.
Provide feedback to Rogue Wave about its documentation.