форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
31 строка
1.9 KiB
Python
31 строка
1.9 KiB
Python
'''
|
|
По указанному варианту контрольного задания обратитесь к индивидуальному заданию с таким номером в теме 7, разработайте функцию,
|
|
на ее основе создайте модуль. Создайте второй модуль, в котором должны быть инструкции для ввода/создания
|
|
исходных данных для проверки работы функции, вызов функции и отображение полученных результатов.
|
|
## Задание 1
|
|
1. Разработайте функцию с 5 аргументами, создающую последовательность отсчетов синусоидального сигнала
|
|
с заданными параметрами: амплитуда, период, фаза, число отсчетов (аргументы функции). Сигнал должен быть записан
|
|
в виде столбца в текстовый файл с заданным именем (5-й аргумент функции), а также возвращен в вызывающую программу в виде списка.
|
|
'''
|
|
import numpy as np
|
|
#ModuleIKZ
|
|
|
|
import numpy as np
|
|
import os
|
|
|
|
os.chdir("C:\\Users\\gmack\\OneDrive\\Рабочий стол\\3 KURS\\LABS\\python-labs\\TEMA8")
|
|
|
|
def generate_sinusoidal_signal(amplitude, period, phase, num_samples, filename):
|
|
n = np.arange(num_samples)
|
|
omega = 2 * np.pi / period #угловая частота
|
|
signal = amplitude * np.sin(omega * n + phase)
|
|
with open(filename, 'w+') as file:
|
|
for value in signal:
|
|
file.write(f"{value}\n") # 6 знаков после запятой
|
|
return signal
|
|
#Проверка
|
|
|
|
from ModuleIKZ import generate_sinusoidal_signal
|
|
|
|
lst = generate_sinusoidal_signal(2.0, 20, np.pi/4, 50, filename="result.txt")
|
|
print(lst) |