Py DTFT Num Sim2
Py DTFT Num Sim2
M = 60
N = 500
nvec = np.linspace(0, N-1, num=N)
a = 0.5
x_n = (a)**nvec
plot(nvec,x_n,label='Function x[n]')
plt.xlabel('Time Index')
plt.ylabel('Function')
legend(bbox_to_anchor=(.5, .9), loc=1, borderaxespad=0.)
# DTFT
w = np.linspace(0,2*pi,num = M+1)
x_w = (1-a**(N+1)*exp(-1j*w*(N+1)))/(1-a*exp(-1j*w))
figure(2)
plot(w,np.abs(x_w),'o',label='Amplitude Spectrum 1')
#plot(w,np.angle(x_w),label='Phase Spectrum')
plt.xlabel('Digital Frequency (radians)')
#x_num = [0]*
kvec = np.linspace(0,M,M+1)
#ix = 0;
#for wx in w:
W = (exp(-1j*np.pi*2/M))**(np.outer(nvec,kvec))
#X_bar = np.transpose(x_n)*W
X_bar = matmult3(x_n,transpose(W))
#ix = ix +1;
mag_x = np.abs(X_bar)
plot(w,mag_x,label='Amplitude Spectrum 2')
legend(bbox_to_anchor=(.5, .9), loc=1, borderaxespad=0.)