Improve DSP fft routine

Dec 11, 2014 at 11:33 AM
In my previous issue I offered a solution, such that you considered it worthy of mentioning me. It made me think of something really worth mentioning: offer you a better FFT routine.

In the program you'll find an invocation of your FastFourierTransformation and one that invokes my routine (mine in the sense that I offer it, I did not write as you'll see in the description, I only translated Fortran in C#). I wrote a wrapper to allow "old" calls to function.

It is better in 3 ways.
First it executes with a 25% reduction of elapsed time.
Seccondly it's about 1000 times more accurate, using double intermediate results.
Thirdly the basic routine allows you to invoke it with number of samples not equal to a power of two. I used it to process 44100 samples and get a frequency spectrum for each Hertz, for example. It has more possibilities, that I never explored.

If you like it, take it. Don't read the source, it's from the good old days, when Do and While, etc were not available to the programmer, unless you wrote in Algol.

I don't see a button to upload anything, so download the source from my personal website
Dec 11, 2014 at 1:09 PM
That is very nice! There is some kind of an upload feature. You can create a pull request and upload your source. But where did you take the original code from? Is it your code? Is its license compatible with the MS-pl license?
Dec 11, 2014 at 4:21 PM
I traced back the original publication of the source here and asked for the owners to let me know what use is legitimate and which not. I expressively mentioned the MS-pl. I hope to get an answer soon. I found the source some 5 years ago on the internet, but did never consider its copyright. It is correct to know that before publishing and then be caught!
Dec 14, 2014 at 7:58 PM
Ok, that's fine. If there are any news, please tell me :).
Jan 14, 2015 at 12:19 PM
I'm sorry to have found out, that the original author's department did not answer my request to publish the converted source of the fortran program. Thus I went back one step: read the original report on which the routine was based, and wrote my own routine, with the fortran version as a close guide, as that one served me to verify the correct functioning of the new routine. I lost a bit of the speed, but my version is still some 10% faster and allows for a any sample size "n" , where n can be decomposed in prime factors < 1024. It works best for n = a power of 3, next a power of 4, and next a power of 2. I was never able to get GIT working , I probably don't understand the logic behind. That's why I ask you to pick up the VS project at this location and copy it.
Jan 14, 2015 at 10:08 PM
Thanks, I am going to have a look at it :).
Jan 27, 2015 at 8:28 AM
This discussion has been copied to a work item. Click here to go to the work item and continue the discussion.
Marked as answer by filoe on 2/19/2015 at 3:28 PM