форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
2.0 KiB
2.0 KiB
Индивидуальное контрольное задание по теме 7
Коваленко Дмитрий, А-01-23
Задание 1
Разработайте функцию с 5 аргументами, создающую последовательность отсчетов синусоидального сигнала с заданными параметрами: амплитуда, период, фаза, число отсчетов (аргументы функции). Сигнал должен быть записан в виде столбца в текстовый файл с заданным именем (5-й аргумент функции), а также возвращен в вызывающую программу в виде списка.
Решение
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}")
Вывод программы:
Значения сигнала: [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]