fft test software using cmsis DSP library FRDM k22f

Dependencies:   mbed-dsp mbed

Revision:
0:015ecf1bac06
Child:
1:6b7e5eae3a55
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Sep 30 14:51:31 2016 +0000
@@ -0,0 +1,92 @@
+// Print messages when the AnalogIn is greater than 50%
+ 
+#include "mbed.h"
+#include "arm_math.h"
+#include "arm_const_structs.h"
+
+
+#define led_on  0x00
+#define led_off 0x01
+
+DigitalOut led_r(PTA1);
+DigitalOut led_g(PTA2);
+DigitalOut led_b(PTD5);
+
+const int FFT_LEN   = 64;
+const int bins      = 32;
+
+
+const static arm_cfft_instance_f32 *S;
+
+float samples[FFT_LEN*2];
+float magnitudes[FFT_LEN];
+float freq_window[bins];
+
+
+int main() 
+{   //initialize led to all off
+    led_r.write(led_off);
+    led_g.write(led_off);
+    led_b.write(led_off);  
+    
+    
+    int32_t i = 0;
+    
+        // Init arm_ccft_32
+    switch (FFT_LEN)
+    {
+    case 16:
+        S = & arm_cfft_sR_f32_len16;
+        break;
+    case 32:
+        S = & arm_cfft_sR_f32_len32;
+        break;
+    case 64:
+        S = & arm_cfft_sR_f32_len64;
+        break;
+    case 128:
+        S = & arm_cfft_sR_f32_len128;
+        break;
+    case 256:
+        S = & arm_cfft_sR_f32_len256;
+        break;
+    case 512:
+        S = & arm_cfft_sR_f32_len512;
+        break;
+    case 1024:
+        S = & arm_cfft_sR_f32_len1024;
+        break;
+    case 2048:
+        S = & arm_cfft_sR_f32_len2048;
+        break;
+    case 4096:
+        S = & arm_cfft_sR_f32_len4096;
+        break;
+    }
+
+    /*populate some dummy sin data*/
+    for(i = 0; i< FFT_LEN*2; i+=2)
+    {
+        //fast math sine table[512+1]
+        samples[i]      = sinTable_f32[i*4];
+        samples[i+1]    = 0;
+    }
+    
+    // Run FFT on sample data.
+    arm_cfft_f32(S, samples, 0, 1);
+    // Calculate magnitude of complex numbers output by the FFT.
+    arm_cmplx_mag_f32(samples, magnitudes, FFT_LEN);
+    
+    for(i = 0; i< FFT_LEN; i++)
+    {
+        printf("magnitudes[%f]: %f\r\n",i,magnitudes[i]);
+    }
+    
+    
+    printf("test complete");
+
+    while(1) 
+    {
+        
+    }
+}
\ No newline at end of file