форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
43 строки
2.0 KiB
Markdown
43 строки
2.0 KiB
Markdown
# Индивидуальное контрольное задание по теме 7
|
|
|
|
Коваленко Дмитрий, А-01-23
|
|
|
|
## Задание 1
|
|
|
|
Разработайте функцию с 5 аргументами, создающую последовательность отсчетов синусоидального сигнала с заданными параметрами: амплитуда, период, фаза, число отсчетов (аргументы функции). Сигнал должен быть записан в виде столбца в текстовый файл с заданным именем (5-й аргумент функции), а также возвращен в вызывающую программу в виде списка.
|
|
## Решение
|
|
|
|
```py
|
|
import math
|
|
from os import chdir
|
|
|
|
|
|
chdir('/Users/vatarishin/lab_sem_5/python-labs/TEMA7')
|
|
|
|
def sinusoid(amplitude, period, phase, num_samples, filename="sinusoid_signal.txt"):
|
|
signal_list = []
|
|
|
|
for i in range(num_samples):
|
|
value = amplitude * math.sin(2 * math.pi * i / period + phase)
|
|
signal_list.append(value)
|
|
with open(filename, 'w') as file:
|
|
for value in signal_list:
|
|
file.write(f"{value}\n")
|
|
|
|
return signal_list
|
|
|
|
A = 2
|
|
T = 13
|
|
phi = 0
|
|
N = 30
|
|
|
|
signal = sinusoid(A, T, phi, N)
|
|
|
|
print(f"Значения сигнала: {signal}")
|
|
|
|
```
|
|
## Вывод программы:
|
|
|
|
```py
|
|
Значения сигнала: [0.0, 0.929446344087537, 1.6459677317873127, 1.985417748196108, 1.8700324853708297, 1.3262453164815904, 0.47863132857511537, -0.47863132857511487, -1.32624531648159, -1.8700324853708294, -1.985417748196108, -1.645967731787314, -0.9294463440875368, 1.2864981197413093e-15, 0.9294463440875359, 1.6459677317873116, 1.9854177481961077, 1.8700324853708299, 1.3262453164815913, 0.47863132857511753, -0.47863132857511614, -1.3262453164815902, -1.870032485370828, -1.9854177481961082, -1.6459677317873123, -0.9294463440875372, 2.5729962394826186e-15, 0.9294463440875355, 1.6459677317873114, 1.985417748196108]
|
|
``` |