<< Chapter < Page | Chapter >> Page > |
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 an FFT algorithm. (See the program named Dsp030 in the module titled Spectrum Analysis using Java, Sampling Frequency, Folding Frequency, and the FFT Algorithm for the use of an FFT algorithm.)
Before getting into the technical details of the program, let's take a look at some results. Figure 2 shows the results produced by using the program named Graph06 to plot the output for the program named Dsp034 using default parameters.
(The file named Dsp034.txt did not exist in the current directory when the results shown in Figure 2 were generated.)
Figure 2. Spectral analysis of a damped pulse. |
---|
First consider the input pulse shown in the top plot of Figure 2 . This is the sort of pulse that you would get if you hung a mass on a spring, gave it a swiftdownward kick, and then allowed the mass to come to rest in an unimpeded fashion.
The horizontal axis represents time moving from left to right. The values above and below the axis represent the position of the mass over time relativeto its position at rest.
When the mass is at the most extreme positions and getting ready to reverse directions, the spring is extended. Thus, potential energy is stored in thespring. At these points in time, there is no kinetic energy stored in the mass.
As the mass goes through the rest position heading towards the other side, the spring is no longer extended, and there is no potential energy stored in thespring. However, at that point in time, the mass is moving causing it to have kinetic energy.
The behavior of the spring/mass system is to exchange that energy between potential energy and kinetic energy until such time as energy losses due tofriction dissipate the energy. At that point in time, the entire system comes to rest, which is the case about one-third of the way across the top plot in Figure 2 .
Now that our physics lesson for the day is over, let's get back to programming and digital signal processing.
Assume that you use an analog to digital converter to capture the position ofthe mass at a set of uniformly spaced intervals in time and then you plot those samples along a time axis. You should see something resembling the top plot in Figure 2 .
Having captured that positional information as a set of uniformly spaced samples, you are now in a position to perform a Fourier transform on the sampledtime series.
In the module titled Fun with Java, How and Why Spectral Analysis Works , I explained that you could compute the Fourier transform of an input time series at any givenfrequency F by evaluating the first two expressions in Figure 3 . (The notation used in Figure 3 was also explained in that module.)
Figure 3. Fourier transform equations. |
---|
Real(F) = S(n=0,N-1)[x(n)*cos(2Pi*F*n)]
Imag(F) = S(n=0,N-1)[x(n)*sin(2Pi*F*n)]ComplexAmplitude(F) = Real(F) - j*Imag(F) |
Notification Switch
Would you like to follow the 'Digital signal processing - dsp' conversation and receive update notifications?