Advertisement
Guest User

Untitled

a guest
Dec 8th, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. float Functions::AM(int t)
  2. {
  3.  
  4.  
  5.  
  6. return (1 + kAM*First(t))*sin(2 * M_PI*fm*t);
  7. }
  8.  
  9. float Functions::PM(int t)
  10. {
  11.  
  12.  
  13.  
  14. return sin(2 * M_PI*fm*t + kPM*First(t));
  15.  
  16. }
  17.  
  18.  
  19. ////////////////////////////////w innej funkcji
  20. case 4: //AM
  21. for (int t = 0; t < N; t++)
  22. {
  23. xAxis[t] = AM(t);
  24. }
  25. break;
  26. case 5: //PM
  27. for (int t = 0; t < N; t++)
  28. {
  29. xAxis[t] = PM(t);
  30. }
  31. break;
  32. }
  33. }
  34.  
  35. ///////////////////////////////////////
  36. void Functions::Power_Spectrum()
  37. {
  38. float SumA = 0, SumB = 0, a, b;
  39. float max = 0;
  40. float *temp = new float[N];
  41. for (int n = 0; n < N; n++)
  42. {
  43. temp[n] = xAxis[n];
  44. if (temp[n]>max)
  45. max = temp[n];
  46. }
  47. yAxis = new float[N];
  48. for (int k = 0; k < N; k++)
  49. {
  50. SumA = SumB = 0;
  51. for (int n = 0; n < N; n++)
  52. {
  53. a = cos((2 * M_PI*n*k) / N);
  54. b = sin((2 * M_PI*n*k) / N);
  55. SumA += temp[n] * a;
  56. SumB += temp[n] * b;
  57. }
  58. xAxis[k] = (SumA*SumA) + (SumB*SumB);
  59. xAxis[k] = 10 * log10f(xAxis[k]);
  60. xAxis[k] = xAxis[k] - max;
  61. yAxis[k] = (float)k*((float)fs / (float)N);
  62. }
  63. delete(temp);
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement