Advertisement
Guest User

Rymol

a guest
Nov 24th, 2014
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.76 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include "laborki_2cfg.h"
  4. #include "utility.h"
  5. #include "DSPF_sp_cfftr2_dit.h"
  6. #pragma DATA_ALIGN(sygnal,8)
  7. #pragma DATA_ALIGN(okno_out,8)
  8. #pragma DATA_ALIGN(w,8)
  9. #define M_PI 3.14159265358979323846 /* pi */
  10.  
  11.  
  12.  
  13. int probka;
  14. short probkap;
  15. short probkal;
  16.  
  17.  
  18. int Nmaska = 1025;
  19. int n;
  20. int e;
  21. int c;
  22. int i;
  23. int k;
  24. int N = 1024;
  25. int tmp = 0;
  26. float sygnal[2048] = {0};
  27. float okno_in[2048]={0};
  28. float okno_out[2048]={0};
  29. float fft_hamming[2048]={0};
  30. float wynikfft[1024];
  31. double multiplier;
  32.  
  33. float x[2048];
  34. float w[1024];
  35.  
  36. void main()
  37. {
  38. n = 0;
  39. e = 0;
  40.  
  41. MCBSP_enableRcv(hMcbsp1);
  42. MCBSP_enableXmt(hMcbsp1);
  43.  
  44. tw_genr2fft(w, N); // Generate coefficient table
  45. bit_rev(w, N>>1); // Bit-reverse coefficient table
  46.  
  47. IER |= 0x2000; //odblokowanie przerwania
  48.  
  49. }
  50.  
  51. void przerwanie_rcv()
  52. {
  53. probka = MCBSP_read(hMcbsp1);
  54. probkap = (short)(probka);
  55.  
  56. if(e) {
  57. e--;
  58. return;
  59. }
  60.  
  61. sygnal[n]= probkap;//składanie sygnału
  62. okno_in[n]=probkap;//kopia sygnału do oknowania
  63. n++;
  64. sygnal[n]=0;
  65. okno_in[n]=0;
  66.  
  67. if(n==2047)
  68. {
  69. e=2;
  70.  
  71. DSPF_sp_cfftr2_dit(sygnal, w, N);//fft bez okna
  72. DSPF_sp_cfftr2_dit(okno_out, w, N); //fft po oknie
  73. bit_rev(sygnal, 2*N>>1); // Bit-reverse coefficient table
  74. bit_rev(okno_out, 2*N>>1);
  75.  
  76. for(i=0; i<1024; i++)
  77. {
  78. wynikfft[i]=sqrtf(pow(sygnal[2*i],2) + pow(sygnal[2*i+1],2));
  79. fft_hamming[i]=sqrtf(pow(okno_out[2*i],2) + pow(okno_out[2*i+1],2));
  80. }
  81. i=0;
  82.  
  83.  
  84. //Dodawanie Okna Hanny
  85. for(k = 0; k < 2048; k++)
  86. {
  87. multiplier = 1 - cos(2*M_PI*k/2047);
  88. okno_out[k] = multiplier * okno_in[k];
  89. okno_out[k+1] = multiplier * okno_in[k+1];
  90. }
  91. }
  92.  
  93. n++;
  94. n&=2047;
  95.  
  96. MCBSP_write(hMcbsp1, probka);
  97.  
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement