30

DIGITAL SIGNAL PROCESSING - booksr.co.kr¥¼ 이용한디지털신호... · 실무 부록2장. 데이터 수집 부록3장. 생체신호 계측 디지털 신호처리. digital signal

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

  • DIGITAL SIGNAL PROCESSING DIGITAL SIGNAL PROCESSING

    머 /리 /말

    3머리말 •

    디지털 신호처리(DSP) 제품들은 우리 생활의 일부분이 되었으며, 하루에도 몇 번씩

    이러한 제품들을 접하고 있다. PC 보급과 DSP 칩(chip)이 일반화되기 전에는 석사 및

    박사 과정에서 가르쳤으나 요즈음 대학의 전기/전자공학과와 유사한 학과, 컴퓨터와 관련

    학과 학생들에게는 디지털 신호처리 과목을 기초 과목으로 강의하고 있다.

    서점에 가보면 디지털 신호처리 책은 많이 출판되어 있다. 하지만 대부분의 책들이

    이론서이거나 실습을 통해 쉽게 익히는 책들은 MATLAB 언어로 작성되어 있다. 따라서

    저자도 실습을 통한 이론 습득을 좋아하기 때문에 오랫동안 MATLAB을 사용한 디지털

    신호처리 책을 사용해서 강의를 하였다.

    LabVIEW로 작성된 신호처리 책은 거의 없다고 할 수 있으며, 심지어 외국도서도

    LabVIEW 언어로 실습하는 책은 두어 권밖에 찾을 수 없다. 이 외국도서들도 신호처리

    의 기본서라기 보다는 통신과 같은 특정한 분야의 전문 책이다. 따라서 저자는 아주 쉬운

    프로그래밍 언어인 LabVIEW를 기반으로 학부생 2학년 정도에서 익힐 수 있는 기본적

    인 디지털 신호처리 입문서에 대한 필요성을 느끼게 되었다.

    책을 집필함에 있어서 중요하게 생각하는 것은 여러 가지가 있다. 첫 번째는 목표를

    명확하게 하는 것이다. 이 책의 목표는 학부생들이 흥미를 가지고 신호처리 과목을 공부

    하도록 입문서로 집필하는 것이다. 이를 위해서 아주 쉽게 프로그래밍을 할 수 있는 그

    래픽 프로그래밍 언어인 LabVIEW를 신호처리 도구로 선택하였다. 또한 책 내용에는

    너무 많은 것을 포함하지 않도록 하고, 이론은 예제와 실습을 통해 단계적으로 확고하게

    습득될 수 있도록 하였다. 하지만 기존에 LabVIEW 프로그래밍 언어로 작성된 신호처리

    에 대한 책들이 거의 없기 때문에 MATLAB 신호처리 서적들을 참고로 해서 많은 실습

    들을 오랜 기간 동안 독자적으로 개발하게 되었는데, 이의 유효성과 효과성 검증은 독자

    들에게 맡긴다.

    두 번째로 중요하게 생각하는 것은 강의와 학습을 효과적으로 하기 위해서 책의 구성

    과 내용을 잘 작성해야 한다는 것이다. 전체적인 구성과 내용은 요약하면 1장에서 5장

    까지는 신호 분석을, 6장에서 10장까지는 시스템의 분석, 구현과 설계를, 그리고 부록 1장

    은 선수 과목으로 LabVIEW 프로그래밍을 배우지 못한 독자들을 위해서 LabVIEW

    프로그래밍 언어의 기초를, 부록 2장과 3장에서는 실제적으로 생체 신호를 측정하는 경험

    을 해 보는 것으로 작성하였다. 이러한 책의 구성과 내용은 다음 그림에 나타낸다.

  • DIGITAL SIGNAL PROCESSINGDIGITAL SIGNAL PROCESSING

    신호 분석(Analysis)

    개요 1장. 개요

    수학

    2장. 이산 신호

    3장. 연속시간 푸리에 분석

    4장. 이산시간 푸리에 분석

    공학 5장. 이산 푸리에 변환(DFT)

    언어부록1장. LabVIEW

    프로그래밍 기초

    4 • 머리말

    1장부터 5장까지는 디지털 신호의 분석에 대해서 상세히 설명한다. 특히 1장에서는 신호와 신호의 분류에 대해서 자세히 설명하고, 시스템에 대해서는 개괄적으로 설명하였다. 그리고 아날로그 신호처리와 디지털 신호처리에 대한 개괄적인 설명과 디지털 신호처리를 응용한 제품들을 살펴본다. 그런 후에 디지털 신호처리의 범주에 대해서 설명한다. 2장에서 3장까지는 신호에 대한 수학적인 측면에서 연산과 변환을 소개한다. 특히 2장은 신호의 종류와 연산에 대해서 자세히 설명하였으며, 3장과 4장에서는 이산 신호의 푸리에 분석을 다루었다. 그리고 5장에서는 공학적인 측면에서 푸리에 변환을 다루었다. 이로써 신호 분석에 대한 내용은 대부분 설명을 하였다. 6장에서 8장까지는 시스템 분석에 관한 내용을 기술하였고, 9장에서는 디지털 필터를 구현하는 방법인 필터 구조를, 10장에서는 필터 설계를 설명하는 예로 FIR 필터 설계를 두었다. 하지만 이 책은 디지털 신호처리 입문서이기 때문에 9장의 필터 구조와 10장의 FIR 필터 설계 방법에서 일부분만을 설명하였고, 그리고 IIR 필터 설계 부분도 생략

    디지털 필터(시스템)

    분석

    6장. 이산시스템과 응답

    7장. z 변환

    8장. 이산시스템 표현과 분석

    구현 9장. 디지털 필터 구조

    설계 10장. FIR 필터 설계

    실무부록2장. 데이터 수집

    부록3장. 생체신호 계측

    디지털 신호처리

  • DIGITAL SIGNAL PROCESSING DIGITAL SIGNAL PROCESSING

    5머리말 •

    하였다. 이는 학부용 교재로서 필터 구현이 무엇이고 필터 설계는 어떻게 하는 지를이해하는 것으로 충분하다는 것이 저자의 생각이었다. 좀 더 공부를 하고 싶은 독자들은 더 전문적인 책을 참고하기 바란다. 저자가 근무하고 있는 학과에서도 LabVIEW 프로그래밍 언어를 가르치지 않는다. 따라서 LabVIEW 언어를 모르는 독자들과 학생들을 위해서 부록 1장에 LabVIEW 프로그래밍 언어의 기초를 두었다. 이는 학생들이 프로그래밍 언어를 먼저 이해하고 있는 것은 수업에서 흥미를 갖게 하고 능률적으로 학습하는 측면에서 매우 중요하기 때문이다. 따라서 저자도 디지털 신호처리를 강의하기 전에 2주 동안(6시간) 부록 1장을 먼저 강의하고, 그런 후에 1장부터 강의를 한다. 그리고 부록 2장과 3장에 데이터 수집 방법과 실제적으로 생체 신호를 계측하는 것을 두었다. 이 실습들은 매우 간단한 것이지만 실제로 학생들이 신호를 수집하고 이를 의미가 있는 데이터로 변경하여 봄으로써 신호처리에 대해서 새로운 경험을 얻게 되고, 상당히 흥미를 갖게 될 것이다. 이 실습 후에 혈압 측정이나 심전도 측정을 하는 과제를 내면 학생들이 흥미를 갖고 능동적으로 수행할 수 있을 것으로 생각한다. 세 번째는 책을 집필하는 것도 서비스라는 것이다. 즉 강의를 들어도 이해되지 않는 경우에 책을 읽으면 이해가 되도록 해야 한다. 이를 위해 예제와 실습을 통해 이론을 이해하도록 오랜 기간 동안 열심히 준비하고 만들었다. 하지만 혼자서 집필을 하였기 때문에 아직도 많은 오류와 불확실한 내용들이 많이 있을 것으로 생각한다. 독자들이 오류를 지적해 주고 잘못된 것을 날카롭게 비판해 주면 이 책은 훌륭한 교재로 다시

    태어날 수 있을 것이다. 아무쪼록 이 책이 디지털 신호처리를 배우는 데에 좋은 입문서가 되기를 간절히 바란다. 끝으로 이 책이 나오기까지 옆에서 격려해 준 아내와 힘들어하는 나에게 가끔씩 안마를 해 주는 두 아들, 태윤이와 오현이에게 고맙다는 말을 전하고 싶다. 또한 LabVIEW 책이 나오기를 인내로 참고 기다리면서 지원해 준 NI 회사의 박세일 부장님과 책의 편집과 집필을 도와준 생능출판사의 최일연 이사님과 김민수 팀장님에게도 감사

    드린다.

    2012년 8월

    권영만

  • DIGITAL SIGNAL PROCESSINGDIGITAL SIGNAL PROCESSING

    추 /천 /의 /글

    내쇼날인스트루먼트는 지금으로부터 대략 10여 년 전에 “Software is the Instruments”라는 모토를 시작으로, 소프트웨어에 대한 시장의 인식이 매우 저조하던 시절부터 현재에 이르기까지 끊임없는 노력으로 소프트웨어가 많은 부분의 하드웨어를 대체하는 현상들을 직접 목격하기에 이르기까지 많은 어려움과 도전을 반복하며 적지 않은 분야에서 기술의 표준을 경험하여 왔습니다.

    이것이 NI가 소프트웨어와 하드웨어의 “융합”이라는 키워드를 통해 과거와 현재의 기술이 극복하지 못한 공학적인 어려움을 새로운 시각에서 바라보고, 문제를 풀어갈 수 있다는 강한 믿음을 갖게 되지 않았나 회상해 봅니다.

    이렇듯, LabVIEW는 현재의 문제를 풀어가는 과정이 미래를 준비하는 전부라고 생각하고 하나하나 준비해 갑니다. LabVIEW는 최초의 그래픽 기반 프로그래밍 언어로써 순서도를 그려나가면서 하나의 어플리케이션 프로그래밍을 완성하기 때문에 누구나 쉽게 프로그래머가 될 수 있습니다. 1986년 매킨토시 버전으로 출발하여 LabVIEW는 전세계 엔지니어에게 높은 생산 효율성을 보장하는 검증된 프로그래밍 언어로 널리 알려져 있습

    니다. 본인은 또한 오랜 시간 LabVIEW 사용자들을 만나오면서 LabVIEW 사용으로 인한 성공적인 어플리케이션 개발을 관찰하여 왔습니다.

    이제 전통적인 측정 및 자동화 솔루션에서 제어 및 임베디드 영역까지 그래픽 기반의

    시스템 디자인의 영역으로까지 확대 성장해 가는 LabVIEW의 새로운 물결은 많은 엔지니어와 과학자들에게 좀더 많은 고민과 어려움을 경감해주는 역할을 해 나갈 것으로 봅니다.

    무엇보다 LabVIEW를 이용한 신호처리는 오랫동안 검증된 알고리즘을 활용함으로써, 측정된 신호의 불필요한 노이즈 제거나 디지털 필터링 혹은 Fourier 변환을 이용한 주파수 분석에 용이한 함수들을 쉽게 적용할 수 있는 장점이 있습니다.

    특히, 이 교재의 집필자인 을지대학교 의료IT마케팅학과 권영만교수께서는 오랜 시간 신호처리 분야의 권위자로서 이 교재를 기반으로 신호처리 알고리즘의 원리를 이해하는 것에만 국한하는 것이 아닌, 필요한 어플리케이션에 어떻게 최종 활용할 것인지에 대한 고민을 많이 한 것을 기억합니다. 부디 이 교재가 전자공학, 컴퓨터공학, 제어공학, 의료공학뿐만 아니라 신호처리를 두고 고민하는 모든 공학도/엔지니어/과학자들에게 좋은 지침서의 역할을 충분히 해주기를 기원합니다.

    마지막으로 바쁜 강의 일정과 무더운 여름 땀방울의 결과물로 탄생된 “LabVIEW를 이용한 디지털 신호처리” 교재의 출간을 축하 드리며, 좋은 결과가 있기를 기원합니다.

    한국내쇼날인스트루먼트㈜아카데믹사업부 총괄 부장 박세일

    6 • 추천의 글

  • DIGITAL SIGNAL PROCESSING DIGITAL SIGNAL PROCESSING

    차 /례

    7차례 •

    CHAPTER

    01 개요

    1.1 신호 15

    1.1.1 연속 신호와 이산 신호 16

    1.1.2 주기 신호와 비주기 신호 19

    1.1.3 에너지 신호와 전력 신호 21

    1.2 시스템 24

    1.3 디지털 신호처리 25

    1.3.1 신호처리 방법 25

    1.3.2 디지털 신호처리 제품들 27

    1.4 디지털 신호처리 범주 29

    CHAPTER

    02 이산 신호

    2.1 정현파 신호(sinusoidal signal) 33

    2.1.1 등각속도 회전운동 33

    2.1.2 연속시간 정현파 신호 35

    2.1.3 이산시간 정현파 신호 36

    2.1.4 이산 정현파 신호 39

    2.2 이산 신호의 종류 39

    2.2.1 단위 임펄스(unit impulse) 신호 40

    2.2.2 단위 계단(unit step) 신호 41

    2.2.3 단위 램프(unit ramp) 신호 41

    2.2.4 지수(exponential) 신호 42

    2.3 이산 신호의 연산 43

    2.3.1 이산 신호의 합 또는 차 연산 44

    2.3.2 이산 신호의 곱 연산 46

    2.3.3 이산 신호의 스칼라 곱 연산 48

    2.3.4 이산 신호의 시간 천이 연산 48

    2.3.5 이산 신호의 시간 반전 연산 49

  • DIGITAL SIGNAL PROCESSING

    8 • 차례

    CHAPTER

    03 연속시간 푸리에 분석

    3.1 기저와 신호 확장 53

    3.1.1 기저와 신호 확장 53

    3.1.2 복소 지수 신호 55

    3.2 연속시간 푸리에 급수(CtFS) 59

    3.2.1 삼각 함수를 사용한 푸리에 급수 62

    3.2.2 복소 지수를 사용한 푸리에 급수 67

    3.3 연속시간 푸리에 변환(CtFT) 72

    CHAPTER

    04 이산시간 푸리에 분석

    4.1 샘플링 81

    4.1.1 샘플링(sampling) 81

    4.1.2 디지털 주파수 86

    4.1.3 에일리어싱(aliasing)의 개념 89

    4.1.4 주파수 영역에서 본 샘플링 93

    4.2 이산시간 푸리에 분석 96

    4.2.1 연속시간 푸리에 변환 쌍과 급수 쌍의 관계 96

    4.2.2 이산시간 푸리에 변환(DtFT) 97

    4.2.3 이산 푸리에 급수(DFS) 99

    4.3 복원 103

    4.3.1 샘플링 정리 103

    4.3.2 복원 106

  • DIGITAL SIGNAL PROCESSING

    9차례 •

    CHAPTER

    05 이산 푸리에 변환

    5.1 이산 푸리에 변환(DFT) 113

    5.1.1 이산 푸리에 변환의 정의 114

    5.2 이산 푸리에 변환 성질들 128

    5.3 DFT를 사용한 스펙트럼 측정 134

    5.3.1 DFT의 스펙트럼 측정 방법 134

    5.3.2 윈도우 함수 사용하기 136

    5.3.3 영점 채우기(zero padding) 연산 146

    CHAPTER

    06 이산 시스템과 응답

    6.1 이산 시스템 151

    6.2 LTI 이산 시스템의 응답 157

    6.2.1 선형 콘벌루션 158

    6.2.2 원형 콘벌루션 166

    6.2.3 블록 콘벌루션 169

    6.3 콘벌루션 성질들 184

    6.3.1 콘벌루션 연산의 성질들 184

    6.3.2 콘벌루션 정리 187

    CHAPTER

    07 z 변환

    7.1 z 변환 193

    7.1.1 z 변환의 정의 193

    7.1.2 유한 길이 수열의 z 변환 194

    7.1.3 무한 길이 수열의 z 변환 201

    7.1.4 수렴영역의 성질들 205

    7.1.5 DtFT의 일반화로서 z 변환 205

  • DIGITAL SIGNAL PROCESSING

    10 • 차례

    7.2 z 변환의 성질들 211

    7.3 z 역변환 214

    7.3.1 유한 길이 수열의 z 역변환 214

    7.3.2 무한 길이 수열의 z 역변환 214

    CHAPTER

    08 이산 시스템 표현과 분석

    8.1 차분 방정식 227

    8.1.1 차분 방정식 227

    8.1.2 차분 방정식의 형태 228

    8.1.3 입력-출력 데이터로부터 차분 방정식 230

    8.2 변환 영역에서 시스템 표현과 분석 234

    8.2.1 전달함수 234

    8.2.2 주파수 응답함수 237

    8.2.3 시스템 표현들 간의 관계 247

    8.3 전달함수를 사용한 시스템 분석 247

    8.3.1 인과성(causality) 247

    8.3.2 안정도(stability) 250

    CHAPTER

    09 디지털 필터 구조

    9.1 LTI 이산 시스템 분석, 설계 및 구현 259

    9.1.1 기본 소자들 260

    9.2 IIR 필터 구조 261

    9.2.1 직접형(direct form) IIR 필터 구조 262

    9.2.2 직렬형(cascade form) IIR 필터 구조 273

    9.2.3 병렬형(parallel form) IIR 필터 구조 282

  • DIGITAL SIGNAL PROCESSING

    11차례 •

    9.3 FIR 필터 구조 284

    9.3.1 직접형(direct form) FIR 필터 구조 285

    9.3.2 직렬형(cascade form) FIR 필터 구조 286

    9.3.3 선형 위상형(linear phase form) FIR 필터 구조 290

    CHAPTER

    10 FIR 필터 설계

    10.1 디지털 필터 설계 295

    10.1.1 이상적인 필터의 종류 295

    10.1.2 디지털 필터 설계 297

    10.2 선형 위상 FIR 필터 특성 307

    10.2.1 선형 위상 필터의 형태 307

    10.2.2 선형 위상 필터의 주파수 응답 312

    10.2.3 영점 위치 329

    10.3 설계 기법들 333

    10.3.1 창(window)함수 설계 기법 334

    부록

    B01 LabVIEW 프로그래밍기초

    B1.1 LabVIEW 개요 343

    B1.1.1 VI의 구성 요소들 343

    B1.1.2 VI 시작하기 346

    B1.2 데이터 타입, 배열과 클러스터 357

    B1.2.1 데이터 타입 357

    B1.2.2 배열과 클러스터 365

    B1.3 구조 370

    B1.3.1 타이밍(timing) 함수들 370

    B1.3.2 For 루프 372

    B1.3.3 While 루프 380

    B1.3.4 Case 문 383

  • DIGITAL SIGNAL PROCESSING

    12 • 차례

    부록

    B02 데이터 수집

    B2.1 데이터 수집 개요 395

    B2.2 MAX 397

    B2.3 DAQmx 함수 사용법 408

    B2.3.1 DAQmx VI 개요 408

    B2.3.2 DAQmx 태스크 상태 모델 411

    B2.3.3 [DAQmx 읽기] VI 함수 사용하기 413

    B2.3.4 [DAQmx 타이밍] VI 함수 사용하기 415

    B2.3.5 DAQ Assistant 사용하기 427

    부록

    B03 생체신호 계측

    B3.1 버니어 센서 435

    B3.1.1 센서 종류 435

    B3.1.2 센서의 인터페이스 439

    B3.2 생체신호 측정 440

    B3.2.1 악력 측정 440

    B3.2.2 체온 측정 444

    B3.2.3 심박동수(Heart Rate) 측정 446

    ❏ 찾아보기 456

  • 13

    개요 01

    개요

    01CHAPTER

    DIGITAL SIGNAL PROCESSING

    1.1 신호

    1.2 시스템

    1.3 디지털 신호처리

    1.4 디지털 신호처리 범주

  • 15

    개요 01

    01CHAPTER

    개요

    D ig ita l S ig n a l P ro c e s s in g

    이 장에서는 디지털 신호처리를 소개하기 위해서, 먼저 신호와 시스템을 간략하게 소개하고, 디지털

    신호처리의 방법과 우리가 일상생활에서 사용하는 디지털 신호처리 제품들을 소개한다. 그런 후에

    디지털 신호처리의 범주에 대해서 간략하게 소개한다.

    1.1 신호

    현대 세계는 다양한 형태로 여러 가지 신호에 갇혀있다고 말할 수 있다. 어떤

    신호는 자연적으로 발생하기도 하지만, 대부분의 신호들은 인공적으로 만들어진

    다. 이 절에서는 신호를 정의하고 신호들을 분류하는 방법에 대해서 자세히 설

    명한다.

    신호의 정의

    신호는 시공간적으로 변화하는 물리량으로 정의할 수 있다. 예를 들어 도로의

    신호등의 색깔이 변하거나, 시간이 지나면서 온도가 변하는 것이나, 산불이 났

    을 때 연기가 발생하거나 혹은 민방위 훈련을 할 때에 사이렌 소리 등은 신호

    의 한 예이다.

    어떤 신호들은 필요하기도 하고(예를 들면 대화) 즐거운 것(예를 들면 음악)도

    있지만, 어떤 신호들은 주어진 상황에서 필요하지 않거나 원하지 않는 경우도

    있다. 공학적인 면에서 보면, 신호는 유용한 정보이든 필요치 않은 정보이든 간

    에 정보의 전달자이다. 즉 신호는 일정한 부호, 표지, 소리, 몸짓 따위로 특정한

    내용 또는 정보를 전달하거나 지시하기 위한 수단으로 사용된다.

    신호의 분류

    신호는 다양한 형태로 존재하기 때문에 분류하는 방법도 다양하다. 여기서는 신

    호의 공학적인 측면에서 고려한 계층적인 분류 방법에 따라 신호를 분류해 본

    다. 신호의 계층적 분류 방법은 다음 그림 1-1과 같다.

  • Digital Signal Processing 디지털 신호처리

    16

    그림 1-1

    신호의 분류

    정의 신호와 잡음 신호

    신호의 일부분은 인간에 의해서 그 내용이 해석되거나 분석될 수 있지만

    대부분의 신호는 해석이나 분석이 불가능하다. 해석이나 분석이 불가능한

    신호들을 잡음(noise) 신호라고 한다. 반면에 해석이나 분석이 가능해서 통

    신 수단으로 사용할 수 있는 신호를 정의 신호라고 한다.

    결정 신호와 불규칙 신호

    해석이나 분석이 가능한 신호들 중에서 수학적 함수의 값으로 표현할 수 있는

    신호를 결정(deterministic) 신호라고 한다. 반면에 신호의 특성을 수학적 함수

    로 표시할 수 없는 신호를 불규칙(random) 신호라고 한다.

    결정 신호와 불규칙 신호 각각에 대해서 연속 신호와 이산 신호로 분류할 수 있

    지만 이 책에서는 결정 신호에 대해서만 연속과 이산 신호로 분류하여 설명한다.

    1.1.1 연속 신호와 이산 신호

    결정 신호는 수학적 함수의 값으로 표현할 수 있다고 하였다. 즉 결정 신호를

    표현하고 처리하기 위해서 수학이라는 도구를 사용한다. 즉 신호를 표현할 때에

    수학에서 정의된 함수 형태를 사용해서 표현한다. 어떤 독립 변수에 따라 변화

    하는 양을 나타내는 함수는 다음과 같이 표현한다.

    여기서, 는 독립 변수이고, 는 함수 값(종속 변수)이다. 특히 독립 변수

    가 시간일 때에는 시간을 나타내는 독립 변수로 를 사용한다. 따라서 시간

    에 따라 변화하는 함수(신호)는 다음과 같이 표현할 수 있다.

    정의 신호

    잡음 신호

    불규칙 신호

    결정 신호연속 신호

    이산 신호

    주기 신호

    비주기 신호

    에너지 신호

    전력 신호신호

  • 17

    개요 01

    그림 1-2

    연속 시간 신호, 이산 시간 신호와 이산 신호

    여기서, 는 독립 변수이고, 는 함수 값이다. 위 수식에서 함수의 값은 어떤

    시간에서 신호의 세기를 표현하기 위해서 사용되었기 때문에 앞으로 함수

    (종속 변수)의 값을 신호라고 한다.

    연속 신호

    연속적인 시간 변수에 대응하여 연속적인 신호의 값이 존재하는 경우를 연속

    시간(continuous time) 신호, 연속 신호 혹은 아날로그(analog) 신호라고도

    한다. 연속 시간 신호의 예로 정현파 신호를 표현하면 다음과 같다.

    cos 여기서, 는 주파수를 나타내는 상수이고, 는 시간을 나타내는 독립 변수

    이다. 이 신호를 그림 1-2의 (a)에 나타내었다(특히 대부분의 책에서 연속적

    인 신호를 나타내기 위해서는 소괄호 기호를 사용하기 때문에 이 책에서도

    소괄호를 사용한다).

    cos

    cos ⋯

    cos ⋯

  • Digital Signal Processing 디지털 신호처리

    18

    이산 신호

    특정한 시간에서만 값을 가지고 있는 신호를 이산 시간(discrete time)신호라고

    한다. 이산 신호는 연속 신호를 일정한 시간에 샘플링(sampling)을 하면 얻을

    수 있다. 예를 들면 위에서 설명한 연속 시간 정현파 신호에 대해서 일정한 시

    간 간격으로 샘플링을 하면 다음 식과 같고 이를 그림 1-2의 (b)에 나타내었다.

    cos 여기서, 은 정수이고, 는 일정한 시간 간격을 나타내는 샘플링 주기

    (sampling period)이다.

    이산 시간 신호에서 시간 정보를 생략하면 신호는 단순히 순서 개념만 적

    용된 수열(sequence)이 된다. 이 수열을 이산(discrete) 신호라고 한다. 위의

    이산 시간 정현파 신호를 이산 신호로 표현하면 다음과 같고, 이를 그림

    1-2의 (c)에 나타내었다. (여기서, =이다.) cos

    디지털(digital) 신호

    시간(독립 변수) 축에서 샘플링을 통해 생성된 이산 시간 신호는 신호의 크기

    (종속 변수) 축을 보면 여전히 연속적인 값을 가지고 있다. 이산 시간 신호

    의 크기를 양자화(quantization)를 하면 디지털 신호가 된다. 디지털 신호가

    되는 과정을 그림 1-3에 나타내었다.

    그림 1-3

    디지털 신호 생성 과정연속 시간 신호 이산 시간 신호 디지털 신호

    샘플링(sampling) 양자화(quantization)

  • 19

    개요 01

    실제로는 이산 시간 신호를 디지털 신호로 변환하여 사용하는데, 그 이유는 신

    호의 값을 저장하기 위해서 무한히 큰 기억소자를 사용할 수 없기 때문이다.

    따라서 디지털 신호는 이산 시간 신호의 정확한 값을 근사적인 값으로 사용하

    기 때문에 약간의 오차를 가지게 된다. 물론 모든 디지털 신호는 이산 신호이

    기 때문에 이산 시간 신호에 적용되는 모든 이론은 디지털 신호에 적용할 수

    있다. 지금까지 설명한 신호들을 정리하면 표 1-1과 같다.

    샘플링과 양자화로 구분한 신호 종류

    시간크기 연속 불연속(샘플링)

    연속 연속 시간 신호 이산 시간 신호

    불연속(양자화) 사용하지 않음 디지털 신호

    1.1.2 주기 신호와 비주기 신호

    주기 신호

    연속 시간 신호가 다음의 성질을 만족하면 주기 신호라고 한다.

    여기서, 는 임의의 정수이고 는 주기를 나타내는 상수이다. 주기적인 연

    속 시간 신호의 예를 그림 1-4의 (a)와 (b)에 나타내었다.

    이산 신호에 대해서는 다음의 성질을 만족하는 것을 주기 신호라고 하며, 이의

    예를 그림 1-4의 (c)에 나타내었다.

    여기서, 은 주기를 나타내는 상수이다.

    비주기 신호

    주기 신호가 아닌 것을 비주기 신호라고 한다. 즉 비주기 신호는 일정한 시

    간 간격 동안에 파형의 모습이 반복되지 않는다. 비주기 연속 시간 신호를

    그림 1-5의 (a)와 (b)에, 비주기 이산 신호를 그림 1-5의 (c)에 나타내었다.

  • Digital Signal Processing 디지털 신호처리

    20

    그림 1-4

    주기 신호들

    그림 1-5

    비주기 신호들

  • 21

    개요 01

    1.1.3 에너지 신호와 전력 신호

    물리학에서 에너지는 일을 할 수 있는 능력을 나타낸다. 신호가 일을 할 수

    있는 능력도 에너지(energy)로 표시할 수 있으며, 2 시간 동안의 에너지는

    다음과 같이 정의한다.

    위에서, 는 신호이다. 만일 을 무한대로 확장하면 신호가 가지고 있는

    총 에너지가 되며, 다음과 같이 표현할 수 있다.

    Lim→∞

    만약 어떤 신호의 에너지가 측정할 수 없을 만큼 큰 값이면, 에너지를 신호의

    특징으로 사용하는 데에 도움이 되지 않는다. 즉 서로 다른 신호들의 총 에너

    지 값들이 모두 무한대이면, 이 신호들의 에너지를 비교하는 것은 무의미하게

    된다. 따라서 무한 에너지를 가지고 있는 신호에 대해서 전력(power)의 개념이

    도입되었으며 이는 다음과 같이 정의한다.

    Lim→∞

    즉, 2 시간에 동안에 에너지 평균값의 극한 값으로 정의되었다. 이 방법

    은 무한 에너지를 갖는 신호 를 유한한 값을 갖는 평균 전력 신호로

    나타낼 수 있다. 따라서 신호는 에너지가 유한한 값이고 평균 전력이 0이

    되는 에너지(energy) 신호와 에너지가 무한한 값이고 평균 전력은 유한한

    값인 전력 신호로 구분할 수 있다. 이를 요약하면 표 1-2와 같다.

    에너지와 전력으로 구분한 신호 종류

    신호 종류 설명

    에너지 신호 ≤ ∞ (유한),

    전력 신호 ∞ (무한), ∞ (유한)

  • Digital Signal Processing 디지털 신호처리

    22

    에너지 신호와 전력 신호에 대한 예를 그림 1-6에 나타내었다. 그림에서 알 수

    있듯이 일반적으로 에너지 신호는 특정 시간 구간 내에서만 신호가 존재하며

    전력 신호는 주기 신호가 전 시간에 대해서 존재하는 신호이다.

    그림 1-6

    에너지 신호와 전력

    신호

    물론 이런 신호의 구분은 이산 신호에 대해서도 적용된다. 이산 신호인 경우에

    에너지는 모든 정수 에 대하여 신호의 크기들을 제곱하고 더한 값으로 정

    의되며 다음과 같다.

    동일한 개념으로 이산 신호에 대한 평균 전력의 정의는 다음과 같다.

    Lim→∞

    여기서, 평균을 구하기 위해서 2+1로 나눈 것은 ⋯ 범위에 0이

    포함되어 있기 때문이다.

    실습 1-1 [p0101-SignalAndDisplay.vi] 신호와 디스플레이

    여러 가지 종류의 신호가 있는 것을 배웠다. 이 실습에서는 불규칙 신호, 이산 신호이면서 비주기 신호를 생성해서 사용해 본다. 그리고 신호를 디스플레이할 때에 웨이브폼 차트, 웨이브폼 그래프와 XY 그래프 컨트롤을 많이 사용한다. 여기서는 신호를 디스플레이할 때에 웨이브폼 차트와 웨이브폼 그래프를 사용하는 방법을 익힌다. 웨이브폼 차트는 이전의 값을 기억하고 있지만, 웨이브폼 그래프는 이전의 값을 기억하고 있지 않다. 따라서 신호를 디스플레이 할 때에 적절하게 사용해야 한다.

    (a) 에너지 신호 (b) 전력 신호

  • 23

    개요 01

  • Digital Signal Processing 디지털 신호처리

    24

    1.2 시스템

    시스템이란 하나의 공통적인 목적을 위해 조직화된 요소들의 집합이라고 할 수

    있다. 시스템의 대표적인 예를 들면 컴퓨터가 있다. 이 절에서는 입력 신호를 원하는 형태의 출력 신호로 변환하는 시스템을 개략적으로 설명한다. 시스템의 상세한 내용은 6장에서 설명한다.

    연속 시스템

    시스템을 분류하는 방법은 다양하나, 처리하는 신호의 종류에 따라 분류하면 연속 시스템과 이산 시스템으로 분류할 수 있다. 이 외에도 출력 피드백(feedback) 여부에 따라, 혹은 연결하는 방법에 따라 분류하는 방법들도 있다. 연속 시스템은 연속 신호를 입력으로 받아서 이를 원하는 연속 출력 신호

    로 변환하는 시스템을 말하며, 아날로그 시스템이라고도 한다. 이를 수식으로 나타내면 다음과 같고, 이를 그림 1-7에 나타내었다.

    그림 1-7

    연속 시스템

    이산 시스템

    이산 시스템은 이산 시간 신호를 입력으로 받아서 이를 원하는 이산 시간

    출력 신호로 변환하는 시스템을 말한다. 이를 수식으로 나타내면 다음과 같

    고, 이를 그림 1-8에 나타내었다.

    (a) 입력 신호 (b) 출력 신호

    (c) 연속(시간) 시스템

  • 25

    개요 01

    그림 1-8

    이산 시스템

    1.3 디지털 신호처리

    신호와 시스템을 이해하였으면, 신호를 처리하는 방법을 이해할 수 있다. 이 절

    에서는 시스템을 사용해서 신호를 처리하는 방법에 대해서 자세히 설명한다.

    1.3.1 신호처리 방법

    신호 처리는 설계된 연산이다. 즉 시스템에 의해서 처리된다. 신호는 유용한 정

    보를 혹은 원하지 않은 정보를 가지고 있던지 간에 신호는 정보 전달자이다.

    그러므로 여러 가지들이 혼합되어 있는 신호에서 유용한 정보를 추출하거나 강

    화하는 것은 가장 단순한 형태의 신호처리이다. 더욱더 일반적으로 서술하면 신

    호처리는 신호에서 유용한 정보를 추출, 강화, 저장 및 전달하기 위해서 설계된

    연산(designed operation)이다.

    일반적으로 신호처리 방법은 아날로그 신호처리와 디지털 신호처리의 2가지가 있다.

    아날로그 신호처리

    아날로그 신호처리(ASP, Analog Signa lProcessing) 방법은 아날로그 입력 신

    호를 아날로그 시스템을 사용해서 처리하는 방법을 의미한다. 처리된 결과 신

    호는 아날로그 신호이다. 이 신호처리 방법의 개념을 그림 1-9에 나타내었다.

    (a) 입력 신호 (b) 출력 신호

    (c) 이산(시간) 시스템

  • Digital Signal Processing 디지털 신호처리

    26

    Analog Signal Processor

    Analog Signal Analog Signal

    그림 1-9아날로그 신호처리

    방법

    디지털 신호처리

    반면에 디지털 신호처리(DSP, Digital Signal Processing) 방식은 디지털 입력 신호를 디지털 시스템을 사용해서 처리하는 방법을 의미한다. 디지털 신호처리를 하기 위해서는 아날로그 신호를 디지털 하드웨어에서 처리할 수

    있는 형태로 변환하고, 또한 처리된 신호를 다시 아날로그 신호로 변환할 필요가 있다. 디지털 신호처리를 하는 과정을 그림 1-10에 나타내었다. 그리고 이 그림에 있는 블록 요소들에 대한 설명은 표 1-3에 나타내었다.

    그림 1-10디지털 신호처리와

    등가적인 아날로그

    신호처리 방법

    그림 1-10에 대한 설명

    블록 설명

    PrF(PreFilter)이는 전필터(prefilter) 혹은 앤티에일리어싱(anti-aliasing) 필터이며, 에일리어싱을 방지하기 위해서 사용한다.

    ADC(Analog-to-Digital Converter)

    아날로그 신호를 샘플링하고, 양자화를 해서 디지털 신호로 변환하는 장치이다.

    DSP(Digital Signal Processor)

    이는 DSP의 중심 장치이다. 범용 컴퓨터나 특수 용도의 영상 처리기나 디지털 하드웨어 등을 나타낸다.

    DAC(Digital-to-Analog Converter)

    이 장치는 ADC 장치와 반대 연산을 하는 장치이다. 이는 이진 수열 형태의 디지털 신호를 계단 모양의 파형으로 만든다. 이 단계가 아날로그 신호를 생성하기 위한 첫 번째 단계이다.

    PoF(PostFilter)이는 후처리 필터이며, 전단계의 계단 모양 파형을 부드럽게 하여 원하는 아날로그 신호를 만드는 단계에 해당한다.

  • 27

    개요 01

    아날로그 신호처리 기술로 신호를 처리할 때에 융통성이 부족하고 시스템 설계

    가 복잡하다고 할 수 있다. 이로 인해 아날로그 신호처리를 사용하면 일반적으

    로 제품의 가격이 비싸진다. 반면에 디지털 신호처리 기술을 사용하면 저렴한

    개인용 컴퓨터를 강력한 신호처리기로 사용하는 것도 가능하다.

    오늘날 대부분 디지털 신호처리 방법을 사용한다. 디지털 신호처리를 사용하면, 범

    용 컴퓨터에서 동작하는 소프트웨어를 사용하여 개발할 수 있는 장점이 있다. 그

    리고 또한 아날로그 신호처리에 비해 매우 안정적으로 동작하고, 실시간으로 쉽게

    수정할 수 있으며, 가격이 싸고 무게가 가벼운 장점 등이 있다. 반면에 아날로그 신

    호처리에 비해 속도가 낮고 높은 주파수에 적용하기에 부적합한 단점도 가지고 있다.

    1.3.2 디지털 신호처리 제품들

    디지털 신호처리(DSP) 응용분야를 이해하기 위해서 주변에 어떤 DSP 제품

    들이 있는지를 알아보자. 이를 위해 먼저 DSP 제품들을 분류하는 방법을

    알아보고, 그 분류에 따른 DSP 제품들을 알아본다.

    DSP 제품들을 분류하는 방법들도 여러 가지가 있지만, 여기서는 신호의 차원

    으로 분류해 본다. 1차원 신호는 신호를 표현하는 차원이 1차원인 것을 말하며,

    대표적인 것으로 음성, 오디오, 통신 혹은 생체 신호 등이 있다. 2차원 신호는

    신호를 표현하는 차원이 2차원인 것을 말하며, 대표적인 것으로 디지털 영상과

    같은 사진(의료 영상 포함) 등이 있다. 3차원 신호는 신호를 표현하는 방법이 3

    차원인 것을 말하며, 대표적인 것으로 동영상이 있다. 이 방식으로 분류한 DSP

    제품들을 표 1-4에 나타낸다.

    신호 차원에 따라 분류한 DSP 제품들

    분류 제품들

    1차원 신호 휴대 전화, MP3 플레이어, CD 플레이어, 의료 기기 등

    2차원 신호 디지털 카메라, 의료 영상 기기 등

    3차원 신호 DVD 플레이어, HDTV(High Definition TV) 등

    이 책에서는 1차원 신호만을 처리하는 방법을 다룬다. 따라서 2차원과 3차원

    신호처리는 영상처리와 같은 전문 서적을 참고하기 바란다.

  • Digital Signal Processing 디지털 신호처리

    28

    실습 1-2 [p0102-SignalAndSound.vi] 신호와 사운드(sound)

    이 실습에서는 결정 신호, 이산 신호이면서 주기 신호를 생성해서 사용해 본다. 이 신호는 모든 분야에 기본이 되는 1차원 정현파 sine 신호이다. 아울러 정현파 신호를 컴퓨터 스피커로 출력하여 본다. 따라서 사운드 출력을 하기 위해서는 컴퓨터에 스피커가 연결되어 있어야 하며, 이는 [익스프레스>>출력>>웨이브폼 재생] 함수를 사용하면 다음과 같이 “웨이브폼 재생 설정” 대화 상자가 나타난다. 이 대화 상자에서 시스템에 설치된 스피커를 확인할 수 있다. (스피커가 없는 경우 이어폰을 연결하여 실습한다.) 저자가 사용하는 컴퓨터 경우에 “Realtek High Definition Audio”를 사용하고 있는 것을 알 수 있다.

    컴퓨터마다 다름.

  • 29

    개요 01

    1.4 디지털 신호처리 범주

    디지털 신호처리는 크게 2가지 범주(category), 신호 분석(analysis) 작업과

    신호 필터링(filtering) 작업으로 나눌 수 있다. 이에 대한 것을 그림 1-11에

    나타내었다.

    그림 1-11디지털 신호처리

    범주

    디지털 신호 분석은 신호의 성질들을 측정하는 것을 말한다. 이는 일반적으로

    주파수 영역에서 이루어지며, 스펙트럼(주파수나 위상)을 분석하고 이를 사용해

    서 목표물 탐지(detection), 검증(verification), 인식(recognition) 등을 한다.

    디지털 신호 필터링은 디지털 신호가 입력되고 디지털 신호가 출력되는 것으로

    간략하게 말할 수 있다. 이 작업을 하는 시스템을 필터라고 하며, 항상 그렇지

    는 않지만 일반적으로 시간 영역에서 수행된다. 이를 사용해서 원하지 않는 잡

    음 혹은 간섭을 제거하거나 주파수 대역(frequency band)을 분리하는 작업

    등을 할 수 있다. 이러한 디지털 신호 필터링 작업을 하기 위해서는 필터

    (시스템)를 분석, 설계 및 구현할 수 있는 기술이 필요하다.

    디지털 신호

    분석(Analysis)

    디지털 신호측정

    디지털 필터

  • /ColorImageDict > /JPEG2000ColorACSImageDict > /JPEG2000ColorImageDict > /AntiAliasGrayImages false /CropGrayImages true /GrayImageMinResolution 300 /GrayImageMinResolutionPolicy /OK /DownsampleGrayImages true /GrayImageDownsampleType /Bicubic /GrayImageResolution 300 /GrayImageDepth -1 /GrayImageMinDownsampleDepth 2 /GrayImageDownsampleThreshold 1.50000 /EncodeGrayImages true /GrayImageFilter /DCTEncode /AutoFilterGrayImages true /GrayImageAutoFilterStrategy /JPEG /GrayACSImageDict > /GrayImageDict > /JPEG2000GrayACSImageDict > /JPEG2000GrayImageDict > /AntiAliasMonoImages false /CropMonoImages true /MonoImageMinResolution 1200 /MonoImageMinResolutionPolicy /OK /DownsampleMonoImages true /MonoImageDownsampleType /Bicubic /MonoImageResolution 1200 /MonoImageDepth -1 /MonoImageDownsampleThreshold 1.50000 /EncodeMonoImages true /MonoImageFilter /CCITTFaxEncode /MonoImageDict > /AllowPSXObjects false /CheckCompliance [ /None ] /PDFX1aCheck false /PDFX3Check false /PDFXCompliantPDFOnly false /PDFXNoTrimBoxError true /PDFXTrimBoxToMediaBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXSetBleedBoxToMediaBox true /PDFXBleedBoxToTrimBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXOutputIntentProfile () /PDFXOutputConditionIdentifier () /PDFXOutputCondition () /PDFXRegistryName () /PDFXTrapped /False

    /Description > /Namespace [ (Adobe) (Common) (1.0) ] /OtherNamespaces [ > /FormElements false /GenerateStructure true /IncludeBookmarks false /IncludeHyperlinks false /IncludeInteractive false /IncludeLayers false /IncludeProfiles true /MultimediaHandling /UseObjectSettings /Namespace [ (Adobe) (CreativeSuite) (2.0) ] /PDFXOutputIntentProfileSelector /NA /PreserveEditing true /UntaggedCMYKHandling /LeaveUntagged /UntaggedRGBHandling /LeaveUntagged /UseDocumentBleed false >> ]>> setdistillerparams> setpagedevice