from numpy import *
from matplotlib.pyplot import *
from mpl_toolkits.axes_grid.axislines import SubplotZero
def makeT(lim=1): # Make the X-axis
result = linspace(-lim,lim,100)
return result
def sinc(x): # define normlized sinc function
return sin(pi*x)/(pi*x)
def raisedCos(freq,B=0.,T=1.): # define raised cosine function
freq = fabs(freq)
if freq <= (1.-B)*0.5/T:
result = T
elif freq <= (1.+B)*0.5/T:
temp = freq - (1-B)*0.5/T
result = 0.5*T*( 1+cos(pi*temp*T/B) )
else:
result = 0
return result
fig = figure(figsize=(8,4))
ax = SubplotZero(fig,111)
fig.add_subplot(ax)
ax.grid(True)
ax.set_xticks([-1,-.5,0,.5,1])
ax.set_xticklabels([r"$-\frac{1}{T}$",r"$-\frac{1}{2T}$",\
"0",r"$\frac{1}{2T}$",r"$\frac{1}{T}$"])
ax.set_ylim((-.3,1.2))
ax.set_yticklabels([])
for direction in ["xzero","yzero"]:
ax.axis[direction].set_axisline_style("-|>")
ax.axis[direction].set_visible(True)
for direction in ["left","right","bottom","top"]:
ax.axis[direction].set_visible(False)
t = makeT(1.25)
H0,H1,H2,H3 = [],[],[],[]
for i in t:
H0 = append(H0,raisedCos(i,0))
H1 = append(H1,raisedCos(i,0.25))
H2 = append(H2,raisedCos(i,0.5))
H3 = append(H3,raisedCos(i,1.))
ax.plot(t,H0,label=r"$\beta=0$")
ax.plot(t,H1,label=r"$\beta=0.25$")
ax.plot(t,H2,label=r"$\beta=0.5$")
ax.plot(t,H3,label=r"$\beta=1$")
ax.text(1.25,0.,r"$f$")
ax.text(0.05,1.15,r"$H(f)$")
ax.legend()
#fig.show()
fig.savefig("Raised-cosine filter.svg",bbox_inches="tight",\
pad_inches=.15)