Optimizing DFT Homework: Split-Radix & Cooley-Tukey

  • Thread starter dimensionless
  • Start date
  • Tags
    Dft
In summary, to create a fast Fourier transform from a discrete Fourier transform, one must identify and optimize the redundancies in the DFT. This can be done by recognizing the values of k and n where k1*n1 (mod N) = k2*n2 (mod N) or k1*n1/N = k2*n2/N+M, where M is an integer. These redundancies can be further optimized by considering the relationships between cos(...) and sin(...) terms. The process of optimizing the DFT is explained in detail in the book "Numerical Recipes in C (or Pascal, or Fortran)" by Press, Flannery, Teukolsky, and Vetterling.
  • #1
dimensionless
462
1

Homework Statement


Given a discrete Fourier transform, create a fast Fourier transform.


Homework Equations


The DFT:
[tex]X_k = \sum_{n=0}^{N-1} x_n e^{-\frac{2 \pi i}{N} k n} \quad \quad k = 0, \dots, N-1[/tex]


The Attempt at a Solution


I've heard about split-radix and Cooley-Tukey, but I'm missing the underlying principle. There are a lot of redundant calculations somewhere in the DFT. Where are they? How do I go about optimizing this darn thing? By the way, this isn't really a HW question.
 
Physics news on Phys.org
  • #2
dimensionless said:
There are a lot of redundant calculations somewhere in the DFT. Where are they?
Since we are taking sines and cosines of the expression

2*pi*k*n/N

the redundancies are the values of k and n where

k1*n1 (mod N) = k2*n2 (mod N)

How do I go about optimizing this darn thing? By the way, this isn't really a HW question.

It's covered in a chapter of Numerical Recipes in C (or Pascal, or Fortran) by Press, Flannery, Teukolsky and Vetterling.
https://www.amazon.com/dp/0521431085/?tag=pfamazon01-20
 
  • #3
Can you tell me what is meant by (mod N)?

It also appears as though there could be more redundancies when

k1*n1/N = k2*n2/N+M

where M is an integer.
 
  • #4
dimensionless said:
Can you tell me what is meant by (mod N)?
It's explained here:
http://en.wikipedia.org/wiki/Modular_arithmetic

It also appears as though there could be more redundancies when

k1*n1/N = k2*n2/N+M

where M is an integer.
Yes, exactly. Or equivalently,

k1*n1 = k2*n2 + M*N

In other words, k1*n1 and k2*n2 differ by an integer multiple of N. This can also be written as I did before, in terms of (mod N) notation.

There are even more redundancies, for example

[tex]
\cos[2 \pi \ k1 \ n1 \ / \ N] = \cos[2 \pi (N - k1 \ n1) \ / \ N] \ \rightarrow \ k2 \ n2 = N - k1 \ n1
[/tex]

[tex]
\cos[2 \pi \ k1 \ n1 \ / \ N] = -\cos[2 \pi \ ( N/2 \pm k1 \ n1 ) \ / \ N] \ \rightarrow \ k2 \ n2 = N/2 \ \pm \ k1 \ n1
[/tex]

I.e. each value of cos(...), or it's negative, occurs 4 times during each period. And similarly for sin(...)

And that's not all:

[tex]
\cos[2 \pi \ k1 \ n1 \ / \ N] = \sin[2 \pi \ (N/4 - k1 \ n1) \ / \ N ] \ \rightarrow \ k2 \ n2 = N/4 - k1 \ n1
[/tex]

I.e. there are redundancies between the sin(...) and cos(...) terms as well.

Essentially, you just need to evaluate cos(...) for 1/4 of a period, and all other cos(...) and sin(...) terms will appear in that list.
 

Related to Optimizing DFT Homework: Split-Radix & Cooley-Tukey

1. What is DFT (Discrete Fourier Transform)?

DFT is a mathematical process that converts a signal from its original domain (often time or space) to a representation in the frequency domain. It is widely used in various fields such as signal processing, image processing, and data compression.

2. What is the importance of optimizing DFT homework?

Optimizing DFT homework can significantly improve the efficiency and accuracy of the calculations, making it easier to analyze and interpret data. This is particularly important in fields such as scientific computing, where large amounts of data and complex calculations are involved.

3. What is Split-Radix and Cooley-Tukey algorithm?

Split-Radix and Cooley-Tukey algorithms are two commonly used algorithms for calculating DFT. They both use the divide-and-conquer approach to break down the DFT calculation into smaller and simpler sub-problems, making it more efficient and faster to compute.

4. What are the advantages of using Split-Radix and Cooley-Tukey algorithm?

One of the main advantages of using these algorithms is their time complexity, which is significantly lower than the traditional DFT algorithm. This means that they can perform the same calculations in a shorter amount of time, making them more efficient for large-scale computations.

5. How can one optimize DFT homework using Split-Radix and Cooley-Tukey algorithm?

To optimize DFT homework using these algorithms, one can utilize various techniques such as choosing the appropriate data structures, utilizing parallel processing, and optimizing the code for the specific hardware being used. It is also important to have a good understanding of the underlying mathematical principles to effectively optimize the calculations.

Similar threads

  • Electrical Engineering
Replies
4
Views
910
  • Calculus and Beyond Homework Help
Replies
1
Views
2K
Replies
4
Views
2K
  • General Engineering
Replies
3
Views
1K
Replies
1
Views
460
  • Calculus and Beyond Homework Help
Replies
3
Views
1K
  • Engineering and Comp Sci Homework Help
Replies
1
Views
3K
  • Engineering and Comp Sci Homework Help
Replies
8
Views
2K
  • Calculus and Beyond Homework Help
Replies
1
Views
2K
  • Advanced Physics Homework Help
Replies
12
Views
2K
Back
Top