Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

1.5 KiB

Индивидуальное контрольное задание по теме 7

Коломейцев Дмитрий, А-02-23

Задание

Вариант 4.

Разработайте функцию с 5 аргументами, создающую отсчеты сигнала в виде последовательности импульсов с заданными параметрами:

  • амплитуда,
  • продолжительность импульса,
  • период (импульс + пауза),
  • число отсчетов,
  • имя текстового файла для записи сигнала.

Сигнал должен быть записан в виде столбца в текстовый файл с заданным именем (5-й аргумент функции), а также возвращен в вызывающую программу в виде списка.

Решение

# функция, создающая прямоугольные импульсы
def make_impulse_signal(ampl, impulse_duration, period, n, filename):
    signal = []
    for k in range(n):
        pos = k % period # чтобы позиция от 0 до 6 всегда прыгала (период 7)
        if pos < impulse_duration:
            signal.append(ampl)
        else:
            signal.append(0)

    with open(filename, 'w') as f:
        for x in signal:
            f.write(str(x) + '\n')

    return signal


s = make_impulse_signal(10, 3, 5, 53, 'signal.txt')

print(s)