Advertisement
Guest User

TD_Lab_04

a guest
Apr 8th, 2020
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.38 KB | None | 0 0
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3.  
  4. #EDCBA
  5. #44443
  6.  
  7. A=1.0
  8. fm=4 #Hz
  9. fn=400
  10. t=np.linspace(0,3,500)
  11.  
  12. def ton_prosty(t):
  13.     return A*np.sin(2*np.pi*fm*t)
  14.  
  15. def modulacja_amplitudy(t,kA):
  16.     return (kA*ton_prosty(t)+1)*np.cos(2*np.pi*fn*t)
  17.  
  18. def modulacja_fazy(t,kP):
  19.     return np.cos(2*np.pi*fn*t+kP*ton_prosty(t))
  20.  
  21. def rysuj(funkcja,nazwa):
  22.     plt.plot(funkcja)
  23.     plt.title(nazwa)
  24.     plt.show()
  25.  
  26. def Wspolczynnik_skretu_realny(n,N,k):
  27.     return np.cos(((2*np.pi)/N)*(-k*n))
  28.  
  29. def Wspolczynnik_skretu_urojony(n,N,k):
  30.     return np.sin(((2*np.pi)/N)*(-k*n))
  31.  
  32. def DFT(lista1,k):
  33.     suma_realna=0
  34.     suma_urojona=0
  35.     N=344
  36.     for n in range(0,N):
  37.         suma_realna = suma_realna + lista1[n]*Wspolczynnik_skretu_realny(n,N,k)
  38.     for n in range(0,N):
  39.         suma_urojona = suma_urojona + lista1[n]*Wspolczynnik_skretu_urojony(n,N,k)
  40.     return_list=[]
  41.     return_list.append(suma_realna)
  42.     return_list.append(suma_urojona)
  43.     return return_list
  44.  
  45. def Harmoniczne(lista):
  46.     lista_rzeczywista=[]
  47.     lista_urojona=[]
  48.     N=344
  49.     for k in range(0,N+1):
  50.         result_list=DFT(lista,k)
  51.         lista_rzeczywista.append(result_list[0])
  52.         lista_urojona.append(result_list[1])
  53.     module_list=[]
  54.     for i in range(0,len(lista_rzeczywista)):
  55.         module_list.append(np.sqrt(lista_rzeczywista[i]**2+lista_urojona[i]**2))
  56.     return module_list
  57.  
  58. def rysuj_bar(funkcja,nazwa,N=344):
  59.     plt.bar(np.arange(0,N+1,1),funkcja)
  60.     plt.title(nazwa)
  61.     plt.show()
  62.  
  63. #Zadanie 1
  64. def Zadanie1(kA,kP,przyklad):
  65.     #ton prosty
  66.     funkcja=ton_prosty(t)
  67.     rysuj(funkcja,przyklad+' Ton prosty')
  68.     #modulacja amplitudy
  69.     funkcja=modulacja_amplitudy(t,kA)
  70.     rysuj(funkcja,przyklad+' Modulacja amplitudy')
  71.     #modulacja fazy
  72.     funkcja=modulacja_fazy(t,kP)
  73.     rysuj(funkcja,przyklad+' Modulacja fazy')
  74.  
  75. Zadanie1(0.5,1,'a)')
  76. Zadanie1(5,np.pi/2,'b)')
  77. Zadanie1(44,35,'c)')
  78.  
  79. def Zadanie3(harmoniczne,przyklad,rodzaj):
  80.     maximum=-np.Infinity
  81.     minimum=np.Infinity
  82.     for iterator in harmoniczne:
  83.         if iterator>maximum:
  84.             maximum=iterator
  85.         if iterator<minimum:
  86.             minimum=iterator
  87.     print(przyklad,' ',rodzaj,' ',maximum-minimum)
  88.  
  89. #Zadanie 2
  90. def Zadanie2(kA,kP,przyklad):
  91.     #modulacja amplitudy
  92.     funkcja=modulacja_amplitudy(t,kA)
  93.     harmoniczne=Harmoniczne(funkcja)
  94.     for i in range(0,len(harmoniczne)):
  95.         harmoniczne[i]=harmoniczne[i]*2/344
  96.     for i in range(0,len(harmoniczne)):
  97.         harmoniczne[i]=10*np.log10(harmoniczne[i])
  98.     rysuj_bar(harmoniczne,przyklad+' Modulacja amplitudy')
  99.     Zadanie3(harmoniczne,przyklad,'Modulacja amplitudy')
  100.     #modulacja fazy
  101.     funkcja=modulacja_fazy(t,kP)
  102.     harmoniczne=Harmoniczne(funkcja)
  103.     for i in range(0,len(harmoniczne)):
  104.         harmoniczne[i]=harmoniczne[i]*2/344
  105.     for i in range(0,len(harmoniczne)):
  106.         harmoniczne[i]=10*np.log10(harmoniczne[i])
  107.     rysuj_bar(harmoniczne,przyklad+' Modulacja fazy')
  108.     Zadanie3(harmoniczne,przyklad,'Modulacja fazy')
  109.  
  110. Zadanie2(0.5,1,'a)')
  111. Zadanie2(5,np.pi/2,'b)')
  112. Zadanie2(44,35,'c)')
  113.  
  114. #Zadanie 3
  115. # a)   Modulacja amplitudy   23.283413725023895
  116. # a)   Modulacja fazy   27.95999470564255
  117. # b)   Modulacja amplitudy   25.246939051449687
  118. # b)   Modulacja fazy   24.514010102779224
  119. # c)   Modulacja amplitudy   27.854388333005993
  120. # c)   Modulacja fazy   20.383960790352184
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement