import numpy as np
import matplotlib.pyplot as plt
%pylab inline --no-import-all
Populating the interactive namespace from numpy and matplotlib
def plotSignal(t,x,ptitle='Signal'):
fig = plt.figure(figsize=(10,6))
ax1 = fig.add_axes([0, 0, 1, 0.8]) # [left, bottom, width, height]
ax1.set_xlabel('t')
ax1.set_ylabel('x')
ax1.set_title(ptitle)
ax1.fill_between(t,0,x,color='green', alpha=0.4)
ax1.plot(t, x, color='green', lw=6);
def step(t, t_0):
return 1 * ((t - t_0) >= 0) # Unit step
t = np.linspace(0, 7, 1000, endpoint=True)
# Time breakpoints
t0 = 0
t1 = 2
t2 = 3
t3 = 5
t4 = 7
# Step functions
u0 = step(t, t0)
u1 = step(t, t1)
u2 = step(t, t2)
u3 = step(t, t3)
u4 = step(t, t4)
# Pulse Signals
pu1 = u0 - u1
pu2 = u1 - u2
pu3 = u2 - u3
pu4 = u3 - u4
# First Pulse
fig = plt.figure(figsize=(16,2))
plt.subplot(1,4,1)
plt.plot(t,pu1,'g-')
plt.fill_between(t,0,pu1,color='green', alpha=0.4)
plt.xlabel('t ($s$)')
plt.ylabel('v ($t$)')
plt.title('$u_0 - u_1$')
# Second Pulse
plt.subplot(1,4,2)
plt.plot(t,pu2,'g-')
plt.fill_between(t,0,pu2,color='green', alpha=0.4)
plt.xlabel('t ($s$)')
plt.ylabel('v ($t$)');
plt.title('$u_1 - u_2$')
# Third Pulse
plt.subplot(1,4,3)
plt.plot(t,pu3,'g-')
plt.fill_between(t,0,pu3,color='green', alpha=0.4)
plt.xlabel('t ($s$)')
plt.ylabel('v ($t$)');
plt.title('$u_2 - u_3$')
# Fourth Pulse
plt.subplot(1,4,4)
plt.plot(t,pu4,'g-')
plt.fill_between(t,0,pu4,color='green', alpha=0.4)
plt.xlabel('t ($s$)')
plt.ylabel('v ($t$)');
plt.title('$u_3 - u_4$');
s1 = 20*np.exp(-2*t)*pu1
plotSignal(t,s1)
s2 = (10*t - 30) * pu2
plotSignal(t,s2)
s3 = (-10*t + 50) * pu3
plotSignal(t,s3)
s4 = (10*t - 70) * pu4
plotSignal(t, s4)
s_t = s1 + s2 + s3 + s4
plotSignal(t, s_t)