Advertisement
Guest User

prog

a guest
May 27th, 2015
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.54 KB | None | 0 0
  1. //ez egy digitális szûrõ-t valósít meg, ami leképez egy színuszt a beadott frekivel majd a megvadott fokszámmal csinál egy szûrõt digitálisan és a bemeneti szinuszt átkonvertálja és ezek amplitudóját irja ki fájlba.
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <math.h>
  6.  
  7. void adatbevitel();
  8. void feltolt();
  9. void kiiratas();
  10. void dsp();
  11.  
  12. double be[1024]= {0}, ki[1024]= {0}, N=10.0 ;
  13. double A1=50.0, A2=50.0, f1=10.0, f2=200.0, fs=1000.0;
  14. int H=1000;
  15.  
  16. FILE *pFile;
  17.  
  18. int main()
  19. {
  20. adatbevitel();
  21.  
  22. pFile = fopen("DSP_Amplitudo.txt","w+");
  23.  
  24. feltolt();
  25. dsp();
  26. kiiratas();
  27.  
  28. fclose(pFile);
  29. return 0;
  30. }
  31.  
  32. void adatbevitel()
  33. {
  34. float kulcs=0, freki=0;
  35. int hurokN = 1, hurokfreki = 1;
  36.  
  37. printf("\n\t---Kerem adja meg a kodolashoz szukseges fokszamot es frekvenciat!---\n");
  38. printf("\nFokszamot: ");
  39. while(hurokN)
  40. {
  41. scanf("%f",&kulcs);
  42. fflush(stdin);
  43. if ((kulcs>100 || kulcs <1))
  44. {
  45. if(kulcs<=0) printf("\n\t--- Nagyobb fokszamot adjon meg!---\n");
  46. else printf("\n\t---Kisebb fokszamot adjon meg!---\n");
  47. hurokN = 1;
  48. }
  49. else
  50. {
  51. N=kulcs;
  52. hurokN = 0;
  53. printf("\n\t---Sikeres adatbevitel!---\n");
  54. }
  55.  
  56.  
  57. }
  58.  
  59. printf("\nMost a frekvenciat: ");
  60. while(hurokfreki)
  61. {
  62. scanf("%f",&freki);
  63. fflush(stdin);
  64. if ((freki>100 || freki <1))
  65. {
  66. if(freki<=0) printf("\n\t---Nagyobb frekvenciat adjon meg!---\n");
  67. else printf("\n\t---Kisebb frekvenciat adjon meg!---\n");
  68. hurokfreki = 1;
  69. }
  70. else
  71. {
  72. f1=freki;
  73. hurokfreki = 0;
  74. printf("\n\t---Sikeres adatbevitel!---\n");
  75. }
  76. }
  77.  
  78.  
  79. }
  80.  
  81. void feltolt()
  82. {
  83. int i=0;
  84. for(i=0; i<H; i++)
  85. {
  86. be[i] = A1 * sin(2 * M_PI * f1 * i / fs) + A2 * sin(2 * M_PI * f2 * i / fs); //szinuszok kiszámolása
  87. }
  88. }
  89.  
  90. void dsp()
  91. {
  92. int k, b;
  93. for(k=10; k<H; k++)
  94. {
  95. ki[k] = 0;
  96. for(b=0; b<N; b++)
  97. {
  98. ki[k] += be[k-b] / N;
  99. }
  100. }
  101. }
  102.  
  103.  
  104. void kiiratas()
  105. {
  106. int i=0;
  107. fprintf(pFile, "Kimeneti es bemeneti fuggveny amplitudo ertekei:\n");
  108. for(i=0; i<H; i++)
  109. {
  110. fprintf(pFile, "%3.4f\t%3.4f\n", ki[i], be[i]);
  111. }
  112. printf("\nKimeneti es bemeneti fuggveny amplitudo ertekei\naz alabbi fajlba ki lettek irva:\n\n");
  113. printf("DSP_Amplitudo.txt\n");
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement