다음과 같은 CSV 파일에 전기 생리학 데이터가 들어 있습니다. 세 번째 열은 소프트웨어를 사용하여 필터링 된 데이터를 포함합니다. 두 번째 열은 필터링되지 않은 데이터를 포함합니다.시계열 데이터의 고주파 필터링 - 파이썬
data = pd.read_csv("trial_filtered.csv")
datad = np.asarray(data)
x1 = datad[:100,0]
y1 = datad[:100,1]
y2 = datad[:100, 2]
이 데이터를 플롯하고 비 필터링에서 필터링 된 것과 비교하고 싶습니다.
plt.subplot(2, 1, 1)
plt.plot(x1, y1, 'yo-')
plt.title('BB565 - OD')
plt.ylabel('raw signal (voltage)')
plt.subplot(2, 1, 2)
plt.plot(x1, y2, 'r.-')
plt.xlabel('time (milliseconds)')
plt.ylabel('filtered data')
plt.show()
또한 두 번째 열에 대해 40Hz 이상의 모든 것을 필터링하고 추가 열을 만들고 싶습니다.
다음을 시도했지만 계속 붙어 있습니다. nitime 모듈을 사용하지 않고도 내 시계열 데이터에서 고주파수를 필터링 할 수있는 다른 방법이 있습니까? 당신은 하나의 그래프에있는 모든 계열을 표시하려면
y3 = []
ts_y1 = nitime.TimeSeries(y1, time_unit='ms', sampling_interval=1.0)
#let's take out everything above 30 hertz
filter = nitime.analysis.FilterAnalyzer(ts_y1, lb=0., ub=40.)
filtered_ts = filter.fir.datad
y3.append(filtered_ts.copy())