import numpy as np import matplotlib.pyplot as plt SincPoints=101 GraficoCol=2 GraficoRow=3 samples=1024 freq=1 plt.figure(1) # kaiser window window = np.kaiser(SincPoints,8.6) plt.subplot(GraficoRow,GraficoCol,1) plt.title('Kaiser window') plt.plot(window) # sinc function x = np.linspace(-4, 4, SincPoints) y=np.sinc(x) plt.subplot(GraficoRow,GraficoCol,2) plt.title('Sinc function') plt.plot(x, y) # windowed sinc function yw=y*window print (yw) plt.subplot(GraficoRow,GraficoCol,3) plt.title('Windowed Sinc function') plt.plot(x, yw) # sin function xs=np.arange(0.0,100,0.1) ys=np.sin(xs*0.2) plt.subplot(GraficoRow,GraficoCol,4) plt.title('Example Sin function') plt.plot(xs, ys) # convolute sin with sinc print ("yw") print (len(yw)) print ("sin") print (len(ys)) c=np.zeros(len(ys),dtype=float) for i in range(len(ys)): for i1 in range(len(yw)): ix=i+i1-int(len(yw)/2) if ((ix>0)and(ix0)and(ixmassimo): FilterResponse[f]=minimo else: FilterResponse[f]=massimo plt.subplot(GraficoRow,GraficoCol,6) plt.title('Filter response') plt.plot(freq, FilterResponse) plt.show()