#!/usr/bin/env python # coding: utf-8 # Lichoběžníkový časový průběh s lze popsat vztahem: # # $$u_t() = \sum_{n=1}^\infty {4U_m \over{2 \pi}} \sin(n\alpha) { \sin(n\omega t ) \over n^2 }$$ # # Vyzkoušejte si, kolik je třeba harmonických složek pro zachování tvaru tohoto časového průběhu. # In[1]: ############################################################# def obdelnik(t,m,kroky=True,Um=1,f=1): u=zeros(len(t)) figure(figsize=(10,7)) minorticks_on() xlabel(r'$\rightarrow$ \\t [s]',fontsize=16, x=0.9 ) ylabel(r'u [V] $\uparrow$',fontsize=16, y=0.9, rotation=0) title(u"{} harmonických složek".format(m)) grid(True, 'major', linewidth=1) grid(True, 'minor', linewidth=0.5) for n in range(1,m+1)[::2]: harm = 4.*Um*sin(n*2.5)*sin(n*2*pi*f*t)/(2*pi*n*n) if kroky: plot(t,harm,'--g') u = u + harm #figure(figsize=(10,7)) plot(t,u,'r-',lw=2) grid(1) ############################################################ t=linspace(0,2,5000) # In[2]: obdelnik(t,3,) # In[3]: obdelnik(t,7,) # In[4]: obdelnik(t,11,) # In[5]: obdelnik(t,20,False) # In[6]: obdelnik(t,30,False) # In[7]: obdelnik(t,50,False)