Biomedical Instrumentation

Slides:



Advertisements
Similar presentations
제철고 프로그래밍언어 2015 가을학기 강의 #2 Python 변수, 입출력, 배열 박성우 POSTECH 컴퓨터공학과 2015 년 9 월 30 일.
Advertisements

3 학년 문제가 남느냐, 내가 남느냐 1. ( 아씨방 일곱 동무 ) 아씨의 방에는 바느질을 위한 친구가 몇 명이 있었나요 ? 정답은 ? 일곱.
6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
4장 배열과 함수 한빛미디어(주).
Part 03 상수, 변수, 자료형 ©우균, 창병모 © 우균, 창병모.
응용전자회로 강의록# 생체의공학과 최준민 제출일 (월)
제 7 장 함수 사용을 통해 엑셀 정복하기.
C++ Espresso 제2장 제어문과 함수.
신호조절*(Signal Conditioning)
Excel 일차 강사 : 박영민.
Programming을 이용한 ECG증폭기 설계
MEDICAL INSTRUMENTATION I Bio-potential Amplifiers
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
Pspice를 이용한 회로설계 기초이론 및 실습 4
컴퓨터 프로그래밍 기초 [Final] 기말고사
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
MEDICAL INSTRUMENTATION I Bio-potential Amplifiers
EEG 회로 설계 7조 1등 이건우 2등 조영선 3등 홍윤호 4등 전진웅 5등 정다운 Biomedical Engineering.
Medical Instrumentation. H.W #9
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express Slide 1 (of 13)
2장. 데이터의 표현 Lecture #2.
Dynamic Memory and Linked List
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
신호처리 Signal Processing
DK-128 ADC 실습 아이티즌 기술연구소
6장. printf와 scanf 함수에 대한 고찰
M1200 본 기기는 8개의 마이크입력을 가진 앰프 내장형 믹서로서 4Ω Stereo 채널별 600W의 정격 출력이 가능하다.
Tail-recursive Function, High-order Function
C 프로그래밍 C언어 (CSE2035) (Chap11. Derived types-enumerated, structure, and union) (1-1) Sungwook Kim Sogang University Seoul, Korea Tel:
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
어서와 C언어는 처음이지 제14장.
박성진 컴퓨터 프로그래밍 기초 [09] 배열 part 1 박성진
Medical Instrumentation
Lesson 4. 수식과 연산자.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
Quiz #7 다음 수들을 합병 정렬과 퀵 정렬 알고리즘을 이용하여 오름 차순으로 정렬하였을 때, 데이터 이동 회수를 각각 구하라. 여러분은 정렬 과정을 단계별로 보이면서 이동 회수를 추적해야 한다. 단, 퀵 정렬시에 피봇으로 배열의 왼쪽 첫 번째 원소를 선택한다. 5.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express Slide 1 (of 22)
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 09. C언어의 핵심! 함수!
Pspice를 이용한 전기/전자회로 모의해석 –
Chapter 2 Time Domain Analysis
김선균 컴퓨터 프로그래밍 기초 - 7th : 함수 - 김선균
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
실습과제 1(조건문, ) 표준입력으로 수축기 혈압을 입력 받아 그에 따른 적당한 표현을 화면에 출력하는 프로그램을 if-else 문을 이용하여 작성.
Chapter 08. 함수.
장 비 사 양 서 제품특징 제품사양 제조국 브랜드 KEVIC 모 델 DC2148 품 명 DIGITAL PROCESSOR
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
제2장 통신 신호 및 시스템 해석(2).
계산기.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
생체계측 강의록 Medical instrucmentation#8
Ⅰ 전자기초 Ⅱ 디지털 논리회로 Ⅲ C언어 기초 Ⅳ AVR 마이크로 컨트롤러 Ⅴ 마이크로 컨트롤러 개발환경
생체 신호의 실시간 디지털 처리 7조 홍윤호( )-1등
TVM ver 최종보고서
01. ‘한글뷰어’ 설치 전 준비사항.
구조체(struct)와 공용체(union)
제10강 PC정비사 1급(필기) Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved.
AdcRead API 함수 분석 마이크로프로세서.
우리가 만든 학급 일과 옹달샘 12기 ver 아침시간 수업시간 쉬는시간 점심시간 하교시간
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
RPTree 코드분석 (월) Dblab 김태훈.
maria db JDBC PROGRAMMING 5
아두이노 프로그래밍 2일차 – Part4 아날로그 키패드 활용하기 강사: 김영준 목원대학교 겸임교수
수학10-나 1학년 2학기 Ⅲ. 함수 2. 이차함수와 그 활용 (6/15) 이차함수의 최대값, 최소값 수업계획 수업활동.
인하공업전문대학 (2018-2학기) ATmega128 마이크로 프로세서 정보통신과 박기식 교수.
7 생성자 함수.
Presentation transcript:

Biomedical Instrumentation 2010105052 김광우

QRS Detector Digital filter ECG Signal LPF HPF 미분 제곱 적분 Thresholding Decision Digital filter 이 과정들은 마이크로프로세서 내부에서 코딩으로 구현가능

Main () { Int y1, y2 ………………; d = getData; y1=QRS_LPF ( d ); y2=QRS_HPF ( y1 ); y3=QRS_Derivative ( y2); y4=QRS_Square ( y3 ); y5=QRS_MWI ( y4 ); ………………….. }

LPF int QRS_LPF (int x) //y[n]=x[n]-2x[n-6]+x[n-12]+2y[n-1]-y[n-2] { static int y1=0, y2=0, x[26], p=12; int y; x[p]=x[p+13]=x; y=x[p]-(x[p+6]<<1)+x[p+12]+(y1<<1)-y2; y2=y1; y1=y; if(--p<0) p=12; return (y>>5); } 함수가 끝나도 남아있도록 Ring-buffer 뒤부터 저장 이득 32배

HPF LPF의 출력을 HPF의 입력으로 이용 int QRS_HPF (int x) //y[n]=x[n-16]-1/32(l[n-1]+x[n]-x[n-32]) { static int l1=0, x[66], p=32; int l; x[p]=x[p+33]=x; l=l1+x[p]-x[n+32]; l1=l; if(--p<0) p=32; return (x[p+16]-(l>>5)); } All pass filter 에서 Low pass filter 를 빼면 High pass filter 가 된다.

Derivative_ver1 HPF의 출력을 Derivative의 입력으로 이용 int QRS_Derivative (int x) //y[n]=x[n]-x[n-1] { static int x1; int y; y=x-x1; x1=x; return (y); } 정말 간단한 미분기 코드이다. 간단하지만 Signal 의 변화에 약하다는 단점이 있다.

Derivative_ver2 HPF의 출력을 Derivative의 입력으로 이용 int QRS_Derivative (int x) //y[n]=1/8(2x[n]+x[n-1]-x[n-3]-2x[n-4]) { static int x1, x2, x3, x4; int y; y=((x<<1)+x1-x3-(x4<<1))>>3; x4=x3; x3=x2; x2=x1; x1=x; return (y); } Ver1 에 비해서 Signal 의 변화추이에 더 좋다. 결과에 영향을 주는 데이터가 Ver1 에서는 현재와 그 전 이라면 Ver2 에서는 4번째 전 데이터까지 영향을 미친다. 대입하는 순서매우 중요

Square Derivative의 출력을 Square의 입력으로 이용 저가형 프로세서는 곱셈연산이 오래 걸린다. Datasheet 를 확인해서 Real-time에 영향을 줄 경우 다음과 같이 해결 고가형 int QRS_Square (int x) { return (x*x); } 저가형 int QRS_Abs (int x) if(x<0) return(-x); else return (x); Square를 하는 이유는 음수를 양수로 만들기 위해서이다. 그러므로 여의치 않은 경우 절대값을 이용할 수 있음

Moving window Integral int QRS_MWI (int x) // 보통 QRS의 폭은 100ms(빠른 연산필요) // y[n]=1/32(x[n]+x[n-1]+......+x[n-31]) { static int x[3], p=0; static long sum=0; long ly; int y; if(++p==32) p=0; sum-=x[p]; // 가장 옛날 데이터 sum+=x; // 가장 최근 데이터 x[p]=x; // 데이터 교체 ly=(sum>>5); if(ly>32400) y=32400; else y=(int)ly; return(y); } 적분 계산이 필요 신호는 계속 입력됨 최근 신호는 더하고 가장 오래된 순으로 데이터를 버리면 적분완성