<< Chapter < Page | Chapter >> Page > |
The program named Dsp036 replicates the behavior of the program named Dsp035 , except that it uses an FFT algorithm to perform the inverse Fourier transform instead of using a DFT algorithm as in Dsp035 .
The output produced by running the program named Dsp036 and plotting the output using the program named Graph03 is shown in Figure 2 .
Figure 2. Forward and inverse transform of a time series using FFT algorithm. |
---|
Compare Figure 2 with Figure 1 . The two should be identical. The program named Dsp036 was designed to use an FFT algorithm for the inverse Fourier transform and to replicate the behavior of the program named Dsp035 , which uses a DFT algorithm for the inverse Fourier transform. In addition, the same plotting parameters were used for both figures.
I'm only going to show you one short code fragment from the program named Dsp036 . Listing 7 shows the code that calls the methods to perform the forward and inverse Fourier transforms using the FFT algorithm. A complete listing ofthe program named Dsp036 is shown in Listing 16 near the end of the module.
Listing 7. Some code from Dsp036. |
---|
//Compute FFT of the time data and save it in
// the output arrays.ForwardRealToComplexFFT01.transform(
timeDataIn,realSpect,
imagSpect,angle,
magnitude);//Compute inverse FFT of the spectral data
InverseComplexToRealFFT01.inverseTransform(
realSpect,imagSpect,
timeOut); |
The transform method used to perform the forward Fourier transform in Listing 7 was discussed in an earlier module, so I won't discuss it further here.
The static inverseTransform method of the InverseComplexToRealFFT01 class was used to perform the inverse Fourier transform in Listing 7 . You can view this method in Listing 17 near the end of the module.
I'm not going to discuss this method in detail either, because it is very similar to the method named InverseComplexToReal01 discussed earlier in conjunction with Listing 4 and the listings following that one.
There are a couple of things, however, that I do want to point out.
The transform method and the inverseTransform method each call a method named complexToComplex to actually perform the Fourier transform. This method implements a classical FFT algorithm accepting complex input data and producingcomplex output data. The restriction of real-to-complex and complex-to-real is imposed in this program by the methods named transform and inverseTransform .
(The method named complexToComplex is also suitable for use if you have a need to perform complex-to-complex Fourier transforms.)
The signature for the complexToComplex method is shown in Figure 3 .
Figure 3. The signature of the complexToComplex method. |
---|
public static void complexToComplex(
int sign,int len,
double real[],
double imag[]){ |
Notification Switch
Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?