Está en la página 1de 2

"Modulacion de frecuencia valores ingresados Gabriel Alarcón-1401297"

# se importan las librerias de matematicas y graficacion apropiadas para el


programa
import matplotlib.pyplot as plt
import pylab as pl
import numpy as np
from math import pi

plt.close('all') #limpia todo

# Valores por defecto


N = 3 # Numero de periodos que se graficara
Fs = 2000; #Frecuencia de muestreo

#En este bloque de codigo el usuario asigna los valores de las variables
Vm = float(input('ingrese la amplitud de la moduladora (V)= '))# se ingresa el
voltaje de la señal moduladora
Fm = int(input('ingrese el valor de la frecuencia de la moduladora (KHz) = '))# se
ingresa la frecuencia de la señal moduladora
Vc = float(input('ingrese el valor de amplitud de la portadora (V)= '))# voltaje de
la señal portadora
Fc = int(input('íngrese el valor de la frecuencia de la portadora (KHz) = ')) #
frecuencia de la señal portadora
Kf = int(input('ingrese el valor de la sensibilidad de frecuencia (KHz) = ')) # se
ingresa la sensibilidad de frecuencia

t = np.arange(0,N*1/Fm,1/Fs) #vector tiempo np. es abreviatura de numeros de python

β = round (Kf*Vm/Fm, 2) # se calcula el valor del indice de modulacion y el comando


round lo que hace es redondearlo con 2 decimales
print(f'Indice de modulacion es β = {β}')# imprime el valor del indice de
modulacion antes calculado

dF = Vm*Kf #se calcula la desviacion de frecuencia usando valores ingresados por el


usuario
print(f'La desviacion de frecuencia es = {dF}KHz') # se imprime el valor de la
desviacion de frecuencia dado en KHz

vFM = Vc*np.cos(2*pi*Fc*t + β*np.sin(2*pi*Fm*t))#Ecuacion modulacion de frecuencia


respecto al tiempo
print(f'vFM = {Vc}*cos(2π{Fc}Kt + {β}*sen(2π{Fm}Kt))') #se imprime la ecuacion de
la modulacion de frecuencia

#Debido a que algunos valores de frecuencia tanto de Fm como de Fc no permiten


reflejar una modulacion
#adecuada se puso un condicional que evalue un rango de valores en el que la
grafica salga apropiada
if Fc>=100 & Fc<=50: # si la frecuencia de la portadora excede los 100KHz y es
inferior a 50KHz
print ('estos valores no permiten evidenciar una grafica de forma adecuada para
la modulacion FM')#se imprime un mensaje que indique que estos valores no permiten
una grafica adecuada
elif Fc<=100 & Fc>=50: # si la frecuencia de la portadora esta en el rango deseado
se evalua Fm
if Fm>=10 & Fm<=5: # si Fm excede 10KHz y es inferior 5KHz se imprimira que no
es valida
print ('estos valores no permiten evidenciar una grafica de forma adecuada
para la modulacion FM')
elif Fm<=10 & Fm>=5: #si los valores tanto de Fm como Fc cumplen se grafica la
señal de modulacion de frecuencia
pl.figure(figsize=(8, 6), dpi=80) #se dispone el tamaño de la grafica y su
resolucion (dpi)
plt.plot(t,vFM,'g'); plt.title('Modulacion de frecuencia')
plt.xlabel('Tiempo');
plt.ylabel('vFM');
plt.grid(True)

También podría gustarte