Elektronikprojekt Grupp 13 / Mbed OS test_fft_grp13

Dependencies:   mbed-dsp

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

Committer:
deeza
Date:
Wed Apr 05 14:06:32 2017 +0000
Revision:
51:837137ab83ed
Parent:
50:8ce5ed8e208b
Child:
52:d5c59769e1de
fft

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jonathan Austin 0:2757d7abb7d9 1 #include "mbed.h"
deeza 50:8ce5ed8e208b 2 #include "complex.h"
deeza 50:8ce5ed8e208b 3 #include "fft.h"
Jonathan Austin 0:2757d7abb7d9 4
deeza 51:837137ab83ed 5 Serial pc(USBTX, USBRX);
deeza 51:837137ab83ed 6
Jonathan Austin 0:2757d7abb7d9 7 DigitalOut led1(LED1);
Jonathan Austin 0:2757d7abb7d9 8
deeza 44:7f2c1e8d0761 9 // State machine
deeza 44:7f2c1e8d0761 10 int STATE;
deeza 47:b9abb45fde85 11 //const int NONE = -1;
deeza 48:d147eba868c8 12 const int IDLE = 0;
deeza 48:d147eba868c8 13 const int LISTEN = 1;
deeza 48:d147eba868c8 14 const int CALC = 2;
deeza 48:d147eba868c8 15 const int SEND = 3;
deeza 49:2632e3e89576 16 const int CALC_ERROR = 4;
deeza 47:b9abb45fde85 17 //const int WAIT = 9;
deeza 44:7f2c1e8d0761 18
Jonathan Austin 1:846c97078558 19 // main() runs in its own thread in the OS
Jonathan Austin 0:2757d7abb7d9 20 int main() {
deeza 50:8ce5ed8e208b 21
deeza 50:8ce5ed8e208b 22 /*
deeza 48:d147eba868c8 23 STATE = IDLE;
Jonathan Austin 0:2757d7abb7d9 24 while (true) {
deeza 44:7f2c1e8d0761 25 switch (STATE) {
deeza 44:7f2c1e8d0761 26
deeza 48:d147eba868c8 27 case IDLE:
deeza 46:5ad0d78d045e 28 //code here
deeza 48:d147eba868c8 29 STATE = LISTEN; //next state
deeza 44:7f2c1e8d0761 30 break;
deeza 44:7f2c1e8d0761 31
deeza 48:d147eba868c8 32 case LISTEN:
deeza 48:d147eba868c8 33 //code here
deeza 48:d147eba868c8 34 break;
deeza 48:d147eba868c8 35
deeza 48:d147eba868c8 36 case CALC:
deeza 44:7f2c1e8d0761 37 //code here
deeza 44:7f2c1e8d0761 38 break;
deeza 46:5ad0d78d045e 39
deeza 49:2632e3e89576 40 case CALC_ERROR:
deeza 46:5ad0d78d045e 41 //code here
deeza 46:5ad0d78d045e 42 break;
deeza 44:7f2c1e8d0761 43
deeza 46:5ad0d78d045e 44 case SEND:
deeza 46:5ad0d78d045e 45 // code here
deeza 50:8ce5ed8e208b 46 break;
deeza 44:7f2c1e8d0761 47 }
deeza 50:8ce5ed8e208b 48 }*/
deeza 50:8ce5ed8e208b 49
deeza 50:8ce5ed8e208b 50 //testar complexa tal addering, verkar funka.
deeza 50:8ce5ed8e208b 51 complex c1 = complex(1,2);
deeza 50:8ce5ed8e208b 52 complex c2 = complex(2,3);
deeza 50:8ce5ed8e208b 53 complex c3 = c1 + c2;
deeza 51:837137ab83ed 54 pc.printf("hello \n");
deeza 51:837137ab83ed 55
deeza 51:837137ab83ed 56 //...Inside your signal processing function
deeza 51:837137ab83ed 57 // Allocate memory for signal data
deeza 51:837137ab83ed 58 complex *pSignal = new complex[1024];
deeza 51:837137ab83ed 59 //...Fill signal array with data
deeza 51:837137ab83ed 60 // Apply FFT
deeza 51:837137ab83ed 61 CFFT::Forward(pSignal, 1024);
deeza 51:837137ab83ed 62 //...Utilize transform result
deeza 51:837137ab83ed 63 // Free memory
deeza 51:837137ab83ed 64 delete[] pSignal;
deeza 51:837137ab83ed 65
deeza 51:837137ab83ed 66
deeza 51:837137ab83ed 67
Jonathan Austin 0:2757d7abb7d9 68 }
deeza 50:8ce5ed8e208b 69
deeza 50:8ce5ed8e208b 70
KlaraBengtsson 39:c92c150c0dd2 71 //Calculating distanse between sound and camera
KlaraBengtsson 37:3bc968f47d9b 72 double calcDis(double t, double v){
KlaraBengtsson 37:3bc968f47d9b 73 double s = t*v;
KlaraBengtsson 37:3bc968f47d9b 74 return s;
KlaraBengtsson 37:3bc968f47d9b 75
KlaraBengtsson 37:3bc968f47d9b 76 }
KlaraBengtsson 39:c92c150c0dd2 77 //Calculating angle in radians, D distanse between mic1 and mic2
KlaraBengtsson 37:3bc968f47d9b 78 double calcAng(double s, double D){
KlaraBengtsson 37:3bc968f47d9b 79 double ang = asin(s/D);
KlaraBengtsson 37:3bc968f47d9b 80 return ang;
KlaraBengtsson 37:3bc968f47d9b 81 }
KlaraBengtsson 37:3bc968f47d9b 82
NicklasNp 38:0eceb5feddc4 83 //Presuming the input value is temp as a nuber and humidity as procent
NicklasNp 38:0eceb5feddc4 84 double speedofsound(double temp, double hum){
NicklasNp 38:0eceb5feddc4 85 //Calculations done in Matlab
NicklasNp 43:d3f8e93d85f0 86
NicklasNp 41:b34a65881a45 87 double speed = 331.1190 + 0.6016*temp + 0.0126*hum;
NicklasNp 43:d3f8e93d85f0 88
NicklasNp 38:0eceb5feddc4 89 return speed;
NicklasNp 38:0eceb5feddc4 90 }