TB065

Index Commits Files Refs
guias/7_17.py (1113B)
   1 # 7_17.py
   2 
   3 import numpy as np
   4 import matplotlib.pyplot as plt
   5 from scipy import fft, signal
   6 
   7 T = 1/100 # seg
   8 sample_rate = 1/T
   9 sample_time = 1
  10 N = int(sample_rate*sample_time)
  11 
  12 for f1 in [30, 30.5]:
  13     for Nf in [N, 10*N]:
  14         for alpha in [0.5, 1, 5]:
  15             f2 = f1 + alpha/(N*T)
  16 
  17             # la frecuencia de muestreo de la seƱal es fija
  18             t = np.linspace(0, sample_time, int(N))
  19             y = np.cos(2*np.pi*f1*t) + np.cos(2*np.pi*f2*t)
  20 
  21             print(f1, f2)
  22 
  23             # calculo de DFT de Nf puntos
  24             Xf = np.fft.fft(t, n=Nf)
  25             freqs = np.fft.fftfreq(Nf, d=T)
  26 
  27             # centrar la frecuencia 0
  28             Xf = np.fft.fftshift(Xf)
  29             freqs = np.fft.fftshift(freqs)
  30 
  31             # grafico
  32             plt.figure(figsize=(8, 4))
  33             markerline, stemlines, baseline = plt.stem(freqs, np.abs(Xf))
  34             plt.setp(baseline, color='black', linewidth=0)
  35             plt.title(f"DFT con Nf={Nf}, f1={f1}, f2={f2:.2f}")
  36             plt.grid(True, linestyle=':', alpha=0.7)
  37             plt.grid(True, which='minor')
  38             plt.show()