DSP Simulation 05 Fast Fourier Transform
DSP Simulation 05 Fast Fourier Transform
3.
4.
5.
I. Objectives:
1. Understand the principles of the Fast Fourier Transform (FFT) algorithms, focusing on
the Decimation in Time (DIT) and Decimation in Frequency (DIF) methods.
2. Examine and compare the output at each stage of both algorithms to ensure the
results align with expected values, reinforcing the learning of FFT processing.
3. Write Scilab programs to effectively implement both the DIT and DIF FFT algorithms for
an 8-point input sequence, applying the appropriate mathematical steps.
1 pc Laptop/Computer
SciLab Application
III. Procedure
IV. Observations.
We observed that since Scilab does not have an automatic way to rearrange sequences like
MATLAB, we adjusted the indices for Scilab's 1-based indexing by adding 1. After restructuring
the input as required for the DIT FFT algorithm, we moved on to the stages of the calculation.
In Stage 1, we took pairs of values, added and subtracted them using the twiddle factor
(w_8^0). The output matched our expectations, confirming that this stage was successful.
In Stage 2, we used the output from Stage 1 as input, grouping alternate terms and applying
the next set of twiddle factors, which also yielded correct results.
College of Engineering and Computer Studies
Bachelor of Science in Electronics Engineering (BSECE)
Form 01 Experiment Report Format
Original, 05-September-2022
In Stage 3, we applied four twiddle factors, and once again, the output reflected the
anticipated values, validating our understanding of the sequential nature of the stages. We
then compared the results from our manual calculations with Scilab's built-in fft function, and
were relieved to find that they produced the same output, reinforcing our confidence in our
implementation.
Next, we explored the Decimation in Frequency (DIF) algorithm, which flips the approach of
DIT. We modified our code to ensure the twiddle factor was only applied to the difference of
values in the sum. As with DIT, we verified the outputs at each stage of the DIF, finding our
results to be consistent with our manual calculations.
We explored two algorithms for computing the Fast Fourier Transform (FFT) using Scilab: the
Decimation in Time (DIT) and the Decimation in Frequency (DIF) methods. Our main objective
was to demonstrate how these algorithms work by applying them to an 8-point input
sequence.
First, we implemented the DIT algorithm, which involves restructuring the input sequence
before performing the FFT. The main idea behind DIT is to organize the input in a specific
order and then apply a series of stages where we compute sums and differences of the input
values, accompanied by twiddle factors. This process breaks down the computation into
smaller parts, making it easier and faster to calculate the FFT. We were able to match the
outputs at each stage with expected results, confirming that our implementation was correct.
Next, we looked at the DIF algorithm, which is essentially a flipped version of DIT. The key
difference here is that the twiddle factors are applied differently in relation to the sums and
differences. This change in arrangement leads to a different sequence of computations but
aims to achieve the same final output. We implemented this in Scilab as well and verified that
the results matched the expected outputs, demonstrating the reliability of the DIF algorithm.
As a result both methods provided us with the same final outputs for the FFT of the specified
input sequence. This work shows that while the approaches to computing the FFT differ in
structure and the order of operations, they can yield consistent results, further emphasizing
the versatility of FFT algorithms. Our objectives to understand how these algorithms function
and to establish their effectiveness were successfully met through this practical
implementation.