Удаление электрических артефактов из данных временных рядов - PullRequest
1 голос
/ 05 октября 2019

Я пытаюсь обнаружить пики, протуберанцы пиков и ширину пиков, используя данные временных рядов (панды и сципи), используя лабораторию Jupyter. У меня есть электрические помехи в моих данных, и это влияет на мое обнаружение пиков и значения протуберанцев. КакМогу ли я удалить / отфильтровать эти шумы (нисходящие), чтобы получить выходные данные с чистыми пиками, чтобы обнаружение пиков было безошибочным?

прилагается фигура, показывающая обнаруженные пики (красная точка), выступ (зеленая линия), ширина (серая линия) ..

import pandas as pd
import numpy as np
import scipy as sp
import matplotlib.pyplot as plt
import bokeh.plotting as bp
from scipy import signal
from scipy.signal import find_peaks, peak_prominences,peak_widths
from bokeh.io import output_notebook, show
output_notebook()

df = pd.read_csv(home_dir +"/concatenated_file/concat_csv.csv")
time = df.loc[:,"Time(s)"]   
ch465 = df.loc[:,"AIn-1 - Dem (AOut-2)"] #signal, 465
ch405 = fd.loc[:,"AIn-1 - Dem (AOut-1)"] #background, 405
ca= (ch465-ch405/ch405)
peaks, _ = 
find_peaks(ca,height=None,threshold=None,distance=10000,prominence= 
(0.05,0.2),width=None,wlen=500,rel_height=0.5,plateau_size=None)
prominences = peak_prominences(ca, peaks)[0]
contour_heights = ca[peaks] - prominences
peak_half_width = peak_widths(ca, peaks, rel_height=0.5)
y1=(peak_half_width[1])
w1=(peak_half_width[2]/121.9)
w2=(peak_half_width[3]/121.9)

pa1 = figure( plot_height=350, plot_width=700) 
pa1.line( time, ca, line_width=1)
pa1.circle(time[peaks], ca[peaks], color="red", size=8,)
pa1.segment(time[peaks], contour_heights, time[peaks], ca[peaks], 
color="green", line_width=0.5) #vertical line depecting prominences
pa1.segment(w1,y1,w2,y1, color="grey", line_width=0.5) #horizontal line 
depecting peak width
pa1.xgrid.visible = False
pa1.yaxis.axis_label = "DeltaF/F"
pa1.xaxis.axis_label = "time(sec)"
show (pa1)

example is in the link below-

шум и пик весь след

...