Я получил сигнал, который показывает относительную форму, то есть локальные максимумы фактически равны 0, а локальные минимумы являются истинным искажением.
Мне удалось восстановить что-то близкое к исходному сигналу, но результат сталнедифференцируемый, поскольку я разложил его на косинус-функции с амплитудой и частотой в зависимости от (x) недифференцируемым способом.
Мой вопрос заключается в том, могу ли я заставить свой сигнал быть дифференцируемым простым способом?
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
train_fit = pd.read_csv('train_fit.csv')
fig,ax = plt.subplots(figsize=(24,9))
ax.fill_between(train_fit['x'],train_fit['H_A'],-train_fit['H_A'],alpha=.1)
#ax.plot(train_0['x'],train_0['H']) #the orignal signal
ax.plot(train_fit['x'],train_fit['H_fit'])
ax.plot(train_fit['x'],train_fit['H_fit_adj'])
ax.axhline(0,color='k',linestyle=':')
ax.legend(loc='upper left')
ax2 = ax.twinx()
ax2.plot(train_fit['x'],train_fit['H_f'],color='gray',alpha=.5)
ax2.legend(loc='upper right')
plt.show()
образец данных здесь: https://pastebin.com/ViwUDTx8