#!/usr/bin/python
# -*- coding: utf-8 -*-
# Soubor:  gamaRCRL.py
# Datum:   on Thu Jun  2 07:41:28 2011
# Autor:   Marek Nožka, nozka <@t> spseol <d.t> cz
# Licence: GNU/GPL 
# Úloha:   Vykreslení frekvenční charakteristiky dvojbranu

import pylab as l
import numpy as n
from pylab import pi

from matplotlib import rcParams #, rc
#rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
## for Palatino and other serif fonts use:
#rc('font',**{'family':'serif','serif':['Palatino']})

rcParams['text.usetex']=True
rcParams['text.latex.unicode']=True


R=1000
C=33e-9

fm= 1/(2*pi*R*C)
fmin=fm/100
fmax=fm*100
#f = l.linspace(0,5*fm,1000)
f = l.logspace(int(n.log10(fmin))-1,int(n.log10(fmax))+1,num=100)
w = 2*pi*f
Z1 = R
Z2 = 1/(1j*w*C)
Z =  Z2/( Z1 + Z2 ) 

l.figure()
### Amplitudová charakteristika
l.subplot(2,1,1)
l.grid(True)
l.title(u"Frekvenční závislost modulu přenosu")
l.xlabel("$f[Hz]$")
l.ylabel("$a_u[dB]$")
l.semilogx(f, 20*n.log10(abs(Z)) )


[xmin, xmax, ymin, ymax] = l.axis()
ymin -= 2
ymax += 2
l.axis([xmin, xmax, ymin, ymax])

l.axvline(fm, color='r',linestyle='--')
l.axvspan(xmin, fm, color = 'g', alpha=0.05)
l.axhline(-3, color='r',linestyle='--')

l.text(fm,ymin,'$f_m$',va='top', ha='center')

#### Fázová charakteristika
l.subplot(2,1,2)
l.grid(True)
l.title(u"Frekvenční závislost fázového přenosu")
l.xlabel("$f[Hz]$")
l.ylabel(r"$\varphi[dB]$")
l.semilogx(f, n.rad2deg(n.angle(Z)) )

[xmin, xmax, ymin, ymax] = l.axis()
ymin -= 2
ymax += 2
l.axis([xmin, xmax, ymin, ymax])

l.axvline(fm, color='r',linestyle='--')
l.axvspan(xmin, fm, color = 'g', alpha=0.05)
l.axhline(-45, color='r',linestyle='--')

l.text(fm,ymin,'$f_m$',va='top', ha='center')

###############################################

l.show()

print "R = {0} \\Omega;  C = {1}; F  fm = {2} Hz;".format(R,C, fm)
####################################################################
### Text v grafu
#l.text(1000, 0, '$u(t)=sin(2\pi ft)$', {'fontsize' : 20})




