Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- import matplotlib.pyplot as plt
- import scipy.signal as signal
- """
- # Creazione di un vettore tempo
- t = np.linspace(-1, 1, 1000)
- # Creazione di una funzione rampa
- ramp = np.maximum(0, t)
- # Creazione di una funzione gradino unitario
- step = np.heaviside(t, 1)
- # Creazione di una funzione sinc
- sinc = np.sinc(t)
- # Creazione di una funzione triangolare
- tri = np.maximum(0, 1 - np.abs(t))
- # stem delle funzioni
- plt.stem(t, ramp, label='Rampa')
- plt.stem(t, step, label='Gradino')
- plt.stem(t, sinc, label='Sinc')
- plt.stem(t, tri, label='Triangolare')
- plt.legend()
- plt.ion()
- """
- #inizio lab1_ex1
- #ex1.1
- """
- def ramp_function(t, start_time, end_time):
- # Inizializza un array con zeri. zeroes_like prende solo la dimensione di t
- ramp = np.zeros_like(t)
- # Imposta i valori della rampa nell'intervallo specificato
- ramp[(t >= start_time) & (t <= end_time)] = t[(t >= start_time) & (t <= end_time)]
- return ramp
- """
- def x_n(n):
- if n < 0 or n > 10:
- return 0
- else:
- return -n
- # Creazione di un vettore n
- t = np.arange(-5, 16) # Valori da -5 a 15 per coprire n<0, n>10 e il range specificato
- # Valori della funzione x[n]
- y_a = [x_n(n+5) for n in t]
- y_b = [x_n(-n+5) for n in t]
- y_c = [x_n(2*n) for n in t]
- def x_nd(n):
- return x_n(n+10) + x_n(-n+10) - (10*signal.unit_impulse(len(t), mode='same'))
- y_d = [x_nd(n) for n in t]
- print(len(t))
- print(len(10*signal.unit_impulse(len(t))))
- print(len(y_d))
- # stem della funzione y[n]
- plt.stem(t, y_a, linefmt='r-', label='y_a[n]')
- plt.stem(t, y_b, linefmt='b-',label='y_b[n]')
- plt.stem(t, y_c, linefmt='g-',label='y_c[n]')
- plt.stem(t, y_d, label='y_d[n]')
- plt.title('ex1')
- plt.xlabel('n')
- plt.ylabel('y[n]')
- plt.legend()
- plt.grid()
- plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement