예제 #1
0
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)
예제 #3
0
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)]