Trazar el espectro de magnitud en Python usando Matplotlib

Una señal es un campo electromagnético o una corriente eléctrica para transmitir datos. Hay varios componentes de una señal, como frecuencia, amplitud, longitud de onda, fase, frecuencia angular y período a partir del cual se describe.
Una señal periódica se puede representar usando la siguiente función seno:

y = A sin(w*t + Q)

Donde Arepresenta la amplitud (en metros), wrepresenta la frecuencia (en hercios), trepresenta el período de tiempo (en segundos) y Qrepresenta la fase (en radianes) de la señal periódica.

Los dos componentes principales, la frecuencia y la amplitud de una señal periódica, definen el espectro de magnitud de esa señal. Los componentes de frecuencia de la señal periódica se trazan en el eje horizontal y el componente de amplitud de la señal periódica se traza en el eje vertical.

En Python, el magnitude_spectrum()método en el pyplotmódulo de la matplotlibbiblioteca de Python traza el espectro de magnitud de una señal periódica. A continuación se muestran algunos programas que demuestran el uso del magnitude_spectrum()método para visualizar el espectro de magnitud de diferentes señales periódicas.
Ejemplo 1:

# importing modules
import numpy
from matplotlib import pyplot 
   
# assigning time values of the signal
# initial time period, final time period and phase angle 
signalTime = numpy.arange(5, 10, 0.25);
  
# getting the amplitude of the signal
signalAmplitude = numpy.sin(signalTime)
  
# plotting the signal 
pyplot.plot(signalTime, signalAmplitude, color ='green')
  
pyplot.xlabel('Time')
pyplot.ylabel('Amplitude')
pyplot.title("Signal")
  
  
# plotting the magnitude spectrum of the signal 
pyplot.magnitude_spectrum(signalAmplitude, color ='green')
  
pyplot.title("Magnitude Spectrum of the Signal")
pyplot.show()

Salida:


El primer gráfico representa la señal en componentes de amplitud frente a tiempo, el segundo gráfico representa el espectro de magnitud de la señal en el gráfico de amplitud frente a frecuencia utilizando magnitude_spectrum()en la señal un período de tiempo de 5 a 10 segundos, ángulo de fase de 0,25 radianes, frecuencia de la señal se calcula a partir del período de tiempo dado y la amplitud de la señal se calcula usando la sin()función en el numpymódulo.

Ejemplo 2:

# importing modules
import numpy
from matplotlib import pyplot 
   
# assigning time values of the signal
# initial time period, final time period and phase angle 
signalTime = numpy.arange(0, 1, 0.1);
  
# getting the amplitude of the signal
signalAmplitude = numpy.sin(signalTime)
  
# plotting the signal 
pyplot.plot(signalTime, signalAmplitude, color ='green')
  
pyplot.xlabel('Time')
pyplot.ylabel('Amplitude')
pyplot.title("Signal")
  
  
# plotting the magnitude spectrum of the signal 
pyplot.magnitude_spectrum(signalAmplitude, color ='green')
  
pyplot.title("Magnitude Spectrum of the Signal")
pyplot.show()

Salida:


En el programa anterior, como la amplitud de la señal aumenta con el tiempo, no se forma una onda sinusoidal en el primer gráfico. La señal existe en el período de tiempo de 0 a 1 segundo y el ángulo de fase es de 0,1 radianes, el espectro de magnitud de la señal se representa mediante el magnitude_spectrum()método.

Ejemplo 3:

# importing modules
import numpy
from matplotlib import pyplot 
   
# assigning time values of the signal
# initial time period, final time period and phase angle  
signalTime = numpy.arange(1, 100, 0.5);
  
# getting the amplitude of the signal
signalAmplitude = numpy.sin(signalTime)
  
# plotting the signal 
pyplot.plot(signalTime, signalAmplitude, color ='green')
  
pyplot.xlabel('Time')
pyplot.ylabel('Amplitude')
pyplot.title("Signal")
  
  
# plotting the magnitude spectrum of the signal 
pyplot.magnitude_spectrum(signalAmplitude, color ='green')
  
pyplot.title("Magnitude Spectrum of the Signal")
pyplot.show()

Salida:


Aquí, la señal se representa en el gráfico Amplitud frente a tiempo que forma ondas sinusoidales y el espectro de magnitud de la señal se representa utilizando el magnitude_spectrum()método en el gráfico Amplitud frente a frecuencia. El período de tiempo de la señal comienza desde 1 segundo hasta el segundo 100 y el ángulo de fase es de 0,5 radianes.

Publicación traducida automáticamente

Artículo escrito por riturajsaha y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *