Go Down

Topic: DUE's more advanced FFT capabilities (Read 7 times) previous topic - next topic

ymirsky

I'm looking for the most efficient way to get the Arduino DUE to preform a FFT. Since I'm only interested in preforming FFTs of real signals, a symmetric transformer like the Hartley Transform would be best.

I know there are a few libraries floating around, but all the ones I can find have been made for the UNO (don't compile in the 1.5 IDE). Are there and FFT libraries for the DUE?
In the directories of IDE 1.5, I saw a few c files in ...\arduino\sam\system\CMSIS\CMSIS\DSP_Lib\Source\TransformFunctions\
like arm_cfft_radix4_f32.c for example

These are excellent implementations intended for the Ardunio DUE's ARM4 core, but I cant seem to get them to compile (compiler error: cant find ARMCM4.h   ... and when I add  ARMCM4.h as a library, the compiler complains that it is an invalid library)

Any ideas? What other powerful libraries are there for the DUE that haven't been publicized?

Thanks!

DuaneB

Hi,
   The Due, ARM3 not ARM4 so it does not have the DSP extension, my guess is that thats is why its complaining about the invalid library.

Duane B

rcarduino.blogspot.com

ymirsky

Oops, your absolutely right. The DUE  has an ARM M3 and not M4 core. Still, its very strange to me why the Arduino 1.5 IDE comes with ARM M4 c and s files.

Anyways, any thoughts about a FFT library which will take advantage of the ARM M3's float operation capabilities (for example...) would be much appreciated.

I did find one which does compile:
http://www.librow.com/articles/article-10
It uses "double" for all of its data types. Does the ARM M3 process doubles as efficiently as floats? Or is it emulated and therefore take a much longer time to process?

Thanks again!

DuaneB

Sorry to disappoint, but as far as I am aware there is no floating point co processor either so no hardware support for float or double.

Duane B

ymirsky

yikes! well back to the drawing board...

Go Up