# Индивидуальное контрольное задание ## Задание: Разработайте функцию с 3 параметрами: х, yT и T, реализующую расчет по значениям последовательности значений входного сигнала х значений выходного сигнала по формуле: y= (x+T*yТ)/(T+1). Здесь х- одно текущее значение входного сигнала, yT – значение выходного сигнала в предыдущий момент времени, Т – постоянная времени инерционного звена. Создайте список с последовательностью из 100 значений входного синусоидального сигнала с амплитудой 2, периодом 7 и фазой 0.35. Рассчитайте последовательность значений выходных сигналов, принимая Т=3 и yT равным предыдущему в последовательности вычисленных значений y (для первого значения х принять yT=0). Записать результаты в текстовый файл в виде двух столбцов: хi, yi. ## Решение: ``` >>>import math >>>def vblhod_signal(x, yT, T): y = (x + T*yT) / (T+1) return y >>>T = 3 >>>N = 100 >>>A = 2 >>>P = 7 >>>F = 0.35 >>>x_vhod = [A * math.sin(2 * math.pi * i / P + F) for i in range(N)] >>>y_vblhod = [] >>>y_pred = 0 >>>for x in x_vhod: y = vblhod_signal(x, y_pred, T) y_vblhod.append(y) y_pred= y >>>with open("results.txt", "w", encoding="utf-8") as f: f.write("xi\t\tyi\n") for i in range(N): f.write(f"{x_vhod[i]:.6f}\t{y_vblhod[i]:.6f}\n") ```