Elektronikprojekt Grupp 13 / Mbed OS test_fft_grp13

Dependencies:   mbed-dsp

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

Committer:
KlaraBengtsson
Date:
Mon Apr 10 14:07:43 2017 +0000
Revision:
66:866bf1606317
Parent:
64:92745a08320c
Child:
67:8de1eb1c4974
K

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
KlaraBengtsson 66:866bf1606317 5
KlaraBengtsson 66:866bf1606317 6 q15 testData1[] = {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};
KlaraBengtsson 66:866bf1606317 7 q15 testData2[] = {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};
KlaraBengtsson 66:866bf1606317 8 q31 finalData[];
KlaraBengtsson 66:866bf1606317 9 int len1 = length(testData1);
KlaraBengtsson 66:866bf1606317 10 int len2 = length(testData2);
KlaraBengtsson 66:866bf1606317 11 q15 *p1 = &testData1(0);
KlaraBengtsson 66:866bf1606317 12 q15 *p2 = &testData2(0);
KlaraBengtsson 66:866bf1606317 13 q15 *p3 = &finalData(0);
KlaraBengtsson 66:866bf1606317 14
KlaraBengtsson 66:866bf1606317 15 arm_correlate_q15(pi,len1,p2,len2,p3);
KlaraBengtsson 66:866bf1606317 16
KlaraBengtsson 66:866bf1606317 17
KlaraBengtsson 66:866bf1606317 18 /*
deeza 55:360b5bcdf9a7 19 const int FFT_SIZE = 32;
deeza 55:360b5bcdf9a7 20 int sampleCounter;
KlaraBengtsson 58:afa7b146b6bf 21 float samples[FFT_SIZE*2];
KlaraBengtsson 58:afa7b146b6bf 22 float magnitudes[FFT_SIZE];
KlaraBengtsson 64:92745a08320c 23 const static arm_cfft_instance_f32 *S;
KlaraBengtsson 64:92745a08320c 24
deeza 59:2cd4e73320cb 25 //int SAMPLE_RATE_HZ = 10000;
deeza 59:2cd4e73320cb 26
KlaraBengtsson 62:1e5508bb8f16 27 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 28
deeza 54:fd99c80c68da 29 void samplingBegin(){
deeza 55:360b5bcdf9a7 30 sampleCounter = 0;
deeza 59:2cd4e73320cb 31 //sätt hårdvaru inställningar här om det behövs
deeza 54:fd99c80c68da 32 }
deeza 54:fd99c80c68da 33
deeza 55:360b5bcdf9a7 34 void samplingCallback() {
deeza 59:2cd4e73320cb 35 //läs data
deeza 60:a83a5a34050b 36 samples[sampleCounter] = testData[sampleCounter];
deeza 55:360b5bcdf9a7 37 // sätter imaginär till 0
deeza 55:360b5bcdf9a7 38 samples[sampleCounter + 1] = 0.0;
deeza 55:360b5bcdf9a7 39 sampleCounter += 2;
deeza 55:360b5bcdf9a7 40 if (sampleCounter >= FFT_SIZE *2 ) {
deeza 55:360b5bcdf9a7 41 //här är sampling klar, buffert är full
KlaraBengtsson 63:f2972bba6f01 42 //skriv hårdvaru kod här
KlaraBengtsson 63:f2972bba6f01 43 }
deeza 55:360b5bcdf9a7 44 }
deeza 55:360b5bcdf9a7 45
deeza 54:fd99c80c68da 46 bool samplingIsDone() {
deeza 59:2cd4e73320cb 47 return (sampleCounter >= FFT_SIZE*2);
deeza 54:fd99c80c68da 48 }
deeza 54:fd99c80c68da 49
Jonathan Austin 1:846c97078558 50 // main() runs in its own thread in the OS
KlaraBengtsson 57:d15ff81fbeeb 51 int main() {
KlaraBengtsson 57:d15ff81fbeeb 52
KlaraBengtsson 64:92745a08320c 53 samplingBegin();
KlaraBengtsson 57:d15ff81fbeeb 54
KlaraBengtsson 64:92745a08320c 55 S = & arm_cfft_sR_f32_len32;
KlaraBengtsson 57:d15ff81fbeeb 56
KlaraBengtsson 57:d15ff81fbeeb 57
KlaraBengtsson 57:d15ff81fbeeb 58
KlaraBengtsson 64:92745a08320c 59 while(1) {
KlaraBengtsson 64:92745a08320c 60 if(samplingIsDone()){
KlaraBengtsson 64:92745a08320c 61 arm_cfft_f32(S,samples,0,1);
KlaraBengtsson 64:92745a08320c 62 arm_cmplx_mag_f32(samples,magnitudes,FFT_SIZE);
KlaraBengtsson 64:92745a08320c 63 samplingBegin();
KlaraBengtsson 64:92745a08320c 64 }
KlaraBengtsson 64:92745a08320c 65
KlaraBengtsson 57:d15ff81fbeeb 66 }
KlaraBengtsson 66:866bf1606317 67 }
KlaraBengtsson 66:866bf1606317 68 */