<< Chapter < Page | Chapter >> Page > |
This program can be run with either Graph03 or Graph06 in order to plot the results. Enter the following at the command-line prompt to run the program with Graph03 after everything is compiled:
java Graph03 Dsp035
The program was tested using JDK 1.8 under Windows 7.
When the data is plotted (see Figure 1 ) using the programs Graph03 or Graph06 , the plots appear in the following order from top to bottom:
There were 256 values plotted horizontally in each section. I plotted the values on a grid that is 270 units wide to make it easier to view the plots onthe rightmost end. This leaves some blank space on the rightmost end to contain the numbers, preventing the numbers from being mixed in with the plotted values.The last actual data value coincides with the rightmost tick mark on each plot.
A static method named transform belonging to the class named ForwardRealToComplex01 was used to perform the forward Fourier transform.
(I explained this class and the transform method in the earlier module titled Spectrum Analysis using Java, Sampling Frequency, Folding Frequency, and the FFT Algorithm .)
The method named transform does not implement an FFT algorithm. Rather, it implements a DFT algorithm, which is more general than, but much slower than anFFT algorithm.
(See the program named Dsp036 later in the module for the use of an FFT algorithm.)
A static method named inverseTransform belonging to the class named InverseComplexToReal01 was used to perform the inverse Fourier transform. I will explain this method later in this module.
Before getting into the technical details of the program, let's take a look at the results shown in Figure 1 .
The top plot in Figure 1 shows the input time series used in this experiment.
Figure 1. Forward and inverse transform of a time series using DFT algorithm. |
---|
The time series is 256 samples long. Although the DFT algorithm can accommodate time series of arbitrary lengths, I set the length of this timeseries to a power of two so that I can compare the results with results produced by an FFT algorithm later in the module.
(Recall that most FFT algorithms are restricted to input data lengths that are a power of two.)
As you can see, the input time series consists of three concatenated pulses separated by blank spaces. The pulse on the leftmost end consists simply of somevalues that I entered into the time series to create a pulse with an interesting shape.
The middle pulse is a truncated sinusoid.
The rightmost pulse is a truncated square wave.
The objective of the experiment is to confirm that it is possible to transform this time series into the frequency domain using a forward Fouriertransform, and then to recreate the time series by using an inverse Fourier transform to transform the complex spectrum back into the time domain.
Notification Switch
Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?