Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.89 KB | None | 0 0
  1. # faza = 0
  2. # Wyrysuj sygnał
  3. # Zdefiniuj funckję
  4. def create_signal(A = 1, LP = 1, w = 40, f = 2.0):
  5.  
  6. T = 1.0/f
  7. # Okres sygnalu [s] (jak długo trwa jeden przebieg sinusa)
  8.  
  9. TW = 1.0/w
  10. # Okres probkowania [s] (co ile sekund pobieramy próbkę)
  11.  
  12. t = np.arange(0, LP*T, TW)
  13. # generujemy momenty, w których pobieramy próbki
  14.  
  15. n = len(t)
  16.  
  17.  
  18.  
  19. FUNC = lambda t : A*sin(2*pi*t*f)
  20. # def. funkcji (tutaj sinus)
  21.  
  22. signal = FUNC(t)
  23. # funkcja sprobkowana
  24.  
  25. fig = plt.figure(figsize=(15, 6), dpi=80)
  26. ax = fig.add_subplot(121)
  27. ## --- POMOCNICZY SYGNAL
  28. base_t = np.arange(0, LP*T, 1.0/200.0)
  29. base_signal = FUNC(base_t)
  30. print(len(base_signal))
  31. print(len(base_t))
  32. ax.plot(base_t, base_signal, linestyle='-', color='red')
  33. ax.set_ylim([min(base_signal), max(base_signal)])
  34. ## ---
  35. ax.plot(t, signal, 'o')
  36. signal1 = fft(signal)
  37. # sygnal w dziedzinie czestotliwosci
  38. signal1 = abs(signal1) / len(signal) * 2
  39. # modul sygnalu
  40.  
  41. #TW
  42. freqs = np.arange(0, w, w / n) # range HZ
  43.  
  44.  
  45. ax = fig.add_subplot(122)
  46.  
  47. #ax.set_ylim([0.0, A])
  48. ymax = max(signal1)
  49. if (ymax > 3.0):
  50. ax.set_ylim([0.0,ymax])
  51. else:
  52. ax.set_ylim([0.0,3.0])
  53. plt.stem(freqs, signal1, '-*')
  54.  
  55.  
  56. plt.xlabel("f[Hz]")
  57. plt.ylabel("A[j]")
  58.  
  59. plt.show()
  60.  
  61. create_signal(f=1.0, w=20)
  62.  
  63.  
  64. # faza = pi/4
  65. # Wyrysuj sygnał
  66. # Zdefiniuj funckję
  67. def create_signal(A = 1, LP = 1, w = 40, f = 2.0):
  68.  
  69. T = 1.0/f
  70. # Okres sygnalu [s] (jak długo trwa jeden przebieg sinusa)
  71.  
  72. TW = 1.0/w
  73. # Okres probkowania [s] (co ile sekund pobieramy próbkę)
  74.  
  75. t = np.arange(0, LP*T, TW)
  76. # generujemy momenty, w których pobieramy próbki
  77.  
  78. n = len(t)
  79.  
  80.  
  81.  
  82. FUNC = lambda t : A*sin(2*pi*t*f + pi/4)
  83. # def. funkcji (tutaj sinus)
  84.  
  85. signal = FUNC(t)
  86. # funkcja sprobkowana
  87.  
  88. fig = plt.figure(figsize=(15, 6), dpi=80)
  89. ax = fig.add_subplot(121)
  90. ## --- POMOCNICZY SYGNAL
  91. base_t = np.arange(0, LP*T, 1.0/200.0)
  92. base_signal = FUNC(base_t)
  93. print(len(base_signal))
  94. print(len(base_t))
  95. ax.plot(base_t, base_signal, linestyle='-', color='red')
  96. ax.set_ylim([min(base_signal), max(base_signal)])
  97. ## ---
  98. ax.plot(t, signal, 'o')
  99. signal1 = fft(signal)
  100. # sygnal w dziedzinie czestotliwosci
  101. signal1 = abs(signal1) / len(signal) * 2
  102. # modul sygnalu
  103.  
  104. #TW
  105. freqs = np.arange(0, w, w / n) # range HZ
  106.  
  107.  
  108. ax = fig.add_subplot(122)
  109.  
  110. #ax.set_ylim([0.0, A])
  111. ymax = max(signal1)
  112. if (ymax > 3.0):
  113. ax.set_ylim([0.0,ymax])
  114. else:
  115. ax.set_ylim([0.0,3.0])
  116. plt.stem(freqs, signal1, '-*')
  117.  
  118.  
  119. plt.xlabel("f[Hz]")
  120. plt.ylabel("A[j]")
  121.  
  122. plt.show()
  123.  
  124. create_signal(f=1.0, w=20)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement