Generación de señales básicas de tiempo discreto para el procesamiento de señales de tiempo discreto Las señales de escalón unitario, impulso unitario, rampa unitaria y exponencial son señales muy comúnmente utilizadas en el procesamiento de señales para realizar diversas operaciones.
- La señal de escalón unitario viene dada por
- La señal de impulso unitario viene dada por
- La señal de rampa unitaria viene dada por
- La señal exponencial viene dada por
Ejemplos:
Input : Unit Step Signal u[n-2] Output :
Input : Unit Impulse Signal d(4) Output :
Input : Unit Ramp Signal Output:
Input: Exponential signal for a=2 Output:
Código: implementación de código Python para generar las señales básicas de tiempo discreto
# importing libraries import numpy as np import matplotlib.pyplot as plt # function to generate unit step u[n-a] # LL and UL are lower and upper limits of discrete time line def unit_step(a, n): unit =[] for sample in n: if sample<a: unit.append(0) else: unit.append(1) return(unit) # plot unit step function u[n-a] a = 2 # Enter delay or advance UL = 10 LL = -10 n = np.arange(LL, UL, 1) unit = unit_step(a, n) plt.stem(n, unit) plt.xlabel('n') plt.xticks(np.arange(LL, UL, 1)) plt.yticks([0, 1]) plt.ylabel('u[n]') plt.title('Unit step u[n-a]') plt.savefig('UnitStep.png') # Function to plot Impulse signal d(a) def unit_impulse(a, n): delta =[] for sample in n: if sample == a: delta.append(1) else: delta.append(0) return delta a = 4 # Enter delay or advance UL = 10 LL = -10 n = np.arange(LL, UL, 1) d = unit_impulse(a, n) plt.stem(n, d) plt.xlabel('n') plt.xticks(np.arange(LL, UL, 1)) plt.yticks([0, 1]) plt.ylabel('d[n]') plt.title('Unit Impulse d[4]') plt.savefig("UnitImpulse.png") # Function to generate unit ramp signal r(n) # r(n)= n for n>= 0, r(n)= 0 otherwise def unit_ramp(n): ramp =[] for sample in n: if sample<0: ramp.append(0) else: ramp.append(sample) return ramp UL = 10 LL = -10 n = np.arange(LL, UL, 1) r = unit_ramp(n) plt.stem(n, r) plt.xlabel('n') plt.xticks(np.arange(LL, UL, 1)) plt.yticks([0, UL, 1]) plt.ylabel('r[n]') plt.title('Unit Ramp r[n]') plt.savefig("UnitRamp.png") # Function to generate exponential signals e**(at) def exponential(a, n): expo =[] for sample in n: expo.append(np.exp(a * sample)) return (expo) a = 2 UL = 1 LL = -1 n = np.arange(LL, UL, 0.1) x = exponential(a, n) plt.stem(n, x) plt.xlabel('n') plt.xticks(np.arange(LL, UL, 0.2)) # plt.yticks([0, UL, 1]) plt.ylabel('x[n]') plt.title('Exponential Signal e**(an)') plt.savefig("Exponential.png")