서브메뉴

본문

신호와 시스템 (파이썬과 함께 배우는)
신호와 시스템 (파이썬과 함께 배우는)
저자 : 남승현
출판사 : 홍릉과학출판사
출판년 : 2019
ISBN : 9791156006480

책소개


제 1 장 연속시간 신호 1
1.1 신호와 시스템 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 신호와 시스템의 예 . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.2 신호의 유형 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 연속시간 신호의 변형 . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.1 시간 독립적 신호 변형 . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.2 신호의 시간 의존적 변형 . . . . . . . . . . . . . . . . . . . . . . 6
1.3 연속시간 기본 신호 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.1 계단 신호 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.2 사각펄스 신호 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3.3 경사 신호 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3.4 임펄스 신호 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.5 임펄스를 이용한 신호의 표현 . . . . . . . . . . . . . . . . . . . 14
1.3.6 지수 신호 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3.7 정현 신호 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4 연속시간 주기 신호 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.5 페이저 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.6 연속시간의 우대칭, 기대칭, 켤레 대칭 . . . . . . . . . . . . . . . . . . 21
1.7 랜덤 신호 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.8 에너지와 전력 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
파이썬 예제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
연속시간 신호의 생성과 파형 그리기 . . . . . . . . . . . . . . . . . . . 28
연속시간 신호의 시간 독립적 변형 . . . . . . . . . . . . . . . . . . . . 29
연속시간 신호의 시간 의존적 변형 . . . . . . . . . . . . . . . . . . . . 30
신호의 우함수/기함수 성분 추출 . . . . . . . . . . . . . . . . . . . . . 32
연속시간 주기 신호의 생성 . . . . . . . . . . . . . . . . . . . . . . . . . 33
랜덤 잡음에 오염된 정현 신호 . . . . . . . . . . . . . . . . . . . . . . . 35
sympy를 이용한 신호의 평균 전력과 에너지 계산 . . . . . . . . . . . . . 35
numpy/scipy를 이용한 신호의 평균 전력과 에너지 계산 . . . . . . . . . . 36
연습문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
파이썬 문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

제 2 장 연속시간 LTI 시스템 43
2.1 연속시간 시스템 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.2 선형성과 시불변성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.2.1 선형성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.2.2 시불변성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.3 임펄스 응답과 콘볼루션 적분 . . . . . . . . . . . . . . . . . . . . . . . 50
2.3.1 임펄스 응답 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.3.2 RC 회로의 임펄스 응답 . . . . . . . . . . . . . . . . . . . . . . 50
2.3.3 LTI 시스템의 콘볼루션 적분 . . . . . . . . . . . . . . . . . . . . 51
2.4 콘볼루션 적분의 계산 . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.5 콘볼루션의 특성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.5.1 LTI 시스템의 인과성 . . . . . . . . . . . . . . . . . . . . . . . . 55
2.5.2 LTI 시스템의 안정성 . . . . . . . . . . . . . . . . . . . . . . . . 57
2.5.3 콘볼루션 연산 법칙 . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.5.4 임펄스의 콘볼루션 . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.5.5 계단 신호의 콘볼루션 . . . . . . . . . . . . . . . . . . . . . . . . 60
2.5.6 콘볼루션의 미분-적분 특성 . . . . . . . . . . . . . . . . . . . . . 60
2.6 연속시간 시스템의 예 . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.6.1 시간 이동 시스템 . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.6.2 적분 시스템 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.6.3 미분 시스템 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.6.4 계단 응답으로부터 임펄스 응답 계산 . . . . . . . . . . . . . . . 63
2.6.5 아주 좁은 폭의 펄스 입력에 대한 미분방정식의 출력 . . . . . . . 63
2.7 연속시간 LTI 시스템의 미분방정식 표현 . . . . . . . . . . . . . . . . . 65
2.7.1 상수 계수를 갖는 선형 미분방정식의 해 . . . . . . . . . . . . . . 65
2.7.2 일차 미분방정식의 해 . . . . . . . . . . . . . . . . . . . . . . . . 66
2.7.3 초기정지 조건과 시스템의 특성 . . . . . . . . . . . . . . . . . . 68
2.8 이차 미분방정식 해 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.8.1 이차 방정식의 특성식 . . . . . . . . . . . . . . . . . . . . . . . . 69
2.8.2 과제동의 경우 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
2.8.3 임계제동의 경우 . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.8.4 부족제동의 경우 . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.9 미분방정식 해의 유형별 분해 . . . . . . . . . . . . . . . . . . . . . . . 74
2.10 임펄스 입력에 대한 미분방정식의 해 . . . . . . . . . . . . . . . . . . . 75
파이썬 예제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
파이썬에서 연속시간 시스템 구현 . . . . . . . . . . . . . . . . . . . . . 77
iv 파이썬과 함께 배우는 신호와시스템
연속시간 시스템의 선형성 점검 . . . . . . . . . . . . . . . . . . . . . . 78
연속시간 시스템의 시불변성 점검 . . . . . . . . . . . . . . . . . . . . . 79
numpy/scipy를 이용한 연속시간 신호의 콘볼루션 적분 . . . . . . . . . . 81
연속시간 신호의 이산화를 이용한 콘볼루션 적분 . . . . . . . . . . . . . 83
심볼 연산을 이용한 일차 미분방정식의 해 계산 . . . . . . . . . . . . . 84
심볼 연산을 이용한 이차 미분방정식의 해 계산 . . . . . . . . . . . . . 87
수치계산 함수를 이용한 일차 미분방정식의 해 계산 . . . . . . . . . . . 88
scipy.signal.lsim을 이용한 미분방정식의 해 계산 . . . . . . . . . . . . . . 90
시스템의 임펄스 응답 계산: scipy.signal.step/impulse . . . . . . . . . . . 91
연습문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
파이썬 문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

제 3 장 연속시간 주기 신호의 푸리에급수 99
3.1 정현 신호의 스펙트럼 표현 . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.1.1 비트음 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.1.2 AM 신호 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.1.3 악기음 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
3.2 연속시간 주기 신호의 푸리에급수 표현 . . . . . . . . . . . . . . . . . . 108
3.2.1 푸리에급수 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
3.2.2 e
jkω0t 의 직교성 . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
3.3 푸리에급수 계수의 계산 . . . . . . . . . . . . . . . . . . . . . . . . . . 110
3.4 푸리에급수의 특성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
3.4.1 선형성과 DC 성분 변경 . . . . . . . . . . . . . . . . . . . . . . 117
3.4.2 시간 이동 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
3.4.3 주파수 이동 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
3.4.4 푸리에급수의 미분 적분 특성 . . . . . . . . . . . . . . . . . . . 120
3.4.5 대칭성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
3.4.6 파시벌 정리 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
3.5 푸리에급수 계수를 이용한 신호의 합성 . . . . . . . . . . . . . . . . . . 124
3.5.1 유한개의 푸리에급수 계수를 이용한 주기 신호의 합성 . . . . . . 124
3.5.2 합성 신호의 수렴과 깁스 현상 . . . . . . . . . . . . . . . . . . . 124
3.5.3 푸리에급수 계수의 최적성 . . . . . . . . . . . . . . . . . . . . . 127
파이썬 예제 . . . . . . . . . . . . . . . . . . . . . . . . . . .
푸리에급수 계수를 이용한 삼각펄스 신호 합성 . . . . . . . . . . . . . . 135
오보에 악기음의 푸리에급수 분석과 합성 . . . . . . . . . . . . . . . . . 136
연습문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
파이썬 문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

제 4 장 연속시간 푸리에변환 145
4.1 연속시간 신호의 푸리에변환 . . . . . . . . . . . . . . . . . . . . . . . . 145
4.1.1 푸리에변환 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
4.1.2 푸리에변환의 근사적 유도 . . . . . . . . . . . . . . . . . . . . . 147
4.2 푸리에변환의 예 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
4.2.1 사각펄스 신호의 푸리에변환 . . . . . . . . . . . . . . . . . . . . 150
4.2.2 임펄스 신호의 푸리에변환 . . . . . . . . . . . . . . . . . . . . . 151
4.3 주기 신호의 푸리에변환 . . . . . . . . . . . . . . . . . . . . . . . . . . 153
4.4 푸리에변환의 특성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
4.4.1 선형성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
4.4.2 시간 이동 특성 . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
4.4.3 주파수 이동 특성 . . . . . . . . . . . . . . . . . . . . . . . . . . 158
4.4.4 변조 특성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
4.4.5 켤레 대칭성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
4.4.6 시간 주파수 척도변경 . . . . . . . . . . . . . . . . . . . . . . . . 161
4.4.7 미분 특성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
4.4.8 적분 특성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
4.4.9 쌍대성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
4.4.10 콘볼루션 특성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
4.4.11 파시벌 정리 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
4.4.12 에너지와 자기상관 . . . . . . . . . . . . . . . . . . . . . . . . . 171
4.5 푸리에변환과 LTI 시스템 . . . . . . . . . . . . . . . . . . . . . . . . . 172
4.5.1 콘볼루션과 고유함수 . . . . . . . . . . . . . . . . . . . . . . . . 172
4.5.2 미분방정식으로 표현되는 LTI 시스템 . . . . . . . . . . . . . . . 176
4.6 푸리에변환의 크기 위상 스펙트럼 특성 . . . . . . . . . . . . . . . . . . 178
4.6.1 음성 신호에서 크기와 위상 스펙트럼 . . . . . . . . . . . . . . . 178
4.6.2 영상 신호에서 크기와 위상 스펙트럼 . . . . . . . . . . . . . . . 179
4.7 필터 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
4.7.1 이상 저대역통과 필터 . . . . . . . . . . . . . . . . . . . . . . . . 183
4.7.2 실제 일차 필터 . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
4.7.3 실제 이차 필터 . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
4.7.4 프리엠퍼시스와 디엠퍼시스 . . . . . . . . . . . . . . . . . . . . 190
vi 파이썬과 함께 배우는 신호와시스템
파이썬 예제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
sympy를 이용한 연속시간 신호의 푸리에변환 . . . . . . . . . . . . . . . 192
푸리에변환의 수치계산과 근사계산 . . . . . . . . . . . . . . . . . . . . 193
LTI 시스템의 주파수 응답 계산 . . . . . . . . . . . . . . . . . . . . . . 198
부분분수전개 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
부분분수전개를 이용한 임펄스 응답 계산 . . . . . . . . . . . . . . . . . 201
연습문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
파이썬 문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

제 5 장 라플라스 변환 209
5.1 라플라스 변환 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
5.1.1 라플라스 변환의 고유성과 수렴영역 . . . . . . . . . . . . . . . . 210
5.1.2 단방향 라플라스 변환 . . . . . . . . . . . . . . . . . . . . . . . . 212
5.2 극점과 영점 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
5.3 라플라스 변환의 특성 . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
5.3.1 선형성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
5.3.2 시간 이동 특성 . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
5.3.3 s-영역 이동 특성 . . . . . . . . . . . . . . . . . . . . . . . . . . 218
5.3.4 콘볼루션 특성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
5.3.5 시간 미분 특성 . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
5.3.6 시간 적분 특성 . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
5.3.7 s-영역 미분 특성 . . . . . . . . . . . . . . . . . . . . . . . . . . 219
5.3.8 초기값 정리와 최종값 정리 . . . . . . . . . . . . . . . . . . . . . 220
5.4 역 라플라스 변환 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
5.4.1 근이 서로 다른 경우 . . . . . . . . . . . . . . . . . . . . . . . . 221
5.4.2 중복근이 있는 경우 . . . . . . . . . . . . . . . . . . . . . . . . . 223
5.5 라플라스 변환과 LTI 시스템 . . . . . . . . . . . . . . . . . . . . . . . . 224
5.5.1 시스템 함수와 전달함수 . . . . . . . . . . . . . . . . . . . . . . 224
5.5.2 미분방정식과 시스템 함수 . . . . . . . . . . . . . . . . . . . . . 226
5.5.3 라플라스 변환과 시스템의 안정성 . . . . . . . . . . . . . . . . . 228
5.5.4 라플라스 변환을 이용한 미분방정식의 해 계산 . . . . . . . . . . 231
5.6 시스템의 블록 다이어그램 표현 . . . . . . . . . . . . . . . . . . . . . . 234
5.6.1 시스템의 상호 연결 . . . . . . . . . . . . . . . . . . . . . . . . . 234
5.6.2 미분방정식의 블록 다이어그램 표현 . . . . . . . . . . . . . . . . 235
5.7 부궤환 시스템 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
파이썬 예제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
sympy를 이용한 라플라스 변환 . . . . . . . . . . . . . . . . . . . . . . . 239
시스템 함수의 극점-영점 계산 . . . . . . . . . . . . . . . . . . . . . . . 240
시스템 함수의 극점-영역 플롯 . . . . . . . . . . . . . . . . . . . . . . . 241
전달함수의 부분분수전개 . . . . . . . . . . . . . . . . . . . . . . . . . 245
라플라스 변환을 이용한 미분방정식의 해 계산 . . . . . . . . . . . . . . 246
연습문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
파이썬 문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251

제 6 장 이산시간 신호 253
6.1 이산시간 신호 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
6.2 이산시간 신호의 변형 . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
6.3 기본 이산시간 신호 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
6.3.1 임펄스 신호 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
6.3.2 계단 신호 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
6.3.3 지수 신호 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
6.3.4 정현 신호 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
6.3.5 복소지수 신호 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
6.3.6 임펄스를 이용한 신호열의 표현 . . . . . . . . . . . . . . . . . . 260
6.4 이산시간 신호의 유형 . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
6.4.1 주기 신호 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
6.4.2 우대칭과 기대칭 함수 . . . . . . . . . . . . . . . . . . . . . . . . 264
6.4.3 전력 신호와 에너지 신호 . . . . . . . . . . . . . . . . . . . . . . 266
6.5 샘플링 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
6.5.1 연속시간 신호의 샘플링 . . . . . . . . . . . . . . . . . . . . . . 268
6.5.2 에일리어스와 에일리어싱 . . . . . . . . . . . . . . . . . . . . . . 268
6.5.3 샘플링 정리 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
파이썬 예제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
이산시간 신호의 변형 . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
기본 이산시간 신호를 생성하고 그리기 . . . . . . . . . . . . . . . . . . 274
계단 신호의 우대칭/기대칭 성분 추출 . . . . . . . . . . . . . . . . . . . 275
이산시간 신호의 평균 전력과 에너지 계산 . . . . . . . . . . . . . . . . 276
샘플링과 에일리어싱 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
파일로부터 데이터 읽기 . . . . . . . . . . . . . . . . . . . . . . . . . . 279
영상신호 읽기 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
연습문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
파이썬 문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
viii 파이썬과 함께 배우는 신호와시스템

제 7 장 이산시간 LTI 시스템 287
7.1 이산시간 시스템 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
7.2 선형성과 시불변성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
7.2.1 선형성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
7.2.2 시불변성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
7.3 임펄스 응답과 콘볼루션 합 . . . . . . . . . . . . . . . . . . . . . . . . . 291
7.3.1 콘볼루션 합 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
7.3.2 콘볼루션 합의 계산 . . . . . . . . . . . . . . . . . . . . . . . . . 293
7.4 콘볼루션의 특성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
7.4.1 LTI 시스템의 인과성 . . . . . . . . . . . . . . . . . . . . . . . . 297
7.4.2 LTI 시스템의 안정성 . . . . . . . . . . . . . . . . . . . . . . . . 299
7.4.3 콘볼루션 연산 법칙 . . . . . . . . . . . . . . . . . . . . . . . . . 300
7.4.4 임펄스의 콘볼루션 . . . . . . . . . . . . . . . . . . . . . . . . . 301
7.4.5 계단 신호의 콘볼루션 . . . . . . . . . . . . . . . . . . . . . . . . 302
7.5 상수 계수를 갖는 차분방정식 . . . . . . . . . . . . . . . . . . . . . . . 302
7.5.1 일반적인 차분방정식 . . . . . . . . . . . . . . . . . . . . . . . . 303
7.5.2 차분방정식의 블록도 . . . . . . . . . . . . . . . . . . . . . . . . 304
7.6 FIR 필터 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
7.6.1 FIR 필터의 안정성 . . . . . . . . . . . . . . . . . . . . . . . . . 305
7.6.2 이동평균기 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
7.6.3 랜덤 잡음에 오염된 정현 신호의 FIR 필터링 . . . . . . . . . . . 307
7.6.4 가속도 센서 데이터의 FIR 필터링 . . . . . . . . . . . . . . . . . 310
7.6.5 차분기 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
7.7 IIR 필터 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
7.7.1 일차 IIR 필터의 출력 계산과 초기 정지 조건 . . . . . . . . . . . 313
7.7.2 일차 IIR 필터의 임펄스 응답 . . . . . . . . . . . . . . . . . . . . 314
7.7.3 일차 IIR 필터의 계단 응답 . . . . . . . . . . . . . . . . . . . . . 316
7.7.4 오염된 정현 신호의 IIR 필터링 . . . . . . . . . . . . . . . . . . 318
7.8 차분방정식의 해를 구하는 분석적 방법 . . . . . . . . . . . . . . . . . . 320
7.8.1 차분방정식의 동차해와 특정해 . . . . . . . . . . . . . . . . . . . 320
7.8.2 차분방정식의 특성식과 동차해 . . . . . . . . . . . . . . . . . . . 323
7.8.3 차분방정식의 영상태 응답과 영입력 응답 . . . . . . . . . . . . . 327
7.9 차분방정식으로부터 임펄스 응답 계산 . . . . . . . . . . . . . . . . . . . 330
파이썬 예제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
이산시간 시스템의 선형성 점검 . . . . . . . . . . . . . . . . . . . . . . 332
이산시간 시스템의 시불변성 점검 . . . . . . . . . . . . . . . . . . . . . 333
다항식의 곱셉을 이용한 콘볼루션 계산 . . . . . . . . . . . . . . . . . . 334
반전-이동 방식을 이용한 콘볼루션 합의 계산 . . . . . . . . . . . . . . . 335
비인과 시스템의 콘볼루션 계산 . . . . . . . . . . . . . . . . . . . . . . 336
랜덤 잡음에 오염된 정현 신호의 FIR 필터링 . . . . . . . . . . . . . . . 337
FIR 필터 구현 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
가속도 센서 신호 처리 . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
IIR 필터 구현 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
일차 IIR 필터를 이용한 잡음 신호의 필터링 . . . . . . . . . . . . . . . 342
scipy.signal.lfilter 함수 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
scipy.signal.lfilter를 이용한 FIR/IIR 시스템의 출력 계산 . . . . . . . . . 344
연습문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
파이썬 문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350

제 8 장 z-변환 351
8.1 z-변환 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
8.1.1 z-변환의 정의 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
8.1.2 z-변환의 예와 수렴영역 . . . . . . . . . . . . . . . . . . . . . . . 352
8.1.3 극점과 영점 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
8.2 z-변환의 특성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
8.2.1 선형성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
8.2.2 시간 이동 특성 . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
8.2.3 z-영역의 척도변경 . . . . . . . . . . . . . . . . . . . . . . . . . 360
8.2.4 콘볼루션 특성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
8.3 역 z-변환 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
8.3.1 z
?1의 다항식을 이용한 역 z-변환 . . . . . . . . . . . . . . . . . 362
8.3.2 부분분수전개를 이용한 역 z-변환 . . . . . . . . . . . . . . . . . 363
8.4 z-변환과 이산시간 LTI 시스템 . . . . . . . . . . . . . . . . . . . . . . . 365
8.4.1 시스템 함수 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
8.4.2 z-변환과 시스템의 전달함수 . . . . . . . . . . . . . . . . . . . . 368
8.4.3 z-변환과 시스템의 안정성 . . . . . . . . . . . . . . . . . . . . . 370
8.4.4 z-변환을 이용한 차분방정식의 해 계산 . . . . . . . . . . . . . . 374
8.5 양방향 z-변환 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
8.5.1 양방향 z-변환과 수렴영역 . . . . . . . . . . . . . . . . . . . . . 376
8.5.2 양방향 z-변환의 역변환 . . . . . . . . . . . . . . . . . . . . . . . 379
8.6 디콘볼루션 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
파이썬 예제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
scipy.signal.tf2zpk를 이용한 극점과 영점 계산 . . . . . . . . . . . 382
x 파이썬과 함께 배우는 신호와시스템
파이썬을 이용한 극점-영역 플롯 . . . . . . . . . . . . . . . . . . . . . . 384
부분분수전개와 역 z-변환 . . . . . . . . . . . . . . . . . . . . . . . . . 386
초기값이 0이 아닌 차분방정식의 해 계산 . . . . . . . . . . . . . . . . . 387
연습문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
파이썬 문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395

제 9 장 이산시간 푸리에분석 397
9.1 이산시간 푸리에급수 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
9.1.1 이산시간 주기 신호와 푸리에급수 . . . . . . . . . . . . . . . . . 397
9.1.2 DTFS 계수의 계산 . . . . . . . . . . . . . . . . . . . . . . . . . 401
9.1.3 DTFS 계수를 이용한 주기 신호의 합성 . . . . . . . . . . . . . . 403
9.2 이산시간 푸리에변환 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
9.2.1 이산시간 푸리에변환과 수렴 조건 . . . . . . . . . . . . . . . . . 404
9.2.2 DTFT 스펙트럼 . . . . . . . . . . . . . . . . . . . . . . . . . . 406
9.3 이산시간 푸리에변환의 예 . . . . . . . . . . . . . . . . . . . . . . . . . 407
9.3.1 인과 사각펄스 신호의 DTFT . . . . . . . . . . . . . . . . . . . 407
9.3.2 임펄스 신호의 DTFT . . . . . . . . . . . . . . . . . . . . . . . 409
9.4 DTFT가 가능한 특이한 경우들 . . . . . . . . . . . . . . . . . . . . . . 409
9.4.1 대역제한 신호의 DTFT . . . . . . . . . . . . . . . . . . . . . . 410
9.4.2 주기 신호의 DTFT . . . . . . . . . . . . . . . . . . . . . . . . . 411
9.5 DTFT의 주요 특성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
9.5.1 선형성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
9.5.2 시간 이동 특성 . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
9.5.3 켤레 대칭성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
9.5.4 시간 반전 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
9.5.5 주파수 이동 특성과 변조 특성 . . . . . . . . . . . . . . . . . . . 417
9.5.6 콘볼루션 특성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
9.6 파시벌 정리와 에너지 . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
9.6.1 파시벌 정리 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
9.6.2 에너지와 자기상관 . . . . . . . . . . . . . . . . . . . . . . . . . 421
9.7 DTFT와 LTI 시스템 . . . . . . . . . . . . . . . . . . . . .
9.9.2 DFT와 DTFS의 관계 . . . . . . . . . . . . . . . . . . . . . . . 435
9.9.3 주파수 배치: 순환성과 대칭성 . . . . . . . . . . . . . . . . . . . 436
9.9.4 DFT의 행렬식 표현 . . . . . . . . . . . . . . . . . . . . . . . . 438
9.10 DFT의 특성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
9.10.1 선형성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
9.10.2 시간 이동 특성 . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
9.10.3 주파수 이동 특성 . . . . . . . . . . . . . . . . . . . . . . . . . . 442
9.10.4 순환 콘볼루션 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
9.10.5 DFT를 이용한 선형 콘볼루션 계산 . . . . . . . . . . . . . . . . 447
9.11 윈도우 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
9.11.1 윈도우와 해상도 . . . . . . . . . . . . . . . . . . . . . . . . . . 448
9.11.2 스펙트로그램 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
9.12 고속 푸리에변환 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
9.12.1 시분할 FFT 알고리즘 . . . . . . . . . . . . . . . . . . . . . . . 455
9.12.2 FFT 알고리즘을 이용한 DFT 계산 예 . . . . . . . . . . . . . . 457
파이썬 예제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
파이썬 FFT 함수 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
numpy.fft.fftshift를 이용한 주파수 성분의 재정렬 . . . . . . . . . . . . . 460
이산시간 푸리에급수 함수 . . . . . . . . . . . . . . . . . . . . . . . . . 460
DTFS 계산 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
DFT를 이용한 DTFT 계산 . . . . . . . . . . . . . . . . . . . . . . . . 463
scipy.signal.freqz 함수를 이용한 주파수 응답 계산 . . . . . . . . . . . . . 465
정현 신호의 DFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
DFT의 대칭성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
순환 콘볼루션 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
파이썬을 이용한 극점과 영점 계산 . . . . . . . . . . . . . . . . . . . . 470
오보에 신호의 스펙트로그램 . . . . . . . . . . . . . . . . . . . . . . . . 470
연습문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
파이썬 문제 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475

부록 A 복소수 477
A.1 복소수와 좌표계 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
A.2 직교좌표와 극좌표의 변환 . . . . . . . . . . . . . . . . . . . . . . . . . 478
A.3 오일러 관계식 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
A.4 복소수 연산 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
부록 B 기본 수학 공식 485
xii 파이썬과 함께 배우는 신호와시스템
B.1 삼각함수 공식 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
B.2 기하급수 공식 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
B.3 적분 공식 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
부록 C 단위직교 기본 함수와 신호의 표현 487
C.1 코사인 법칙과 벡터의 내적 . . . . . . . . . . . . . . . . . . . . . . . . . 487
C.2 단위직교 기본 벡터를 이용한 신호 벡터의 표현 . . . . . . . . . . . . . . 489
C.3 푸리에급수에서 기본 신호의 활용 . . . . . . . . . . . . . . . . . . . . . 491
C.3.1 연속시간 푸리에급수의 기본 신호 . . . . . . . . . . . . . . . . . 492
C.3.2 이산시간 푸리에급수의 기본 신호 . . . . . . . . . . . . . . . . . 493
부록 D 부분분수전개 495
D.1 단순근의 경우 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
D.2 중복근의 경우 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
D.3 z
?1의 다항식으로 표현되는 유리함수의 부분분수전개 . . . . . . . . . . 498
D.4 분자의 차수가 분모의 차수보다 크거나 같은 경우 . . . . . . . . . . . . 500
부록 E 파이썬 501
E.1 파이썬 언어 기초 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
E.1.1 파이썬 시작하기 . . . . . . . . . . . . . . . . . . . . . . . . . . 501
E.1.2 기본 데이터 유형 . . . . . . . . . . . . . . . . . . . . . . . . . . 502
E.1.3 변수 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
E.1.4 인덱싱과 슬라이싱 . . . . . . . . . . . . . . . . . . . . . . . . . 504
E.1.5 리스트와 튜플 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
E.1.6 For 루프 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
E.1.7 제어 흐름 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
E.1.8 Format 메소드를 이용한 프린트 . . . . . . . . . . . . . . . . . . 508
E.1.9 함수, help, lambda . . . . . . . . . . . . . . . . . . . . . . . . . 508
E.2 numpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
E.2.1 배열 생성 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
E.2.2 배열의 간단한 조작 . . . . . . . . . . . . . . . . . . . . . . . . . 512
E.2.3 배열의 인덱싱과 슬라이싱 . . . . . . . . . . . . . . . . . . . . . 513
E.2.4 수학 함수의 원소별 계산과 행렬-벡터 계산 . . . . . . . . . . . . 513
E.2.5 Broadcasting . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
E.2.6 파일 읽고 쓰기 . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
E.3 Matplotlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
E.3.1 pyplot을 이용한 그래프 그리기 . . . . . . . . . . . . . . . . . . . 517
E.3.2 Subplots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
E.3.3 이산 신호를 위한 stem 플롯 . . . . . . . . . . . . . . . . . . . . 520
찾아보기 523

QuickMenu