VivaQuant, 보행 ECG 감지를 위한 임베디드 디바이스의 개발 및 검증 가속

“MATLAB, MATLAB Coder 및 Fixed-Point Designer를 통해 소규모 팀이 복잡한 실시간 신호 처리 알고리즘을 개발하고, 이를 최적화하여 전력 및 메모리 요구 사항을 줄이며, 임베디드 코드 구현을 가속하고, 의료 디바이스 검증에 필요한 엄격한 테스트를 수행할 수 있었습니다.”

과제

잡음이 있는 심전도 신호에서 정확한 정보를 추출하기 위한 임베디드 시스템 설계 및 구현

솔루션

MATLAB을 사용하여 대역 내 잡음을 제거하는 알고리즘을 개발하고 Fixed-Point Designer 와 MATLAB Coder를 사용하여 이를 ARM Cortex-M 시리즈 프로세서에 구현합니다

결과

  • 개발 속도 300% 가속
  • 전력 및 메모리 소비 최소화
  • 엄격한 테스트 가능

VivaQuant의 임베디드 대역 내 잡음 제거 알고리즘 처리 전과 후의 ECG 스니펫.

매년 4백만 명 이상의 환자가 어지러움, 기절 또는 심박 수 증가로 인한 불편을 경험합니다. 의사들은 이러한 환자들에게 ECG(심전도)를 통해 심박 수를 꾸준히 모니터링하는 소형 디바이스를 최대 한 달 동안 몸에 부착한 다음 일상생활을 하도록 합니다. 병원에서 수집되는 ECG 기록과 달리 이러한 보행 ECG는 잡음으로 인해 데이터가 오염되어 분석이 어렵거나 불가능한 경우가 있습니다. 이러한 잡음은 긍정 오류와 부정 오류 이벤트 감지를 발생시켜 분석 시간과 비용을 늘리고 심장 박동 이상 진단을 놓치거나 지연시킬 수 있습니다.

VivaQuant사의 엔지니어들은 National Heart, Lung, and Blood Institute의 도움을 받아 MDSP(Multi-Domain Signal Processing™)를 활용하여 ECG 파형 왜곡 없이 대역 내 잡음을 최대 26dB까지 줄이는 심장박동 모니터링 디바이스를 개발 중입니다. MATLAB®을 통해 설계되고 MATLAB Coder™를 통해 임베디드 프로세서에 구현된 이 디바이스는 잡음이 섞인 ECG로부터 심장 박동 이상을 정확하게 감지할 수 있습니다. “저는 복잡한 신호 처리, 제어 및 정보학 알고리즘 개발에 오랫동안 MATLAB을 사용했습니다.” 라고 VivaQuant사의 설립자이자 최고 기술 책임자인 Marina Brockway가 말합니다. “MATLAB Coder와 Fixed-Point Designer를 사용하면 불가능하다고 생각했던 속도로 아이디어를 제품으로 실현시킬 수 있습니다.”

과제

IIR(infinite impulse response) 필터는 ECG 통과대역 밖의 잡음을 줄일 수 있지만 통과대역 내의 잡음은 신호 왜곡 없이 제거할 수 없습니다. 이를 위해 VivaQuant사는 대규모 행렬에서 복잡한 연산을 수행하는 알고리즘을 개발하고 그것을 수 주 동안 배터리 교체 없이 몸에 편안하게 부착할 수 있을 정도로 작은 디바이스에 구현해야 했습니다. 마이크로프로세서와 front-end 전자 장치를 포함한 전체 시스템이 실시간으로 2개 벡터의 ECG를 수집 및 처리하고 1mA 미만의 전류를 소비해야 했습니다.

VivaQuant사는 한 팀이 알고리즘을 개발하고 구현을 위해 다른 프로그래머 팀에게 인계하는 기존 설계 접근 방식을 개선하고자 했습니다. “알고리즘 개발자가 다른 팀에게 설계를 전달하는 과정에서 많은 정보를 잃게 됩니다.” 라고 Brockway가 말합니다. “우리는 이를 성능이나 품질 저하 없이 소규모 팀에서 처리해야 했습니다.”

솔루션

VivaQuant는 MATLAB과 MATLAB Coder를 사용하여 개발을 가속했습니다.

Brockway와 그녀의 동료들은 행렬 연산, 통계 테스트, 디지털 필터 및 신호 감지와 예측을 활용하는 MATLAB과 Signal Processing Toolbox™를 사용하여 부동 소수점 버전의 알고리즘을 만들었습니다.

이들은 동일한 ECG 신호의 잡음이 있는 버전과 없는 버전을 모두 포함한 ECG 데이터에서 이 알고리즘을 검증했습니다. 이들은 알려진 깨끗한 ECG 신호에 다양한 잡음을 추가한 후 이 알고리즘을 적용하여 잡음이 줄어들었는지, 그리고 원래의 ECG 신호 특성이 왜곡되지 않았는지 확인했습니다.

Fixed-Point Designer™를 사용하여 부동 소수점 알고리즘을 고정 소수점으로 변환했습니다. 알고리즘 코드를 측정하여 최소 및 최대 변수 값을 기록하고 이 정보를 사용하여 까다로운 프로세서 제약 범위 내 정확도를 위해 고정 소수점 데이터 유형을 최적화했습니다.

부동 소수점 버전과 고정 소수점 버전을 동등하게 유지하기 위해 각 최적화 단계 후 고정 소수점 구현을 검증했습니다. 팀은 고정 소수점 및 부동 소수점 버전을 테스트 데이터에 대해 자동으로 실행하고 결과를 통계적으로 분석하는 MATLAB 테스트 플랫폼을 개발했습니다.

팀은 MATLAB Coder를 통해 개별 알고리즘 모듈에 대한 C 코드를 생성함으로써 테스트를 가속했습니다. 또한 테스트 실행 중 C 코드를 호출하는 실행 가능한 MATLAB 파일을 만들었습니다.

전체 알고리즘에 대한 C 코드를 생성하고 ARM® Cortex®-M 시리즈 프로세서에 배포한 후 추가 최적화 및 테스트를 수행했습니다.

완성된 프로토타입이 전력 요구사항 내에서 MDSP 알고리즘을 ARM Cortex 프로세서에 구현할 수 있음이 증명됨에 따라 VivaQuant사는 이제 공식 개발 및 테스트를 시작하게 되었습니다.

결과

  • 개발 속도 300% 가속. “MATLAB과 MATLAB Coder를 사용하여 별도의 프로그램 팀이 참여하지 않고도 6개월 만에 알고리즘을 구현할 수 있었습니다.” 라고 Brockway가 말합니다. “기존 접근 방식보다 3~4배 효율적인 프로세스라고 생각합니다. 이 덕분에 매우 복잡한 알고리즘을 실시간으로 임베디드 시스템에 구현하여 환자의 삶의 질을 향상시킬 수 있었습니다.”
  • 전력 및 메모리 소비 최소화. “목표 배터리 사용 시간은 15cc 패키지 기준으로 3주였습니다.” 라고 Brockway가 말합니다. “알고리즘을 최적화하고 이 목표를 초과 달성하는 데 Fixed-Point Designer가 중요한 역할을 했습니다. 디바이스의 무게는 15그램 미만이며 현재 다른 대부분의 디바이스와 달리 몸에 부착하기가 편안합니다.”
  • 엄격한 테스트 가능. “의료 디바이스에서는 품질, 신뢰성, 안전이 매우 중요합니다.” 라고 Brockway가 말합니다. “MATLAB으로 만든 테스트 플랫폼을 통해 모든 개발 단계에서 엄격한 테스트를 실시하고 그 결과에서 자동으로 불일치 사항을 식별할 수 있었습니다.”