Elektronikprojekt Grupp 13 / Mbed OS test_fft_grp13

Dependencies:   mbed-dsp

Fork of mbed-os-example-blinky by Elektronikprojekt Grupp 13

Committer:
deeza
Date:
Mon Apr 10 11:12:38 2017 +0000
Revision:
59:2cd4e73320cb
Parent:
58:afa7b146b6bf
Child:
60:a83a5a34050b
j

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jonathan Austin 0:2757d7abb7d9 1 #include "mbed.h"
deeza 59:2cd4e73320cb 2 #include "arm_math.h"
deeza 59:2cd4e73320cb 3 #include "arm_const_structs.h"
deeza 44:7f2c1e8d0761 4
deeza 55:360b5bcdf9a7 5 const int FFT_SIZE = 32;
deeza 55:360b5bcdf9a7 6 int sampleCounter;
KlaraBengtsson 58:afa7b146b6bf 7 float samples[FFT_SIZE*2];
KlaraBengtsson 58:afa7b146b6bf 8 float magnitudes[FFT_SIZE];
deeza 59:2cd4e73320cb 9 //int SAMPLE_RATE_HZ = 10000;
deeza 59:2cd4e73320cb 10
deeza 59:2cd4e73320cb 11 //static const float testData[FFT_SIZE/2]; //vår test data
deeza 59:2cd4e73320cb 12 float testData = {10, 20, 30, 40, 50, 60, 70, 80, 10, 20, 30, 40, 50, 60, 70, 80,10, 20, 30, 40, 50, 60, 70, 80, 10, 20, 30, 40, 50, 60, 70, 80};
deeza 54:fd99c80c68da 13
deeza 54:fd99c80c68da 14 void samplingBegin(){
deeza 55:360b5bcdf9a7 15 sampleCounter = 0;
deeza 59:2cd4e73320cb 16 //sätt hårdvaru inställningar här om det behövs
deeza 54:fd99c80c68da 17 }
deeza 54:fd99c80c68da 18
deeza 55:360b5bcdf9a7 19 void samplingCallback() {
deeza 59:2cd4e73320cb 20 //läs data
deeza 59:2cd4e73320cb 21 samples[sampleCounter] = *testData[sampleCounter];
deeza 55:360b5bcdf9a7 22 // sätter imaginär till 0
deeza 55:360b5bcdf9a7 23 samples[sampleCounter + 1] = 0.0;
deeza 55:360b5bcdf9a7 24 sampleCounter += 2;
deeza 55:360b5bcdf9a7 25 if (sampleCounter >= FFT_SIZE *2 ) {
deeza 55:360b5bcdf9a7 26 //här är sampling klar, buffert är full
deeza 59:2cd4e73320cb 27 //skriv hårdvaru kod här
deeza 55:360b5bcdf9a7 28 }
deeza 55:360b5bcdf9a7 29
deeza 54:fd99c80c68da 30 bool samplingIsDone() {
deeza 59:2cd4e73320cb 31 return (sampleCounter >= FFT_SIZE*2);
deeza 54:fd99c80c68da 32 }
deeza 54:fd99c80c68da 33
Jonathan Austin 1:846c97078558 34 // main() runs in its own thread in the OS
KlaraBengtsson 57:d15ff81fbeeb 35 int main() {
KlaraBengtsson 57:d15ff81fbeeb 36
KlaraBengtsson 57:d15ff81fbeeb 37 samplingBegin();
KlaraBengtsson 57:d15ff81fbeeb 38
deeza 59:2cd4e73320cb 39 S = & arm_cfft_sR_f32_len32;
KlaraBengtsson 57:d15ff81fbeeb 40
KlaraBengtsson 57:d15ff81fbeeb 41
KlaraBengtsson 57:d15ff81fbeeb 42
KlaraBengtsson 57:d15ff81fbeeb 43 while(1) {
KlaraBengtsson 57:d15ff81fbeeb 44 if(samplingIsDone()){
KlaraBengtsson 57:d15ff81fbeeb 45 arm_cfft_f32(S,samples,0,1);
KlaraBengtsson 57:d15ff81fbeeb 46 arm_cmplx_mag_f32(samples,magnitudes,FFT_SIZE);
KlaraBengtsson 57:d15ff81fbeeb 47 samplingBegin();
KlaraBengtsson 57:d15ff81fbeeb 48 }
KlaraBengtsson 57:d15ff81fbeeb 49
NicklasNp 38:0eceb5feddc4 50 }