форкнуто от main/python-labs
Родитель
a2c084dced
Сommit
e633e7c731
@ -0,0 +1,29 @@
|
|||||||
|
import Modul1
|
||||||
|
|
||||||
|
def main():
|
||||||
|
A = float(input("Амплитуда импульса: "))
|
||||||
|
Prod_Imp = int(input("Продолжительность импульса (в отсчетах): "))
|
||||||
|
period = int(input("Период (импульс + пауза, в отсчетах): "))
|
||||||
|
num_ot = int(input("Общее число отсчетов: "))
|
||||||
|
filename = input("Имя файла для сохранения: ")
|
||||||
|
|
||||||
|
# Генерация сигнала
|
||||||
|
from Modul1 import f as G
|
||||||
|
signal = G(A, Prod_Imp, period, num_ot, filename)
|
||||||
|
|
||||||
|
# Вывод результатов
|
||||||
|
print('Сгенерирован сигнал')
|
||||||
|
for i in range(len(signal)):
|
||||||
|
print(f"{i}: {signal[i]}")
|
||||||
|
|
||||||
|
print('Все значения сохранены в файл')
|
||||||
|
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
plt.title('График импульсного сигнала')
|
||||||
|
plt.xlabel('Номер отсчета')
|
||||||
|
plt.ylabel('Амплитуда')
|
||||||
|
plt.plot(signal)
|
||||||
|
plt.show()
|
||||||
|
|
||||||
|
main()
|
||||||
|
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
def f(A, Prod_Imp, period, num_ot, filename):
|
||||||
|
# Генерация сигнала
|
||||||
|
signal = []
|
||||||
|
for i in range(num_ot):
|
||||||
|
# Определяем положение в текущем периоде
|
||||||
|
pos = i % period
|
||||||
|
# Если находимся в пределах длительности импульса
|
||||||
|
if pos < Prod_Imp:
|
||||||
|
signal.append(A)
|
||||||
|
else:
|
||||||
|
signal.append(0.0)
|
||||||
|
# Запись в файл
|
||||||
|
with open(filename, 'w', encoding='utf-8') as f:
|
||||||
|
for i in signal:
|
||||||
|
f.write(f"{i}\n")
|
||||||
|
return signal
|
||||||
|
После Ширина: | Высота: | Размер: 46 KiB |
@ -0,0 +1,100 @@
|
|||||||
|
5.0
|
||||||
|
5.0
|
||||||
|
5.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
5.0
|
||||||
|
5.0
|
||||||
|
5.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
5.0
|
||||||
|
5.0
|
||||||
|
5.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
5.0
|
||||||
|
5.0
|
||||||
|
5.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
5.0
|
||||||
|
5.0
|
||||||
|
5.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
5.0
|
||||||
|
5.0
|
||||||
|
5.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
5.0
|
||||||
|
5.0
|
||||||
|
5.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
5.0
|
||||||
|
5.0
|
||||||
|
5.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
5.0
|
||||||
|
5.0
|
||||||
|
5.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
5.0
|
||||||
|
5.0
|
||||||
|
5.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
@ -0,0 +1,173 @@
|
|||||||
|
# Индивидуальное контрольное задание #4 по Теме 8
|
||||||
|
Лазарев Данил, А-01-23
|
||||||
|
|
||||||
|
# Задание
|
||||||
|
По указанному преподавателем варианту контрольного задания обратитесь к индивидуальному заданию с таким номером в теме 7, разработайте функцию, на ее основе создайте модуль. Создайте второй модуль, в котором должны быть инструкции для ввода/создания исходных данных для проверки работы функции, вызов функции и отображение полученных результатов.
|
||||||
|
|
||||||
|
Разработайте функцию с 5 аргументами, создающую отсчеты сигнала в виде последовательности импульсов с заданными параметрами: амплитуда, продолжительность импульса, период (импульс + пауза), число отсчетов (аргументы функции). Сигнал должен быть записан в виде столбца в текстовый файл с заданным именем (5-й аргумент функции), а также возвращен в вызывающую программу в виде списка
|
||||||
|
|
||||||
|
# Решение
|
||||||
|
Модуль 1
|
||||||
|
```
|
||||||
|
def f(A, Prod_Imp, period, num_ot, filename):
|
||||||
|
# Генерация сигнала
|
||||||
|
signal = []
|
||||||
|
for i in range(num_ot):
|
||||||
|
# Определяем положение в текущем периоде
|
||||||
|
pos = i % period
|
||||||
|
# Если находимся в пределах длительности импульса
|
||||||
|
if pos < Prod_Imp:
|
||||||
|
signal.append(A)
|
||||||
|
else:
|
||||||
|
signal.append(0.0)
|
||||||
|
# Запись в файл
|
||||||
|
with open(filename, 'w', encoding='utf-8') as f:
|
||||||
|
for i in signal:
|
||||||
|
f.write(f"{i}\n")
|
||||||
|
return signal
|
||||||
|
```
|
||||||
|
Модуль 2
|
||||||
|
```
|
||||||
|
import Modul1
|
||||||
|
|
||||||
|
def main():
|
||||||
|
A = float(input("Амплитуда импульса: "))
|
||||||
|
Prod_Imp = int(input("Продолжительность импульса (в отсчетах): "))
|
||||||
|
period = int(input("Период (импульс + пауза, в отсчетах): "))
|
||||||
|
num_ot = int(input("Общее число отсчетов: "))
|
||||||
|
filename = input("Имя файла для сохранения: ")
|
||||||
|
|
||||||
|
# Генерация сигнала
|
||||||
|
from Modul1 import f as G
|
||||||
|
signal = G(A, Prod_Imp, period, num_ot, filename)
|
||||||
|
|
||||||
|
# Вывод результатов
|
||||||
|
print('Сгенерирован сигнал')
|
||||||
|
for i in range(len(signal)):
|
||||||
|
print(f"{i}: {signal[i]}")
|
||||||
|
|
||||||
|
print('Все значения сохранены в файл')
|
||||||
|
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
plt.title('График импульсного сигнала')
|
||||||
|
plt.xlabel('Номер отсчета')
|
||||||
|
plt.ylabel('Амплитуда')
|
||||||
|
plt.plot(signal)
|
||||||
|
plt.show()
|
||||||
|
|
||||||
|
main()
|
||||||
|
```
|
||||||
|
Итоговый вывод:
|
||||||
|
```
|
||||||
|
>> Амплитуда импульса: 5
|
||||||
|
>> Продолжительность импульса (в отсчетах): 3
|
||||||
|
>> Период (импульс + пауза, в отсчетах): 10
|
||||||
|
>> Общее число отсчетов: 100
|
||||||
|
>> Имя файла для сохранения: r.txt
|
||||||
|
|
||||||
|
Сгенерирован сигнал
|
||||||
|
|
||||||
|
0: 5.0
|
||||||
|
1: 5.0
|
||||||
|
2: 5.0
|
||||||
|
3: 0.0
|
||||||
|
4: 0.0
|
||||||
|
5: 0.0
|
||||||
|
6: 0.0
|
||||||
|
7: 0.0
|
||||||
|
8: 0.0
|
||||||
|
9: 0.0
|
||||||
|
10: 5.0
|
||||||
|
11: 5.0
|
||||||
|
12: 5.0
|
||||||
|
13: 0.0
|
||||||
|
14: 0.0
|
||||||
|
15: 0.0
|
||||||
|
16: 0.0
|
||||||
|
17: 0.0
|
||||||
|
18: 0.0
|
||||||
|
19: 0.0
|
||||||
|
20: 5.0
|
||||||
|
21: 5.0
|
||||||
|
22: 5.0
|
||||||
|
23: 0.0
|
||||||
|
24: 0.0
|
||||||
|
25: 0.0
|
||||||
|
26: 0.0
|
||||||
|
27: 0.0
|
||||||
|
28: 0.0
|
||||||
|
29: 0.0
|
||||||
|
30: 5.0
|
||||||
|
31: 5.0
|
||||||
|
32: 5.0
|
||||||
|
33: 0.0
|
||||||
|
34: 0.0
|
||||||
|
35: 0.0
|
||||||
|
36: 0.0
|
||||||
|
37: 0.0
|
||||||
|
38: 0.0
|
||||||
|
39: 0.0
|
||||||
|
40: 5.0
|
||||||
|
41: 5.0
|
||||||
|
42: 5.0
|
||||||
|
43: 0.0
|
||||||
|
44: 0.0
|
||||||
|
45: 0.0
|
||||||
|
46: 0.0
|
||||||
|
47: 0.0
|
||||||
|
48: 0.0
|
||||||
|
49: 0.0
|
||||||
|
50: 5.0
|
||||||
|
51: 5.0
|
||||||
|
52: 5.0
|
||||||
|
53: 0.0
|
||||||
|
54: 0.0
|
||||||
|
55: 0.0
|
||||||
|
56: 0.0
|
||||||
|
57: 0.0
|
||||||
|
58: 0.0
|
||||||
|
59: 0.0
|
||||||
|
60: 5.0
|
||||||
|
61: 5.0
|
||||||
|
62: 5.0
|
||||||
|
63: 0.0
|
||||||
|
64: 0.0
|
||||||
|
65: 0.0
|
||||||
|
66: 0.0
|
||||||
|
67: 0.0
|
||||||
|
68: 0.0
|
||||||
|
69: 0.0
|
||||||
|
70: 5.0
|
||||||
|
71: 5.0
|
||||||
|
72: 5.0
|
||||||
|
73: 0.0
|
||||||
|
74: 0.0
|
||||||
|
75: 0.0
|
||||||
|
76: 0.0
|
||||||
|
77: 0.0
|
||||||
|
78: 0.0
|
||||||
|
79: 0.0
|
||||||
|
80: 5.0
|
||||||
|
81: 5.0
|
||||||
|
82: 5.0
|
||||||
|
83: 0.0
|
||||||
|
84: 0.0
|
||||||
|
85: 0.0
|
||||||
|
86: 0.0
|
||||||
|
87: 0.0
|
||||||
|
88: 0.0
|
||||||
|
89: 0.0
|
||||||
|
90: 5.0
|
||||||
|
91: 5.0
|
||||||
|
92: 5.0
|
||||||
|
93: 0.0
|
||||||
|
94: 0.0
|
||||||
|
95: 0.0
|
||||||
|
96: 0.0
|
||||||
|
97: 0.0
|
||||||
|
98: 0.0
|
||||||
|
99: 0.0
|
||||||
|
|
||||||
|
Все значения сохранены в файл
|
||||||
|
```
|
||||||
|

|
||||||
Загрузка…
Ссылка в новой задаче