Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- import matplotlib.pyplot as plt
- #EDCBA
- #44443
- A=1.0
- fm=4 #Hz
- fn=400
- t=np.linspace(0,3,500)
- def ton_prosty(t):
- return A*np.sin(2*np.pi*fm*t)
- def modulacja_amplitudy(t,kA):
- return (kA*ton_prosty(t)+1)*np.cos(2*np.pi*fn*t)
- def modulacja_fazy(t,kP):
- return np.cos(2*np.pi*fn*t+kP*ton_prosty(t))
- def rysuj(funkcja,nazwa):
- plt.plot(funkcja)
- plt.title(nazwa)
- plt.show()
- def Wspolczynnik_skretu_realny(n,N,k):
- return np.cos(((2*np.pi)/N)*(-k*n))
- def Wspolczynnik_skretu_urojony(n,N,k):
- return np.sin(((2*np.pi)/N)*(-k*n))
- def DFT(lista1,k):
- suma_realna=0
- suma_urojona=0
- N=344
- for n in range(0,N):
- suma_realna = suma_realna + lista1[n]*Wspolczynnik_skretu_realny(n,N,k)
- for n in range(0,N):
- suma_urojona = suma_urojona + lista1[n]*Wspolczynnik_skretu_urojony(n,N,k)
- return_list=[]
- return_list.append(suma_realna)
- return_list.append(suma_urojona)
- return return_list
- def Harmoniczne(lista):
- lista_rzeczywista=[]
- lista_urojona=[]
- N=344
- for k in range(0,N+1):
- result_list=DFT(lista,k)
- lista_rzeczywista.append(result_list[0])
- lista_urojona.append(result_list[1])
- module_list=[]
- for i in range(0,len(lista_rzeczywista)):
- module_list.append(np.sqrt(lista_rzeczywista[i]**2+lista_urojona[i]**2))
- return module_list
- def rysuj_bar(funkcja,nazwa,N=344):
- plt.bar(np.arange(0,N+1,1),funkcja)
- plt.title(nazwa)
- plt.show()
- #Zadanie 1
- def Zadanie1(kA,kP,przyklad):
- #ton prosty
- funkcja=ton_prosty(t)
- rysuj(funkcja,przyklad+' Ton prosty')
- #modulacja amplitudy
- funkcja=modulacja_amplitudy(t,kA)
- rysuj(funkcja,przyklad+' Modulacja amplitudy')
- #modulacja fazy
- funkcja=modulacja_fazy(t,kP)
- rysuj(funkcja,przyklad+' Modulacja fazy')
- Zadanie1(0.5,1,'a)')
- Zadanie1(5,np.pi/2,'b)')
- Zadanie1(44,35,'c)')
- def Zadanie3(harmoniczne,przyklad,rodzaj):
- maximum=-np.Infinity
- minimum=np.Infinity
- for iterator in harmoniczne:
- if iterator>maximum:
- maximum=iterator
- if iterator<minimum:
- minimum=iterator
- print(przyklad,' ',rodzaj,' ',maximum-minimum)
- #Zadanie 2
- def Zadanie2(kA,kP,przyklad):
- #modulacja amplitudy
- funkcja=modulacja_amplitudy(t,kA)
- harmoniczne=Harmoniczne(funkcja)
- for i in range(0,len(harmoniczne)):
- harmoniczne[i]=harmoniczne[i]*2/344
- for i in range(0,len(harmoniczne)):
- harmoniczne[i]=10*np.log10(harmoniczne[i])
- rysuj_bar(harmoniczne,przyklad+' Modulacja amplitudy')
- Zadanie3(harmoniczne,przyklad,'Modulacja amplitudy')
- #modulacja fazy
- funkcja=modulacja_fazy(t,kP)
- harmoniczne=Harmoniczne(funkcja)
- for i in range(0,len(harmoniczne)):
- harmoniczne[i]=harmoniczne[i]*2/344
- for i in range(0,len(harmoniczne)):
- harmoniczne[i]=10*np.log10(harmoniczne[i])
- rysuj_bar(harmoniczne,przyklad+' Modulacja fazy')
- Zadanie3(harmoniczne,przyklad,'Modulacja fazy')
- Zadanie2(0.5,1,'a)')
- Zadanie2(5,np.pi/2,'b)')
- Zadanie2(44,35,'c)')
- #Zadanie 3
- # a) Modulacja amplitudy 23.283413725023895
- # a) Modulacja fazy 27.95999470564255
- # b) Modulacja amplitudy 25.246939051449687
- # b) Modulacja fazy 24.514010102779224
- # c) Modulacja amplitudy 27.854388333005993
- # c) Modulacja fazy 20.383960790352184
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement