ответвлено от main/python-labs
56 строки
2.2 KiB
Python
56 строки
2.2 KiB
Python
import os
|
|
import M1
|
|
|
|
def process_signal():
|
|
"""
|
|
Основная функция модуля M2
|
|
Запрашивает имя файла, проверяет его существование,
|
|
вызывает функцию2 из M1 и записывает результаты в файл Res101.txt
|
|
"""
|
|
# Запрос имени файла с проверкой существования
|
|
while True:
|
|
filename = input("\nВведите имя файла с данными: ").strip()
|
|
|
|
if os.path.exists(filename):
|
|
print(f"Файл '{filename}' найден")
|
|
break
|
|
else:
|
|
print(f"Файл '{filename}' не существует. Повторите ввод.")
|
|
# Вызов функции 2 из модуля M1
|
|
signal, t_stat, F_stat, mean1, mean2, var1, var2 = M1.function2(filename)
|
|
|
|
print("Отсчеты сигнала:")
|
|
for i in range(len(signal)):
|
|
print(f" {i:2d}: {signal[i]:8.2f}")
|
|
print("\n--- Анализ результатов ---")
|
|
messages = []
|
|
if t_stat > 2:
|
|
msg_t = "Сигнал сильно меняется"
|
|
print(f"t={t_stat:.4f} > 2: {msg_t}")
|
|
else:
|
|
msg_t = "Сигнал заметно не меняется"
|
|
print(f"t={t_stat:.4f} ≤ 2: {msg_t}")
|
|
messages.append(msg_t)
|
|
|
|
if F_stat > 4:
|
|
msg_F = "Разброс сигнала сильно меняется"
|
|
print(f"F={F_stat:.4f} > 4: {msg_F}")
|
|
else:
|
|
msg_F = "Разброс сигнала заметно не меняется"
|
|
print(f"F={F_stat:.4f} ≤ 4: {msg_F}")
|
|
messages.append(msg_F)
|
|
res_filename = "Res101.txt"
|
|
file = open(res_filename, 'w', encoding='utf-8')
|
|
file.write(f"Исходный файл: {filename}\n")
|
|
file.write(f"Количество отсчетов: {len(signal)}\n")
|
|
file.write(f"t-статистика: {t_stat:.6f}\n")
|
|
file.write(f"F-статистика: {F_stat:.6f}\n")
|
|
file.write("-"*40 + "\n")
|
|
file.write(f"Вывод 1: {msg_t}\n")
|
|
file.write(f"Вывод 2: {msg_F}\n")
|
|
file.close()
|
|
|
|
print(f"\nРезультаты сохранены в файл '{res_filename}'")
|
|
|
|
return signal, t_stat, F_stat
|