Already a qualifying Patreon member? Refresh to access this content.
4 thoughts on “The FFT Algorithm | The Secrets of the FFT | Part 4”
Hi Mark,
Thanks for this series it is very informative. I have tried following along in Python and comparing my outputs with Numpy’s FFT. I think there is a mistake in your ‘twiddle factor’ calculations. My outputs are off by a factor of -j when compared to numpy.
I get the correct answer if I calculate the twiddle factor as W = exp(-j * 2*pi*I/O) = cos(-2*pi*I/O) + j * sin(-2*pi*I/O); rather than W = exp(j * 2*pi*I/O).
I see where you are coming from. However, the meaning of the -j in exp(-j * 2*pi*I/O) does not mean that the 2pi is negative, rather, if you were to express the twiddle factor in polar form, you get cos(2*pi*I/O) – j * sin(2*pi*I/O) instead of cos(2*pi*I/O) + j * sin(2*pi*I/O). In other words, the sign between the cosine and sine terms is minus rather than plus. I do indeed have an error in the equation. Thank you for pointing it out I’ve corrected the equations in the 2 posts referring to the twiddle factors and in the JavaScript library which I wrote.
Hi therе would you mind sharing whіch blog platform you’re using?
I’m going to start my own blog in the near future but I’m having a hard time choosing between BlogEngine/Wordpress/B2evolution and Drupal.
The reason Ӏ ask is because your design seems different then most blogs and I’m loօking
for ѕomething completely unique.
P.S Sorry for ƅeing off-topic but I had to ask!
Would you like to learn about how the Fourier Series became the Fourier Transform, how the DFT and FFT work and what Windowing is? Please help me to devote more time to filming the rest of the video course by supporting me on Patreon.
Receive updates on the continuing production of the course, get notified when there is a new post or video and be the first to know when the full course goes live.
Hi Mark,
Thanks for this series it is very informative. I have tried following along in Python and comparing my outputs with Numpy’s FFT. I think there is a mistake in your ‘twiddle factor’ calculations. My outputs are off by a factor of -j when compared to numpy.
I get the correct answer if I calculate the twiddle factor as W = exp(-j * 2*pi*I/O) = cos(-2*pi*I/O) + j * sin(-2*pi*I/O); rather than W = exp(j * 2*pi*I/O).
Regards,
Neil
I see where you are coming from. However, the meaning of the -j in exp(-j * 2*pi*I/O) does not mean that the 2pi is negative, rather, if you were to express the twiddle factor in polar form, you get cos(2*pi*I/O) – j * sin(2*pi*I/O) instead of cos(2*pi*I/O) + j * sin(2*pi*I/O). In other words, the sign between the cosine and sine terms is minus rather than plus. I do indeed have an error in the equation. Thank you for pointing it out I’ve corrected the equations in the 2 posts referring to the twiddle factors and in the JavaScript library which I wrote.
Hi therе would you mind sharing whіch blog platform you’re using?
I’m going to start my own blog in the near future but I’m having a hard time choosing between BlogEngine/Wordpress/B2evolution and Drupal.
The reason Ӏ ask is because your design seems different then most blogs and I’m loօking
for ѕomething completely unique.
P.S Sorry for ƅeing off-topic but I had to ask!
I use WordPress