форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
52 строки
1.4 KiB
Python
52 строки
1.4 KiB
Python
# M2.py
|
|
import os
|
|
import sys
|
|
import pickle
|
|
|
|
def run_M2():
|
|
|
|
while True:
|
|
filename = input("Введите имя текстового файла с сигналом: ").strip()
|
|
if os.path.isfile(filename):
|
|
break
|
|
|
|
|
|
|
|
X = []
|
|
with open(filename, 'r') as f:
|
|
for line in f:
|
|
parts = line.strip().split()
|
|
for p in parts:
|
|
X.append(float(p))
|
|
|
|
|
|
while True:
|
|
|
|
M1 = float(input("Введите M1 (нижняя граница разности): "))
|
|
M2 = float(input("Введите M2 (верхняя граница разности, M2 > M1): "))
|
|
if M1 < M2:
|
|
break
|
|
else:
|
|
print("M1 должно быть меньше M2.")
|
|
|
|
|
|
from M1 import find_anomalous_indices, correct_anomalies
|
|
|
|
|
|
K = find_anomalous_indices(X, M1, M2)
|
|
print(f"Аномальные индексы: {K}")
|
|
|
|
|
|
if K:
|
|
X1 = correct_anomalies(X, K)
|
|
print("Исправленный сигнал:", X1)
|
|
|
|
|
|
with open("Res44.bin", "wb") as f:
|
|
pickle.dump(X1, f)
|
|
print("Результат записан в Res44.bin")
|
|
else:
|
|
print("Аномальных отсчётов не обнаружено.")
|
|
|
|
return X, X1 if K else X
|