from Modulos import instrumentos as ins import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np N = 1000 # muestras fs = 1000 # Hz Ts = 1/fs 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')
import matplotlib.pyplot as plt import numpy as np N = 1000 # muestras fs = 1000 # Hz a0 = 1 # Volts p0 = 0 # radianes f0 = fs / 4 f1 = f0 + 0.01 f2 = f0 + 0.25 f3 = f0 + 0.5 "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)
import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt N = 1000 # muestras fs = 1000 # Hz Ts = 1 / fs f0 = 9 * fs / N p0 = 0 # radianes a0 = 1 # Volts a1 = 5 a2 = 3 tt0, signal0 = ins.generador_senoidal(fs, f0, N, a0, p0) tt1, signal1 = ins.generador_senoidal(fs, f0, N, a1, p0) tt2, signal2 = ins.generador_senoidal(fs, f0, N, a2, p0) signal0 = np.concatenate((signal0[0:int(fs / f0)], np.zeros(N - int(fs / f0))), axis=0) signal1 = np.concatenate((np.zeros(int(fs / f0)), signal1[0:int(fs / f0)])) signal1 = np.concatenate((signal1, np.zeros(N - 2 * int(fs / f0))), axis=0) signal2 = np.concatenate((np.zeros(2 * int(fs / f0)), signal2[0:int(fs / f0)])) signal2 = np.concatenate((signal2, np.zeros(N - 3 * int(fs / f0))), axis=0) signal0 = signal0 + signal1 + signal2 signal0 = signal0[0:3 * int(fs / f0)]