Está en la página 1de 2

# -*- coding: utf-8 -*-

"""
Creado el Viernes 05/04/2024 a las 1:11 am.

Autor: Francisco Soriano del Moral

**ASK**

"""

import numpy as np
import matplotlib.pyplot as plt

# Primer conjunto de parámetros


fc = 100 # Frecuencia de la portadora
A0 = 2 # Amplitud de la portadora cuando xb=0
A1 = 4 # Amplitud de la portadora cuando xb=1
xb = [0, 0, 1, 0, 1, 1, 0, 1] # Secuencia de bits de entrada
Tb = 1 # Duración de un bit
N = 128 # Número de puntos para un bit
tb = np.linspace(0, Tb, N) # Tiempo de un bit
cb0 = A0 * np.cos(2 * np.pi * fc * tb)
cb1 = A1 * np.cos(2 * np.pi * fc * tb)
Nb = len(xb)
t = np.linspace(0, Tb * Nb, N * Nb) # Tiempo total
x = np.array([]) # Señal de entrada
y = np.array([]) # Señal modulada
for n in range(Nb):
if xb[n] == 0:
x = np.concatenate((x, np.zeros(N)))
y = np.concatenate((y, cb0))
elif xb[n] == 1:
x = np.concatenate((x, np.ones(N)))
y = np.concatenate((y, cb1))

# Graficar señales
plt.subplot(2, 1, 1)
plt.title("Primera Configuración de Amplitud")
plt.plot(t, x)
plt.axis([0, 8, -1, 2])

plt.subplot(2, 1, 2)
plt.plot(t, y)
plt.axis([0, 8, -4, 4])
plt.xlabel("Tiempo (s)")

plt.tight_layout()
plt.show()
# Segundo conjunto de parámetros
fc = 16
A00 = 1
A01 = 3
A10 = 5
A11 = 7
cb00 = A00 * np.cos(2 * np.pi * fc * tb)
cb01 = A01 * np.cos(2 * np.pi * fc * tb)
cb10 = A10 * np.cos(2 * np.pi * fc * tb)
cb11 = A11 * np.cos(2 * np.pi * fc * tb)
x = np.array([])
y = np.array([])
for n in range(0, Nb, 2):
if xb[n] == 0 and xb[n+1] == 0:
x = np.concatenate((x, np.zeros(N), np.zeros(N)))
y = np.concatenate((y, cb00, cb00))
elif xb[n] == 0 and xb[n+1] == 1:
x = np.concatenate((x, np.zeros(N), np.ones(N)))
y = np.concatenate((y, cb01, cb01))
elif xb[n] == 1 and xb[n+1] == 0:
x = np.concatenate((x, np.ones(N), np.zeros(N)))
y = np.concatenate((y, cb10, cb10))
elif xb[n] == 1 and xb[n+1] == 1:
x = np.concatenate((x, np.ones(N), np.ones(N)))
y = np.concatenate((y, cb11, cb11))

# Graficar señales
plt.subplot(2, 1, 1)
plt.title("Segunda Configuración de Amplitud")
plt.plot(t, x)
plt.axis([0, 8, -1, 2])

plt.subplot(2, 1, 2)
plt.plot(t, y)
plt.axis([0, 8, None, None])
plt.xlabel("Tiempo (s)")

plt.tight_layout()
plt.show()

También podría gustarte