import numpy as np
import matplotlib.pyplot as plt

# Исходная последовательность
input_sequence = "101100101"

# Параметры модуляции
carrier_frequency = 10  # Частота несущего сигнала в Гц
amplitude = 1           # Амплитуда модулирующего сигнала

# Функция для генерации амплитудно-модулированного сигнала
def generate_AM_signal(input_sequence, carrier_frequency, amplitude):
    time = np.linspace(0, len(input_sequence), len(input_sequence)*1000)
    carrier_wave = np.sin(2*np.pi*carrier_frequency*time)
    
    modulated_signal = []
    for bit in input_sequence:
        if bit == '1':
            modulated_signal.extend(amplitude * carrier_wave[:1000])
        else:
            modulated_signal.extend(np.zeros(1000))
    
    return time, modulated_signal

# Генерация сигнала
time, modulated_signal = generate_AM_signal(input_sequence, carrier_frequency, amplitude)

# Визуализация
plt.figure(figsize=(12, 4))

# Исходный сигнал
plt.subplot(2, 1, 1)
plt.title("Исходный сигнал")
plt.plot(time, [int(bit) for bit in input_sequence]*1000, 'b')
plt.ylim(-0.1, 1.1)
plt.xlabel("Время (сек)")
plt.grid(True)

# Модулированный сигнал
plt.subplot(2, 1, 2)
plt.title("Амплитудно-модулированный сигнал")
plt.plot(time, modulated_signal, 'g')
plt.xlabel("Время (сек)")
plt.grid(True)

plt.tight_layout()
plt.show()