Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed-dsp
Fork of mbed-os-example-blinky by
main.cpp@51:837137ab83ed, 2017-04-05 (annotated)
- 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?
User | Revision | Line number | New 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 | } |