diff --git a/TEMA7/test.md b/TEMA7/test.md new file mode 100644 index 0000000..c78a07a --- /dev/null +++ b/TEMA7/test.md @@ -0,0 +1,33 @@ +# Индивидуальное контрольное задание + +## Задание: +Разработайте функцию с 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("i\tx\ty\n") + for i in range(N): + f.write(f"{i}\t{x_vhod[i]:.6f}\t{y_vblhod[i]:.6f}\n") +``` \ No newline at end of file