M3_9 1) Создайте модуль М1, содержащий две функции: - функция 1: аргументы - список Х с последовательностью отсчетов некоторого сигнала и два числовых параметра:М1 и М2; в функции должен создаваться кортеж К с индексами "аномальных" отсчетов сигнала, для которых выполняются неравенства: X[i]-X[i-1]M2. - функция 2: аргументы - список Х с отсчетами сигнала и кортеж К с индексами "аномальных" отсчетов; в функции должен создаваться новый список Х1, в котором элементы совпадают с элементами из Х, если те не являются "аномальными", а элементы из списка К заменяются на X[i]=0.5*(X[i-1]+X[i+1]), а если "аномальным" окажется последний элемент, то его значение заменяется на значение предпоследнего элемента. 2) Создайте еще один модуль М2, в котором должны выполняться операции: - запрашивается и вводится имя текстового файла со значениями сигнала; проверяется наличие файла и при отсутствии - повторение запроса; - из указанного файла считывается список Х с сигналом, причем в строках файла может быть разное число отсчетов сигнала; - запрашиваются и вводятся граничные значения М1 и М2 (с проверкой: М1 M2: K.append(i) return tuple(K) def cor_anom(X, K): X1 = X.copy() n = len(X) for idx in K: if idx == n - 1: X1[idx] = X[idx - 1] elif idx == 0: X1[idx] = X[idx + 1] else: X1[idx] = 0.5 * (X[idx - 1] + X[idx + 1]) return X1 ```