[비정형 데이터] 09. 신호데이터의 추세 제거하기

2020. 5. 4. 18:16데이터 분석/비정형데이터분석

신호 데이터에서 주기나 피크를 분석할 때는 추세를 제거해야하는 경우도 있습니다. 추세가 있으면 피크가 아님에도 높은 값에 위치하거나 낮은 값에 위치하는 값을 피크라고 판단할 수도 있기 때문입니다. 

 

추세는 pracma 패키지의 detrend함수를 통해 제거할 수 있습니다.

  • detrend(data, tt=추세제거 방법, bp=c(몇 개로 잘라서 볼 것인가))
    • tt=linear: 선형의 추세 제거
    • tt=constant: 구간을 나누어 그 구간의 평균점을 찾고 해당 평균점을 빼면서 추세 제거
t = 0:20
x = 3*sin(t)+t # 증가하는 추세를 만들기 위해 t를 더함 

y = pracma::detrend(x,tt='linear',bp=c())  # 1차원의 추세만 제거 가능(다차원 추세 안됨)

plot(t,x,'l',ylim = c(-5,25))
lines(t,y,col='red')

 

결과

 

빨간색 라인을 통해 추세가 제거된 것을 확인할 수 있습니다.

728x90