Игнорируя все беспорядки с получением ввода (который будет сильно различаться в зависимости от других ограничений), код для генерации амплитудно-модулированного сигнала должен быть простым.
Я начинаю с натяжения numpy, генерируя набор точек, по которым нужно сэмплировать сигнал, вычисляя амплитуду, затем объединяю их:
import numpy as np
x = np.linspace(0, 10, 501)
ampl = np.exp(-(x - 3.5)**2 / 0.8)
y = np.sin(x * 25) * ampl
затем мы можем построить их используя matplotlib, например:
import matplotlib.pyplot as plt
plt.figure(figsize=(10,5))
plt.plot(x, y, label='signal')
plt.plot(x, ampl, ':', label='amplitude')
plt.xlabel('time')
plt.ylabel('value')
plt.legend()
Я вытащил морского рожка и использую их стиль ticks
, чтобы сделать его немного красивее.