import math def stats_on_signal(x, N): NN = len(x) if N <= 0 or N >= NN: raise ValueError("N должно быть > 0 и < количества отсчётов сигнала") part1 = x[:N] part2 = x[N:] M1 = sum(part1) / len(part1) M2 = sum(part2) / len(part2) def sample_var(data): n = len(data) m = sum(data) / n return sum((v - m) ** 2 for v in data) / (n - 1) C1 = sample_var(part1) C2 = sample_var(part2) return M1, M2, C1, C2, NN def process_file(filename, N): values = [] with open(filename, "r", encoding="utf-8") as f: for line in f: if not line.strip(): continue for token in line.replace(",", " ").split(): values.append(float(token)) M1, M2, C1, C2, NN = stats_on_signal(values, N) print(f"Число отсчётов NN = {NN}") print(f"M1 = {M1}, M2 = {M2}") print(f"C1 = {C1}, C2 = {C2}") aaa = (C1 * N + C2 * (NN - N)) / (NN - 2) t = abs(M1 - M2) / math.sqrt(aaa) F = max(C1, C2) / min(C1, C2) print(f"t = {t}") print(f"F = {F}") return values, t, F