форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
41 строка
1.5 KiB
Markdown
41 строка
1.5 KiB
Markdown
# Индивидуальное контрольное задание по теме 7
|
|
|
|
Коломейцев Дмитрий, А-02-23
|
|
|
|
## Задание
|
|
|
|
#### Вариант 4.
|
|
|
|
Разработайте функцию с 5 аргументами, создающую отсчеты сигнала в виде последовательности импульсов с заданными параметрами:
|
|
* амплитуда,
|
|
* продолжительность импульса,
|
|
* период (импульс + пауза),
|
|
* число отсчетов,
|
|
* имя текстового файла для записи сигнала.
|
|
|
|
Сигнал должен быть записан в виде столбца в текстовый файл с заданным именем (5-й аргумент функции), а также возвращен в вызывающую программу в виде списка.
|
|
|
|
## Решение
|
|
|
|
```py
|
|
# функция, создающая прямоугольные импульсы
|
|
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)
|
|
``` |