6.1 Fractional Transform Operations
A fractional transform is a linear, time invariant, discrete operation that when applied to a fractional time domain sample sequence, results in a fractional frequency in the frequency domain. Conversely, an inverse fractional transform operation, when applied to frequency domain data, results in its time domain representation.
A set of transforms (and a subset of inverse transforms) are provided by the DSP Library. The first set applies a Discrete Fourier Transform (or its inverse) to a complex/real data set. The second set applies a Type II Discrete Cosine Transform (DCT) to a real valued sequence. These transforms have been designed to either operate out-of-place or in-place. The former type populates an output sequence with the results of the transformation. In the latter, the input sequence is (physically) replaced by the transformed sequence. For out-of-place operations, enough memory to accept the results of the computation must be provided.
The transforms make use of factors (or constants) which must be supplied to the transforming function during its initialization. These transform factors, which are complex data sets, are computed in floating-point arithmetic and then transformed into fractionals for use by the operations. To avoid excessive computational overhead when applying a transformation, a particular set of transform factors could be generated once and used many times during the execution of the program. Thus, it is advisable to store the factors returned by any of the initialization operations in a permanent (static) complex vector. It is also advantageous to generate the factors off-line, place them in program memory and use them when the program is later executing. This way, not only cycles, but also RAM memory are saved when designing an application which involves transformations.