본 논문에서는 두 사람의 합쳐진 심전도 신호를 분리하여 개인의 심전도 신호로 복원하는 방법을 제안한다. 합쳐진 심전도 신호를 분리하기 위해, 두 사람의 평균 심전도 신호를 사전에 측정하여 가지고 있다고 가정한다. 평균 심전도 신호는 합쳐진 심전도 신호에서 개인의 심전도 신호를 식별하는데 활용될 수 있다. 심전도 신호는 거의 주기 신호의 특성을 가지고 있기 때문에, 자기상관성을 구하면 심박 수의 배수마다 높은 피크 값을 가진다. 이를 통해 각 개인의 심박 주기를 파악할 수 있다. 파악된 두 사람 각각의 주기와 평균 심전도 신호를 이용하여 각각의 R-peak가 어느 사람의 R-peak인지 분류할 수 있다. 즉, 각 사람의 평균심전도 신호를 찾아진 R-peak위치에 배치하여 각 사람의 심전도신호의 추정신호를 만든 뒤 각 신호에 가중치를 얼마나 줘야 하는지 LMSE 최적화를 통해 계산된다. 이 가중치를 기반으로 복원신호를 만들어낸다. 이 복원신호에 에러 신호를 각 복원신호의 비율만큼 더해주는 추가 보정작업을 거침으로써 보다 실질적인 신호로 복원한다. 실험 결과를 통해 합쳐진 심전도 신호가 성공적으로 개인의 심전도 신호로 분리되는 것을 알 수 있다.
This paper presents a new method to decompose a duplicated ECG signal, which is measured from two people, to two individual ECG signals. In paper, it is shown that the duplicated ECG signal can be decomposed, provided that their SAECG signals are known. As the SAECG signal is the average of a ECG signal, it is a feature to identify individual ECG signals from the duplicated signal. Since the ECG signal is nearly periodic, so-called heart-rate, the period of each ECG signal can be found by using the autocorrelation of the duplicated signal, That is, the autocorrelation has high peaks at the multiple instants of heart-rate of each person. With the heart-rate of each person obtained by some processing, all R-peaks are identified by the SAECG signals. To be concrete, the SAECG signal of each person is repeatedly placed at the R-peak instants with his heart-rate, and the weight of each SAECG signal is computed by LMSE optimization. Finally, as adding the error signal in the LMSE optimization processing to the weighted SAECG signal, each individual ECG signal is obtained. In experimental results, we demonstrate that the duplicated ECG signal is successfully decomposed into two ECG signals.
최근 U-헬스케어 기술의 발전에 따라 병원, 보건소 등의 전문 기관에서 측정, 분석하던 심전도 신호를 일상생활에서도 쉽게 접할 수 있게 되었다. 스마트 워치와 같은 웨어러블 디바이스는 대부분 맥박 수 정도를 체크하여 사용자에게 콘텐츠를 제공하는 방식으로 개발되어 있다. 패치형 심전도 측정기와 같은 웨어러블 디바이스 또한 주 기능인 심전도 신호 측정 기능 외에도 활용이 가능하도록 다양한 콘텐츠 응용 연구 개발이 활발하다[1-3].
본 논문에서는 휴대용 심전도 신호 측정 기기로 측정한 두 사람의 심전도 신호의 분리 방법을 제안한다. 두 사람이 손을 잡은 상태에서 각 사람의 한쪽 손을 측정 기기에 접촉함으로써 두 사람의 합쳐진 심전도 신호를 얻을 수 있다. 합쳐진 신호를 각 사람의 평균 심박신호를 이용하여 분리하는 방법을 제안한다.
기존의 신호 분리 방법으로는 먼저 PCA를 기반으로 한 신호 분리 방법이 J. He[4], S. Xie[5] 등에 의해 연구되고 있다. 이는 대표적인 특징 추출 방법이나, 심전도 신호를 분리하는 경우에 있어서 여러 잡음이 섞여있는 경우 많은 계산량을 요구한다. 또한 푸리에 변환을 이용한 주파수 대역 분리방법이 J.He[6], T.Yamada[7] 등에 의해 연구되어 왔다. 중첩된 신호에서 특정 주파수 신호만을 분리할 수 있는 방법으로, 심전도 신호의 분리에 사용하기에는 개인의 심적 변화 등으로 인한 맥박수 변화가 크게 작용한다는 점이 중첩된 심전도 신호 분리에 부적합하다. 또 다른 신호 분리 방법으로는 경험적 모드 분해(EMD:Empirical Mode Decomposition) 를 이용한 성분 추출 방법 등이 있다. F. Agrafioti[8], M. Park[9] 등에 의해 연구되고 있는 방법으로, 내재모드함수들을 추출하는 방법이다. 이 방법은 신호의 모든 국소 극값을 반복적으로 식별하기 때문에 계산 과정이 복잡하다는 단점을 가지고 있다. 이와 비교하여 본 논문에서는 일정한 심박 파형이 주기적으로 나타나는 심전도 신호의 특징을 이용하여 신호 분리를 구현하였다.
제안된 방법은 휴대용 심전도 신호 측정기기를 주 활용 용도 외의 오락적 분야로 사용하기 위해 개발되었다. 평소의 심전도 신호 상태와 분리된 심전도 신호 상태의 변화를 분석하여 두 사람의 상호 호감도 측정 등의 분야에 활용될 수 있다. 두 사람이 접촉하기 이전의 평상시 심전도 신호와 두 사람이 접촉한 후의 심전도 신호에는 맥박 수의 변화가 발생한다. 이러한 점에 착안하여 두 사람이 서로 접촉하기 전에 각 사람의 평균 심전도 신호를 측정한 결과를 바탕으로, 두 사람이 접촉한 상태의 합쳐진 심전도 신호에서 각 사람의 심전도 신호를 분리해내어 심전도 신호의 변화를 분석함으로써 상호 호감도 측정 등에 활용할 수 있다.
합쳐진 심전도 신호의 분리를 위해서 측정 시점 이전의 평소의 평균 심전도 신호[10]를 계산한다. 이를 바탕으로 합쳐진 신호를 분리하는데 활용된다. 앞에서 언급한 바와 같이 분리한 신호의 분석 결과를 통해 두 사람의 상호 호감도와 같은 오락적 요소 등의 콘텐츠를 사용자에게 제공할 수 있을 뿐만 아니라 심전도 분리 알고리즘을 통하여 임산부와 태아의 심전도 신호의 분리 [11] 등의 분야에도 활용될 수 있을 것으로 기대한다.
본 논문에서는 평균 심전도 신호를 가지고 있는 두 사람이 함께 측정한 심전도 신호를 분리하는 방법에 대하여 제안한다. 제안하는 방법의 전체 알고리즘은 그림 1과 같다.
두 사람의 중첩된 심전도신호 C를 입력 신호로 한다. 심장 박동 수가 시간에 따라서 변화할 수 있기 때문에, 일정 구간만큼 분할하여 해당 구간별로 제안하는 알고리즘을 수행한다. 그림 2는 구간분리의 사례를 보여준다.
분할된 각 신호에 대하여 Pan & Tompkins의 알고리즘[12]을 사용하여 R-peak를 검출한다. 그 후 R-peak 값을 포함하는 일정부분 구간을 제외한 나머지 성분들을 전부 0으로 하는 전처리 필터링 과정을 거친다. R-peak 외의 부분을 0으로 처리하는 이유는 주기의 검출을 위해서는 R-peak 근처의 다른 파형이 주기 검출에 장애요인으로 작용하기 때문이다.
전처리 과정을 통한 심전도 신호 C를 auto-correlation 수행 과정을 통해 A,B 각 사람의 주기 i, j 를 검출한다. 주기 검출 과정 과정은 그림4와 같다.
Auto-correlation 결과에서 앞부분의 특정 구간 결과 값들은 신호의 R-peak 주기와 관계없는 값을 가질 수 있기 때문에 이 또한 일정 구간을 0으로 만드는 후처리 과정을 거친다. 즉, 주기 검출 결과 정상 맥박주기로 판단할 수 없는 범위를 0으로 처리한다.
후처리 과정을 거친 auto-correlation 결과에서는 일정 간격으로 peak가 존재한다. 이는 심전도 신호의 주기적 특성상 높은 값을 가지는 peak 값은 두 사람의 심전도신호(A, B) 중 한 사람의 주기이다. 결과 값의 전체 구간에서 4개의 상위 peak를 찾으면 시작점과 처음 나타난 두 개의 peak의 위치 값의 2배수 형태로 peak가 존재하게 된다. 이를 주기 i, j로 정한다.
검출된 주기 i, j를 이용하여 신호 C 의 각 R-peak에 대하여 주기 검사를 하여 각 peak가 i, j 중 어느 주기에 해당하는 R-peak인지 검사하는 과정의 알고리즘은 그림 6과 같다.
R-peak에 대하여 검출한 주기 i 간격 이후로 R-peak가 존재하게 되면 두 R-peak는 주기 i를 갖는 사람의 R-peak로 판단한다. 이를 신호 C의 전체 R-peak에 적용하게 되면 주기 i, j에 해당하는 R-peak를 찾을 수 있다. 그러나 두 사람의 R-peak가 서로 근접해 있는 경우 심전도 파형이 겹쳐 감쇄하거나 증폭된 하나의 심전도 파형으로 나타날 수 있어 신호를 분리하는데 방해 요소로 작용한다.
이를 해결하기 위한 알고리즘은 그림 8과 같다.
R-peak가 동시에 주기 i, j에 해당하는 경우, A, B의 R-peak가 겹쳐있는 경우로 판단한다. 그 후, 분할된 구간의 처음이나 끝에 겹쳐진 R-peak가 존재하는 경우에는 이전, 이후의 A, B의 R-peak와 auto-correlation 수행 결과로 얻어진 주기만큼의 거리에 실제의 R-peak가 존재한다고 가정하고 R-peak의 위치를 확정한다.
검출된 주기 i, j가 A, B 중 누구의 주기에 해당하는지 검증 단계를 거치지 않았기 때문에 판단할 수 없다. 이는 A의 주기가 i이고 B의 주기가 j일 경우와, A의 주기가 j이고 B의 주기가 i일 경우의 두 가지의 경우의 수가 발생하게 된다. 따라서 각각의 경우의 수에 대한 추정 신호를 생성한다.
합 신호
이 때, 합 신호
식(2)에서 구한 오차 를 최소화하는
이러한 과정을 통해 생성된
이와 같은 방법으로 복원한 신호는 실제 신호와 비교하여 오차를 가지고 있다. 이러한 문제를 해결하기 위하여 식(4)를 이용하여 에러 신호
식(1)에 나타난 바와 같이 추정된 중첩된 신호 (
각 신호의 비율을 계산할 때, 분모가 0으로 수렴하여 에러 신호에 해당하는 가중치 비율이 1을 넘어가는 경우에서는 에러 신호
본 논문에서는 MIT-DB의 부정맥 데이터베이스를 이용하여 실험을 진행하였다[13]. 전체 48개의 부정맥 환자 데이터 중 실험에 사용한 신호는 잡음이 크게 포함되어 있지 않고, 정상 파형의 형태에 가까운 68세의 남자 데이터 116번, 51세의 여자 데이터 119번, 59세의 남자 데이터 205번, 87세의 여자 데이터 220번, 56세의 남자 데이터 234번의 5개 데이터를 이용하였다.
각 신호에 대하여 필터링을 통해 잡음을 제거한 후, 전체 길이에 대하여 평균 심전도 신호를 추출하였다. 또한, 심전도 신호는 측정 기기의 전극 간의 전위차를 측정한다. 두 사람이 접촉한 상태의 심전도 측정 기기의 측정 결과는 두 사람의 전위차의 합으로 나타나므로 각 데이터를 합친 신호가 신체가 접촉된 두 사람의 신호 C로 볼 수 있다. 접촉된 상태를 데이터베이스에 저장된 두 사람의 심전도 신호의 합으로써 모델링하였다. 이렇게 생성된 신호 C에 대하여 심전도 분리 알고리즘을 수행하였다. 각 신호의 sampling rate는 360Hz이며, 전체 길이는 10000sample 길이로 고정하였다. 분할 구간은 2000sample 길이로 분할하였다. 전체 합쳐진 신호에 대하여 2000샘플 길이로 구간 분할을 거친 뒤, 각 구간에 대하여 먼저 R-peak를 검출한다. 그 후 전처리 과정을 거친 auto-correlation 결과를 기반으로 하여 각 파형에 대한 주기를 검출하였다. R-peak에 대하여 검출된 주기에 해당하는 R-peak 판단 알고리즘을 수행하였다. R-peak 알고리즘 결과로 나타난 신호
그 후 복원 신호에 대하여 신호
중첩된 신호를 제안한 알고리즘으로 분리한 결과는 그림9와 같이 나타난다. 10000 sample 길이의 합쳐진 신호를 제안하는 알고리즘을 이용하여 신호를 분리하였다. 전체 합 신호를 표 1과 같이 5개의 영역으로 실험을 진행하였다. 각 영역은 2000sample 단위로 분할하였다. 8000~10000sample 영역에서
[표 1.] 구간별 α, β 값과 원 신호와의 상관계수
구간별 α, β 값과 원 신호와의 상관계수
LMSE (Least Mean Square Error) 최적화 과정의 영역별
다른 다양한 심전도 신호에 복원 신호 , 과 원 신호
[표 2.] 전체 구간의 복원신호와 원신호간의 상관 계수
전체 구간의 복원신호와 원신호간의 상관 계수
본 논문에서는 두 사람의 합쳐진 신호를 분리하여 개인의 심전도 신호로 복원하는 방법을 제안하였다. 중첩된 신호에서의 R-peak를 찾아낸 후, auto-correlation 을 수행하여 R-peak의 주기를 찾아냈다. 그 후, 두 사람의 평균 심전도 신호를 이용하여 R-peak를 일치시킨 후 최적화 과정을 거쳐 원 신호에 가깝게 복원하였다. 그 후,
제안한 알고리즘의 결과, 전체 구간에 대하여 신뢰성이 높은 복원 신호를 획득할 수 있었다. 기존의 연구 방식으로는 개인별로 고려해야 하는 변수가 크게 작용하고, 계산량이 많아 시간이 오래 걸리는 등의 단점이 있다. 반면, 제안하는 방법은 개인의 평균 심전도 신호를 이용하여 개인별로 고려해야 하는 변수가 적으며, 계산량이 적어 처리 속도가 빠른 장점을 가지고 있다.
향후 연구과제로는 제안한 방식을 보완하여 보다 신뢰성이 높은 복원 신호를 추출하고, 복원 신호의 사용 용도를 보다 넓히는 점이 필요하다. 또한 분리된 신호의 분석을 통해 U-헬스케어 기기의 엔터테인먼트 콘텐츠로 응용할 수 있는 연구개발이 필요하다.