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

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]