cdf – Modulación AM

Referencia: Leon W Couch 4-2 p234, «El Aguacate» introducción

Modulación en Amplitud (AM)

La modulación es el proceso de codificación de la información fuente, sonido o moduladora, dentro de una señal pasabanda s(t), resultande o modulada. La señal modulada se obtiene de:

senal(t) = A_c[1+moduladora(t)] cos(\omega_c t) s(t) = A_c[1+m(t)] cos(\omega_c t)

donde:

\omega_c = 2\pi f_c

fc es la frecuencia de la portadora o «carrier».
Ac es la amplitud de la portadora.

Como ejemplo, si se quiere enviar una señal de sonido obtenida de un archivo.wav modulada en Amplitud, la señal m(t) será:

muestra_GuitarraCuerda.wav

Instrucciones en Python

# pmf de un sonido
# entrada es archivo01
# propuesta:edelros@espol.edu.ec
import numpy as np
import matplotlib.pyplot as plt
import scipy.io.wavfile as waves
import scipy.stats as stats

# INGRESO 
# archivo01 = input('archivo de sonido 01: ' )
# k = int(input('muestras para ejemplo: '))
archivo01 = 'muestra_GuitarraCuerda.wav'
k = 500

# PROCEDIMIENTO
muestreo, sonido01 = waves.read(archivo01)

# Extrae un canal en caso de estéreo
canales = sonido01.shape
cuantos = len(canales)
canal = 0   
if (cuantos==1): # Monofónico
    uncanal = sonido01[:]  
if (cuantos>=2): # Estéreo
    uncanal = sonido01[:,canal]
    
moduladora = uncanal[0:k].astype(float)
dt = 1/muestreo
t  = np.arange(0,k*dt,dt)

# SALIDA GRAFICA
plt.plot(t,moduladora)
plt.title(' Moduladora m(t)')
plt.xlabel('t')
plt.ylabel('señal')
plt.plot()
plt.show()

Para el ejemplo, la señal de la portadora presentada tiene frecuencia de 5500 para que se pueda visualizar el efecto.
(Revisar frecuencias de portadoras AM estándares o ver el dial de un radio AM).

# Portadora:
fc = 5500
portadora = np.cos(2*np.pi*fc*t)

# SALIDA GRAFICA
plt.plot(t,portadora, color='orange')
plt.title(' Portadora')
plt.xlabel('t')
plt.ylabel('señal')
plt.plot()
plt.show()

Antes de aplicar la moduladora, se la normaliza para mantener la proporción en la gráfica

# normalizar y subir a positiva
moduladoranorm = moduladora/np.max(moduladora)
moduladora = (1+ moduladoranorm)

# Modular portadora
Ac = 1
modulada = Ac*moduladora*portadora

# SALIDA GRAFICA
plt.plot(t,moduladora,label='moduladora')
plt.plot(t,modulada,label='modulada')
plt.title(' Señal modulada S(t)')
plt.xlabel('t')
plt.ylabel('señal')
plt.legend()
plt.show()