Ura

Dependencies:   CMSIS_DSP_401 mbed

Revision:
6:0de27f5ec409
Parent:
5:173ae8477ae1
Child:
7:a4cff60f035b
--- a/main.cpp	Tue Nov 11 16:41:53 2014 +0000
+++ b/main.cpp	Tue Nov 18 17:21:07 2014 +0000
@@ -18,10 +18,11 @@
 AnalogIn   center(A3);
  
 int SAMPLE_RATE_HZ = 40000;             // Sample rate of the audio in hertz.
-//const int FFT_SIZE = 16;                // Size of the FFT.
-const int FFT_SIZE = 1024;                // Size of the FFT.
+const int FFT_SIZE = 16;                // Size of the FFT.
  
-const static arm_cfft_instance_f32 *S;
+const static arm_cfft_instance_f32 *S1;
+const static arm_cfft_instance_f32 *S2;
+const static arm_cfft_instance_f32 *S3;
 //static arm_cfft_radix2_instance_f32 *S;
 Ticker samplingTimer;
 float samples[FFT_SIZE*2];
@@ -75,31 +76,49 @@
     switch (FFT_SIZE)
     {
     case 16:
-        S = & arm_cfft_sR_f32_len16;
+        S1 = & arm_cfft_sR_f32_len16;
+        S2 = & arm_cfft_sR_f32_len16;
+        S3 = & arm_cfft_sR_f32_len16;
         break;
     case 32:
-        S = & arm_cfft_sR_f32_len32;
+        S1 = & arm_cfft_sR_f32_len32;
+        S2 = & arm_cfft_sR_f32_len32;
+        S3 = & arm_cfft_sR_f32_len32;
         break;
     case 64:
-        S = & arm_cfft_sR_f32_len64;
+        S1 = & arm_cfft_sR_f32_len64;
+        S2 = & arm_cfft_sR_f32_len64;
+        S3 = & arm_cfft_sR_f32_len64;
         break;
     case 128:
-        S = & arm_cfft_sR_f32_len128;
+        S1 = & arm_cfft_sR_f32_len128;
+        S2 = & arm_cfft_sR_f32_len128;
+        S3 = & arm_cfft_sR_f32_len128;
         break;
     case 256:
-        S = & arm_cfft_sR_f32_len256;
+        S1 = & arm_cfft_sR_f32_len256;
+        S2 = & arm_cfft_sR_f32_len256;
+        S3 = & arm_cfft_sR_f32_len256;
         break;
     case 512:
-        S = & arm_cfft_sR_f32_len512;
+        S1 = & arm_cfft_sR_f32_len512;
+        S2 = & arm_cfft_sR_f32_len512;
+        S3 = & arm_cfft_sR_f32_len512;
         break;
     case 1024:
-        S = & arm_cfft_sR_f32_len1024;
+        S1 = & arm_cfft_sR_f32_len1024;
+        S2 = & arm_cfft_sR_f32_len1024;
+        S3 = & arm_cfft_sR_f32_len1024;
         break;
     case 2048:
-        S = & arm_cfft_sR_f32_len2048;
+        S1 = & arm_cfft_sR_f32_len2048;
+        S2 = & arm_cfft_sR_f32_len2048;
+        S3 = & arm_cfft_sR_f32_len2048;
         break;
     case 4096:
-        S = & arm_cfft_sR_f32_len4096;
+        S1 = & arm_cfft_sR_f32_len4096;
+        S2 = & arm_cfft_sR_f32_len4096;
+        S3 = & arm_cfft_sR_f32_len4096;
         break;
     }
     float maxValue = 0.0f;
@@ -120,9 +139,9 @@
         {            
             // Run FFT on sample data.
             //arm_cfft_radix2_f32(arm_cfft_radix2_instance_f32*S, samples);
-            arm_cfft_f32(S, samples, 0, 1);
-            arm_cfft_f32(S, samples2, 0, 1);
-            arm_cfft_f32(S, samples3, 0, 1);
+            arm_cfft_f32(S1, samples, 0, 1);
+            arm_cfft_f32(S2, samples2, 0, 1);
+            arm_cfft_f32(S3, samples3, 0, 1);
            samples[0]=0;
            samples2[0]=0;
            samples3[0]=0;
@@ -146,7 +165,9 @@
             arm_max_f32(magnitudes3, FFT_SIZE, &maxValue3, &testIndex3);
             pc.printf("     MAX value at magnitudes 1[%d] : %+8.2f\r\n", testIndex, maxValue);//Я НЯШКА А АНЯ ВЛАСЮК КОЗА:DDDDDDDDDDDDD
             pc.printf("     MAX value at magnitudes 2[%d] : %+8.2f\r\n", testIndex2, maxValue2);
-            pc.printf("     MAX value at magnitudes 3[%d] : %+8.2f\r\n", testIndex3, maxValue3);
+            pc.printf("     MAX value at magnitudes 3[%d] : %+8.2f\r\n", testIndex2, maxValue3);
+            // Wait for user confirmation to restart audio sampling.
+            //pc.getc();
             
             double delta_t = 0;
             if ((testIndex < testIndex2) and (testIndex < testIndex3) and (testIndex2 < testIndex3))
@@ -164,11 +185,8 @@
             double fi = asin(330*delta_t/0.33);
             pc.printf("     Angle is  : %+8.2f\r\n", fi);
             
-            // Wait for user confirmation to restart audio sampling.
-            //pc.getc();
             wait(1);
             samplingBegin();
         }
     }
-}
-
+}
\ No newline at end of file