Я должен написать функцию, которая позволит мне найти локальные значения max и min из ряда значений.
Данные для функции-это x, y каждого "пика". Выходными данными являются 4 вектора, которые содержат x, y max и min "пиков".
Чтобы найти максимальные пики, я должен "стоять" на каждой точке данных и проверять, что она больше или меньше, чем соседи с обеих сторон, чтобы решить, является ли это пиком (сохраните как пик макс/мин). Точки на обоих концах имеют только по 1 соседу, не рассматривайте их для этого анализа.
Затем напишите программу для чтения файла данных и вызовите функцию для вычисления пиков. Программа должна сформировать график, показывающий введенные данные с вычисленными пиками.
1-й файл представляет собой массив float64 (2001,) размера. Все данные приведены в столбце 0. Этот файл представляет амплитуду сигнала во времени, частота дискретизации составляет 200 Гц. Начальное время Asume равно 0.
Программа также должна создать файл .xls, в котором отображаются 2 таблицы: 1 с минимальными пиками, а другой с максимальными пиками. Каждая таблица должна иметь заголовок и состоять из 2 столбцов, в одном из которых указано время возникновения пиков, а в другом-амплитуда каждого пика.
Панды сюда не допускаются.
first file is a .txt file, and is single column, 2001 rows total
0
0.0188425
0.0376428
0.0563589
0.0749497
0.0933749
0.111596
0.129575
0.147277
0.164669
0.18172
...
Текущая попытка:
import numpy as np
import matplotlib.pyplot as plt
filename = 'location/file_name.txt'
T = np.loadtxt(filename,comments='#',delimiter='\n')
x = T[::1] # all the files of column 0 are x vales
a = np.empty(x, dtype=array)
y = np.linspace[::1/200]
X, Y = np.meshgrid(x,y)