SHARE
TWEET

Untitled

a guest Dec 9th, 2019 85 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --zad1
  2. array = np.genfromtxt('spots.txt')
  3. print(array)
  4.  
  5.  
  6. w = 1
  7. n = len(array)
  8. x = range(0,len(array))
  9.  
  10. fig = plt.figure(figsize=(15, 6), dpi=80)  
  11. ax = fig.add_subplot(121)
  12. ax.plot(x, array)
  13.  
  14.  
  15. signal1 = fft(array)
  16. # sygnal w dziedzinie czestotliwosci
  17. signal1 = abs(signal1)        
  18. # modul sygnalu
  19.  
  20. #freqs = range(len(array))
  21. #freqs = range(0,w,int(w/n))
  22. freqs = np.arange(0,w,w/n)
  23. signal1 = abs(signal1) / len(array) * 2
  24.    
  25. ax = fig.add_subplot(122)
  26. ymax = max(signal1)
  27.    
  28.     #ymax = A
  29. if (ymax > 3.0):
  30.     ax.set_ylim([0.0,ymax])
  31. else:
  32.     ax.set_ylim([0.0,3.0])
  33. ax.set_ylim([0,ymax])  
  34.        
  35. plt.stem(freqs, signal1, '-*')
  36. ax.grid()
  37.  
  38. plt.show()
  39.  
  40. np.fft.fft(array)
  41.  
  42. --zad2
  43.  
  44. # Wyrysuj sygnał
  45. # Zdefiniuj funckję
  46. def create_signal(A = 1, A2=1, LP = 1, w = 40, f = 2.0):
  47.    
  48.     T = 1.0/f    
  49.     # Okres sygnalu [s] (jak długo trwa jeden przebieg sinusa)
  50.  
  51.     TW = 1.0/w        
  52.     # Okres probkowania [s] (co ile sekund pobieramy próbkę)
  53.  
  54.     t = np.arange(0, LP*T, TW)
  55.     # generujemy momenty, w których pobieramy próbki
  56.  
  57.     n = len(t)
  58.  
  59.  
  60.  
  61.     FUNC = lambda t :  A*sin(2*pi*t) + A2*sin(4*pi*t)
  62.     # def. funkcji (tutaj sinus)
  63.  
  64.     signal = FUNC(t)                
  65.     # funkcja sprobkowana
  66.  
  67.     fig = plt.figure(figsize=(15, 6), dpi=80)  
  68.     ax = fig.add_subplot(121)
  69.     ## --- POMOCNICZY SYGNAL
  70.     base_t = np.arange(0, LP*T, 1.0/200.0)
  71.     base_signal = FUNC(base_t)
  72.     print(len(base_signal))
  73.     print(len(base_t))
  74.     ax.plot(base_t, base_signal, linestyle='-', color='red')
  75.     ax.set_ylim([min(base_signal), max(base_signal)])
  76.     ## ---
  77.     ax.plot(t, signal, 'o')
  78.     signal1 = fft(signal)
  79.     # sygnal w dziedzinie czestotliwosci
  80.     signal1 = abs(signal1) / len(signal) * 2
  81.     # modul sygnalu
  82.  
  83.     #TW
  84.     freqs = np.arange(0, w, w / n) # range HZ
  85.  
  86.  
  87.     ax = fig.add_subplot(122)
  88.  
  89.     #ax.set_ylim([0.0, A])
  90.     ymax = max(signal1)
  91.     if (ymax > 3.0):
  92.         ax.set_ylim([0.0,ymax])
  93.     else:
  94.         ax.set_ylim([0.0,3.0])
  95.     plt.stem(freqs, signal1, '-*')
  96.    
  97.    
  98.     plt.xlabel("f[Hz]")
  99.     plt.ylabel("A[j]")
  100.    
  101.     plt.show()
  102.    
  103. create_signal(f=1.0, w=20)
  104.  
  105. --po usunieciu
  106. def create_signal(A = 1, A2=1, LP = 1, w = 40, f = 2.0):
  107.    
  108.     T = 1.0/f    
  109.     # Okres sygnalu [s] (jak długo trwa jeden przebieg sinusa)
  110.  
  111.     TW = 1.0/w        
  112.     # Okres probkowania [s] (co ile sekund pobieramy próbkę)
  113.  
  114.     t = np.arange(0, LP*T, TW)
  115.     # generujemy momenty, w których pobieramy próbki
  116.  
  117.     n = len(t)
  118.  
  119.  
  120.  
  121.     FUNC = lambda t :  A*sin(2*pi*t) + A2*sin(4*pi*t)
  122.     # def. funkcji (tutaj sinus)
  123.  
  124.     signal = FUNC(t)                
  125.     # funkcja sprobkowana
  126.    
  127.     signal = fft(signal)
  128.    
  129.     #print(signal)
  130.    
  131.     signal[2] = 0
  132.    
  133.     signal = ifft(signal)
  134.  
  135.    
  136.     fig = plt.figure(figsize=(15, 6), dpi=80)  
  137.     ax = fig.add_subplot(121)
  138.     ## --- POMOCNICZY SYGNAL
  139.     base_t = np.arange(0, LP*T, 1.0/200.0)
  140.     base_signal = FUNC(base_t)
  141.     print(len(base_signal))
  142.     print(len(base_t))
  143.     ax.plot(base_t, base_signal, linestyle='-', color='red')
  144.     ax.set_ylim([min(base_signal), max(base_signal)])
  145.     ## ---
  146.     ax.plot(t, signal, 'o')
  147.     signal1 = fft(signal)
  148.     # sygnal w dziedzinie czestotliwosci
  149.     signal1 = abs(signal1) / len(signal) * 2
  150.     # modul sygnalu
  151.  
  152.     #TW
  153.     freqs = np.arange(0, w, w / n) # range HZ
  154.  
  155.  
  156.     ax = fig.add_subplot(122)
  157.  
  158.     #ax.set_ylim([0.0, A])
  159.     ymax = max(signal1)
  160.     if (ymax > 3.0):
  161.         ax.set_ylim([0.0,ymax])
  162.     else:
  163.         ax.set_ylim([0.0,3.0])
  164.     plt.stem(freqs, signal1, '-*')
  165.    
  166.    
  167.     plt.xlabel("f[Hz]")
  168.     plt.ylabel("A[j]")
  169.    
  170.     plt.show()
  171.    
  172. create_signal(f=1.0, w=20)
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top