ответвлено от main/python-labs
44 строки
1.2 KiB
Python
44 строки
1.2 KiB
Python
|
|
import m1
|
|
import os
|
|
|
|
def main():
|
|
|
|
while True:
|
|
filename = input("Введите имя файла: ")
|
|
if os.path.exists(filename):
|
|
break
|
|
print("Файл не найден!")
|
|
|
|
# Чтение данных
|
|
data = []
|
|
with open(filename, 'r') as f:
|
|
for i in f:
|
|
for num in i.split():
|
|
data.append(float(num))
|
|
|
|
# Запрос параметра
|
|
while True:
|
|
alpha_str = input("Введите alpha (0-1): ")
|
|
if alpha_str.replace('.', '', 1).isdigit():
|
|
alpha = float(alpha_str)
|
|
if 0 < alpha < 1:
|
|
break
|
|
print("Ошибка! alpha должен быть от 0 до 1")
|
|
|
|
|
|
smoothed = m1.smooth(data, alpha)
|
|
print("Сглаженный сигнал:", smoothed)
|
|
|
|
# Расчет разностей
|
|
avg, avg_sq = m1.calc_diff(data, smoothed)
|
|
print(f"Средняя разность: {avg}")
|
|
print(f"Средний квадрат разности: {avg_sq}")
|
|
|
|
# Запись в бинарный файл
|
|
with open('Res3.bin', 'wb') as f:
|
|
for val in smoothed:
|
|
f.write(str(val).encode() + b' ')
|
|
|
|
return data, smoothed
|