"Generador de señal"
tt0, signal0 = ins.generador_senoidal(fs, f0, N, a0, p0)
tt1, signal1 = ins.generador_senoidal(fs, f1, N, a0, p0)
tt2, signal2 = ins.generador_senoidal(fs, f2, N, a0, p0)
tt3, signal3 = ins.generador_senoidal(fs, f3, N, a0, p0)

"Graficador temporal, esto solo tiene sentido para frecuencias muy bajas."
"En el orden de fs/10 ya se rompe todo"
"""
plt.plot(tt,signal)
plt.legend(loc='upper right')
plt.xlabel('Tiempo [t]')
plt.ylabel('Amplitud [V]')
plt.title("Señal: Senoidal")
"""
modulo0, fase0, ww0 = ins.analizador_espectro(signal0, fs)
modulo1, fase1, ww1 = ins.analizador_espectro(signal1, fs)
modulo2, fase2, ww2 = ins.analizador_espectro(signal2, fs)
modulo3, fase3, ww3 = ins.analizador_espectro(signal3, fs)

f0_0 = 20 * np.log10(modulo0[int(f0)])
f0_1 = 20 * np.log10(modulo1[int(f0)])
f0_2 = 20 * np.log10(modulo2[int(f0)])
f0_3 = 20 * np.log10(modulo3[int(f0)])

fady_0 = 20 * np.log10(modulo0[int(f0 + 1)])
fady_1 = 20 * np.log10(modulo1[int(f0 + 1)])
fady_2 = 20 * np.log10(modulo2[int(f0 + 1)])
fady_3 = 20 * np.log10(modulo3[int(f0 + 1)])

sum_resto_frecuencias0 = ins.sumatoria_modulo_cuadrado(modulo0) - modulo0[int(
예제 #2
0
f0 = 9*fs/N
p0 = 0     # radianes
a0 = 1      # Volts
f1 = 8*fs/N

tt0, signal0 = ins.generador_senoidal(fs, f0, N, a0, p0)
tt1, signal1 = ins.generador_senoidal(fs, f1, N, a0, p0)

signal3 = np.concatenate((signal1[0:int(fs/f1)], np.zeros(N-int(fs/f1))),axis=0)
  
signal4 = np.concatenate((np.zeros(2*int(fs/f1)), signal0[0:int(fs/f0)]))
signal4 = np.concatenate((signal4, np.zeros(N - 2*int(fs/f1) - int(fs/f0))),axis=0)

signal0 = signal3 + signal4

modulo0, fase0, ww0 = ins.analizador_espectro(signal0, fs)

plt.figure(figsize=(10,10))
plt.subplot(2,1,1)
plt.title("FFT 1 ciclo más otro de otra frecuencia desplazado pero invertidos")
plt.plot(ww0, modulo0, label='fs')
plt.grid()
plt.xlabel("Frecuencia")
plt.ylabel("Amplitud")
plt.xlim(0,30)
plt.subplot(2,1,2)
plt.plot(ww0, fase0, label='fs')
plt.grid()
plt.xlabel("Frecuencia")
plt.ylabel("Fase")