Guest User

Untitled

a guest
May 21st, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. #include <math.h>
  2.  
  3. #define LEN 500 // duzina vektora
  4. #define SR 2000 // sample rate - frekvencija odabiranja
  5.  
  6. #define F1 11 // frekvencija prvog signala
  7. #define F2 876 // frekvencija drugog signala
  8. #define AMPL 1023 // amplituda signala
  9. #define _2PI 6.28
  10.  
  11. int vektor[LEN]; // tip int zbog zahteva da bude bipolarni ADC
  12.  
  13. void generisi_signal() {
  14. int i;
  15.  
  16. for (i=0; i<LEN; i++) { // punim niz od pocetka do kraja
  17. vektor[i] = AMPL * sin(_2PI*i*(float)F1/(float)SR);
  18. vektor[i] += AMPL * sin(_2PI*i*(float)F2/(float)SR);
  19. }
  20. }
  21.  
  22. int min(int v[]) { // trazi minimum signala
  23. int i;
  24. int min = v[0];
  25. for (i=1; i<LEN; i++) { // punim niz od pocetka do kraja
  26. if (min>v[i]) min=v[i];
  27. }
  28. return min;
  29. }
  30.  
  31. int max(int v[]) {
  32. int i;
  33. int max = v[0];
  34. for (i=1; i<LEN; i++) { // punim niz od pocetka do kraja
  35. if (max<v[i]) max=v[i];
  36. }
  37. return max;
  38. }
  39.  
  40. int srvr(int v[]) {
  41. // xsr = (x1+x2+x3+...+xn)/n
  42. int i;
  43. long sum=0;
  44. for (i=0; i<LEN; i++) { // punim niz od pocetka do kraja
  45. sum+=v[i];
  46. }
  47. return (int)((float)sum/(float)(LEN));
  48. }
  49.  
  50. float rms(int v[]) {
  51. // xrms = sqrt ((x1^2+x2^2+x3^2+...+xn^2)/n)
  52. // RMS kod sinusnog signala je max/sqrt(2)
  53. int i;
  54. long sum=0;
  55. for (i=0; i<LEN; i++) { // punim niz od pocetka do kraja
  56. sum += pow(v[i],2);
  57. }
  58. return sqrt(sum/(float)LEN);
  59. }
  60.  
  61. void _ma (int v[], int taps) {
  62. int i, j;
  63. long sum;
  64. for (i=taps; i<LEN; i++) {
  65. sum = 0;
  66. for (j=i-taps; j<i; j++) {
  67. sum += v[j];
  68. }
  69. v[i-taps]=(int)(sum/(float)taps);
  70. }
  71. }
  72.  
  73. int main(void) {
  74. int mn, mx, sr, rm;
  75.  
  76. generisi_signal();
  77.  
  78. mn = min(vektor);
  79. mx = max(vektor);
  80. sr = srvr(vektor);
  81. rm = rms(vektor);
  82.  
  83. _ma(vektor, 25);
  84.  
  85. while (1);
  86. }
Add Comment
Please, Sign In to add comment