python과 함께 배우는 시스템 해석 - 제 2 장. 이산시간 선형 시불변...

24
Python 과 함께 배우는 시스템 해석 2 장. 이산시간 선형 시불변 시스템의 시간 영역 해석 2-2. FIR 필터의 시간 영역 출력 박섭형 한림대학교 전자공학과 2014 9

Upload: others

Post on 23-Mar-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Python과 함께 배우는 시스템 해석 - 제 2 장. 이산시간 선형 시불변 ...contents.kocw.net/KOCW/document/2014/Hallym/... · 2016. 9. 9. · Python 과함께 배우는

Python과 함께 배우는 시스템 해석

제 2 장. 이산시간 선형 시불변 시스템의 시간 영역 해석2-2. FIR 필터의 시간 영역 출력

박섭형

한림대학교 전자공학과

2014년 9월

Page 2: Python과 함께 배우는 시스템 해석 - 제 2 장. 이산시간 선형 시불변 ...contents.kocw.net/KOCW/document/2014/Hallym/... · 2016. 9. 9. · Python 과함께 배우는

Python과 함께배우는

시스템 해석

박섭형

FIR필터의 선형시불변성

IIR 필터의선형시불변성

콘볼루션 합계산을 통한FIR 출력계산

배울 내용

FIR 필터의 선형 시불변성

IIR 필터의 선형 시불변성

콘볼루션 합을 이용한 FIR 필터의 출력 계산

scipy.signal 모듈과 numpy 모듈의 convolve() 함수를 이용한 콘볼루션합의 수치적 계산

한림대학교 박섭형 Python과 함께 배우는 시스템 해석 제 5 강 FIR 필터의 시간 영역 출력 2

Page 3: Python과 함께 배우는 시스템 해석 - 제 2 장. 이산시간 선형 시불변 ...contents.kocw.net/KOCW/document/2014/Hallym/... · 2016. 9. 9. · Python 과함께 배우는

Python과 함께배우는

시스템 해석

박섭형

FIR필터의 선형시불변성

IIR 필터의선형시불변성

콘볼루션 합계산을 통한FIR 출력계산

디지털 필터

필터는 신호의 특성을 변경하거나 신호의 구성 요소를 제거하는 시스템을말한다. 아날로그 필터는 산술 증폭기, 저항, 커패시터, 인덕터 등과 같은 능동,수동 소자들로 구성되지만 디지털 필터는 물리적인 실체가 없는 단순한 수의연산 과정이다.디지털 필터는 대표적인 이산시간 선형 시불변 시스템으로, 디지털 필터는 출력신호를 계산할 때 입력 신호만 사용하느냐 출력 신호도 함께 사용하느냐에따라서 FIR(유한 임펄스 응답, finite impulse response) 필터와 IIR (무한임펄스 응답, infinite impulse response) 필터로 나눌 수 있다.

FIR 필터: 임펄스 응답의 support가 유한한 (finite) 필터를 말한다. 입력신호열에서 한정된 계수의 샘플에 계수를 곱하여 출력 신호열을 얻는필터이다.

IIR 필터: 임펄스 응답의 support가 무한한 (infinite) 필터를 말한다. 출력신호를 계산할 때 입력 신호와 과거의 출력 신호를 함께 사용하면 이런효과를 얻을 수 있다.

한림대학교 박섭형 Python과 함께 배우는 시스템 해석 제 5 강 FIR 필터의 시간 영역 출력 3

Page 4: Python과 함께 배우는 시스템 해석 - 제 2 장. 이산시간 선형 시불변 ...contents.kocw.net/KOCW/document/2014/Hallym/... · 2016. 9. 9. · Python 과함께 배우는

Python과 함께배우는

시스템 해석

박섭형

FIR필터의 선형시불변성

IIR 필터의선형시불변성

콘볼루션 합계산을 통한FIR 출력계산

FIR 필터의 선형성

입력 x1[n]과 x2[n]에 대한 출력을 각각 y1[n]과 y2[n]라고 하자.

y1[n] =M∑

k=0

bkx1[n − k], y2[n] =M∑

k=0

bkx2[n − k].

α와 β를 임의의 스칼라라고 하고 x[n] = αx1[n] + βx2[n]이라고 정의하자.그러면 x[n]을 FIR 필터에입력했을때의출력 y[n]은다음과 같이구할 수 있다.

y[n] =M∑

k=0

bkx[n − k] =M∑

k=0

bk(αx1[n − k] + βx2[n − k])

= αM∑

k=0

bkx1[n − k] + βM∑

k=0

bkx2[n − k] = αy1[n] + βy2[n]. (2.42)

따라서 FIR 필터는 선형 시스템이다.

한림대학교 박섭형 Python과 함께 배우는 시스템 해석 제 5 강 FIR 필터의 시간 영역 출력 4

Page 5: Python과 함께 배우는 시스템 해석 - 제 2 장. 이산시간 선형 시불변 ...contents.kocw.net/KOCW/document/2014/Hallym/... · 2016. 9. 9. · Python 과함께 배우는

Python과 함께배우는

시스템 해석

박섭형

FIR필터의 선형시불변성

IIR 필터의선형시불변성

콘볼루션 합계산을 통한FIR 출력계산

FIR 필터의 시불변성

v[n] = x[n − n0] 라고 정의하고, w[n]을 v[n]에 대한 출력이라고 하자.

w[n] =

M∑k=0

bkv[n − k]

=

M∑k=0

bxx[(n − k)− n0]

=M∑

k=0

bkx[(n − n0)− k].

(2.43)

그리고 y[n] =M∑

k=0

bkx[n − k]로부터 y[n − n0]을 계산하면 다음 식을 얻는다.

y[(n − n0)] =

M∑k=0

bkx[(n − n0)− k]. (2.44)

즉, w[n] = y[n − n0]이므로 FIR 필터는 시불변 시스템이다.

한림대학교 박섭형 Python과 함께 배우는 시스템 해석 제 5 강 FIR 필터의 시간 영역 출력 5

Page 6: Python과 함께 배우는 시스템 해석 - 제 2 장. 이산시간 선형 시불변 ...contents.kocw.net/KOCW/document/2014/Hallym/... · 2016. 9. 9. · Python 과함께 배우는

Python과 함께배우는

시스템 해석

박섭형

FIR필터의 선형시불변성

IIR 필터의선형시불변성

콘볼루션 합계산을 통한FIR 출력계산

IIR 필터의 선형 시불변성

입출력 관계식이 다음과 같이 주어지는 IIR 필터는 선형, 시불변 시스템이다.

y[n] =M∑

k=0

bkx[n − k]−N∑

l=1

aly[n − l]. (2.45)

여기에서 a0 = 1이라고 하면 식 (2.45)는 다음과 같이 쓸 수 있다.

N∑l=0

aly[n − l] =M∑

k=0

bkx[n − k]. (2.46)

한림대학교 박섭형 Python과 함께 배우는 시스템 해석 제 5 강 FIR 필터의 시간 영역 출력 6

Page 7: Python과 함께 배우는 시스템 해석 - 제 2 장. 이산시간 선형 시불변 ...contents.kocw.net/KOCW/document/2014/Hallym/... · 2016. 9. 9. · Python 과함께 배우는

Python과 함께배우는

시스템 해석

박섭형

FIR필터의 선형시불변성

IIR 필터의선형시불변성

콘볼루션 합계산을 통한FIR 출력계산

IIR 필터의 선형성

입력 x1[n]과 x2[n]에 대한 출력을 각각 y1[n]과 y2[n]라고 하자.

N∑l=0

aly1[n − l] =M∑

k=0

bkx1[n − k],N∑

l=0

aly2[n − l] =M∑

k=0

bkx2[n − k].

x[n] = αx1[n] + βx2[n]에 대한 출력 y[n]은 다음과 같이 구할 수 있다.

N∑l=0

aly[n − l] =M∑

k=0

bkx[n − k] =M∑

k=0

bk(αx1[n − k] + βx2[n − k])

= αM∑

k=0

bkx1[n − k] + βM∑

k=0

bkx2[n − k] (2.49)

= α

N∑l=0

aly1[n − l] + β

N∑l=0

aly2[n − l]

=

N∑l=0

al {αy1[n − l] + βy2[n − l]} .

따라서 y[n] = αy1[n] + βy2[n]이 성립한다. 즉, IIR 필터는 선형 시스템이다.한림대학교 박섭형 Python과 함께 배우는 시스템 해석 제 5 강 FIR 필터의 시간 영역 출력 7

Page 8: Python과 함께 배우는 시스템 해석 - 제 2 장. 이산시간 선형 시불변 ...contents.kocw.net/KOCW/document/2014/Hallym/... · 2016. 9. 9. · Python 과함께 배우는

Python과 함께배우는

시스템 해석

박섭형

FIR필터의 선형시불변성

IIR 필터의선형시불변성

콘볼루션 합계산을 통한FIR 출력계산

IIR 필터의 시불변성

v[n] = x[n − n0] 라고 정의하고, w[n]을 v[n]에 대한 출력이라고 하자.

N∑l=0

alw[n − l] =M∑

k=0

bkv[n − k]

=

M∑k=0

bxx[(n − k)− n0] (2.50)

=

M∑k=0

bkx[(n − n0)− k].

그리고N∑

l=0

aly[n − l] =M∑

k=0

bkx[n − k]에 n 대신에 n − n0을 대입하면 다음 식을

얻는다.N∑

l=0

aly[(n − n0)− l] =M∑

k=0

bkx[(n − n0)− k]. (2.51)

즉, w[n] = y[n − n0]이므로 IIR 필터는 시불변 시스템이다.한림대학교 박섭형 Python과 함께 배우는 시스템 해석 제 5 강 FIR 필터의 시간 영역 출력 8

Page 9: Python과 함께 배우는 시스템 해석 - 제 2 장. 이산시간 선형 시불변 ...contents.kocw.net/KOCW/document/2014/Hallym/... · 2016. 9. 9. · Python 과함께 배우는

Python과 함께배우는

시스템 해석

박섭형

FIR필터의 선형시불변성

IIR 필터의선형시불변성

콘볼루션 합계산을 통한FIR 출력계산

FIR 필터의 콘볼루션 합

h[n]의 support가 0 ≤ n ≤ M인 경우의 콘볼루션 합

y[n] =M∑

k=0

h[k]x[n − k]. (2.52)

입력 x[n]과 임펄스 응답 h[n]이 다음과 같이 주어지는 예를 통하여 콘볼루션을계산하는 방법을 이해해 보자.

x[n] = {1↑, 3, 5, 4, 2},

h[n] = {1↑, 3,−2, 2},

여기에서 화살표 (↑)는 n = 0일 때의 위치를 나타낸다.이 경우에 출력 y[n]은 다음과 같이 쓸 수 있다.

y[n] =

3∑k=0

h[k]x[n − k]

= h[0]x[n − 0] + h[1]x[n − 1] + h[2]x[n − 2] + h[3]x[n − 3].

(2.53)

한림대학교 박섭형 Python과 함께 배우는 시스템 해석 제 5 강 FIR 필터의 시간 영역 출력 9

Page 10: Python과 함께 배우는 시스템 해석 - 제 2 장. 이산시간 선형 시불변 ...contents.kocw.net/KOCW/document/2014/Hallym/... · 2016. 9. 9. · Python 과함께 배우는

Python과 함께배우는

시스템 해석

박섭형

FIR필터의 선형시불변성

IIR 필터의선형시불변성

콘볼루션 합계산을 통한FIR 출력계산

FIR 필터의 콘볼루션 합 구하는 방법 I

이 방법은 다음 식의 오른 쪽 네 항을 계산하여 더하는 방법이다.

y[n] = h[0]x[n − 0] + h[1]x[n − 1] + h[2]x[n − 2] + h[3]x[n − 3].

n 0 1 2 3 4 5 6 7 8x[n] 1 3 5 4 2h[n] 1 3 −2 2

h[0]x[n − 0] 1 3 5 4 2h[1]x[n − 1] 3 9 15 12 6h[2]x[n − 2] −2 −6 −10 −8 −4

h[3]x[n − 3] 2 6 10 8 4y[n] 1 6 12 15 10 8 4 4 0

이 표에서 y[n]을 구하기 위해서는 y[n] 바로 위에 네 줄을 더하면 된다.

한림대학교 박섭형 Python과 함께 배우는 시스템 해석 제 5 강 FIR 필터의 시간 영역 출력 10

Page 11: Python과 함께 배우는 시스템 해석 - 제 2 장. 이산시간 선형 시불변 ...contents.kocw.net/KOCW/document/2014/Hallym/... · 2016. 9. 9. · Python 과함께 배우는

Python과 함께배우는

시스템 해석

박섭형

FIR필터의 선형시불변성

IIR 필터의선형시불변성

콘볼루션 합계산을 통한FIR 출력계산

FIR 필터의 콘볼루션 합 구하는 방법 II

이 방법은 시점 n = m에서의 출력 y[m]을 구하는 방법으로 방법 1의 표에서n = m일 때 세로 방향의 합을 구하는 것이다. 이 방법은 x[k]를 k = 0 축에대해서 대칭 이동한 x[−k]를 m만큼 이동시켜서 h[k]와 곱한 후에 모든 신호의값을 더하는 것으로 설명할 수 있다.예를 들어서, n = 3일 때의 y[n], 즉 y[3]은 다음과 같이 구할 수 있다.

y[3] = 4 + 15 + (−6) + 2

= 1 · 4 + 3 · 5 + (−2) · 3 + 2 · 1 (2.54)

= h[0]x[3] + h[1]x[2] + h[2]x[1] + h[3]x[0].

즉, y[3] = 4 + 15− 6 + 2가 되는데 위의 표에서 n = 3일 때 세로 방향의 네값을 더하는 것이다.이 방법은 x[k]를 k = 0 축에 대해서 대칭 이동한 x[−k]를 3 만큼 이동시키면서h[k]와 곱한 후에 모든 신호의 값을 더한 것이다. 출력이 존재하는 모든 m에대해서 이 계산 과정을 반복한다.

한림대학교 박섭형 Python과 함께 배우는 시스템 해석 제 5 강 FIR 필터의 시간 영역 출력 11

Page 12: Python과 함께 배우는 시스템 해석 - 제 2 장. 이산시간 선형 시불변 ...contents.kocw.net/KOCW/document/2014/Hallym/... · 2016. 9. 9. · Python 과함께 배우는

Python과 함께배우는

시스템 해석

박섭형

FIR필터의 선형시불변성

IIR 필터의선형시불변성

콘볼루션 합계산을 통한FIR 출력계산

FIR 필터의 콘볼루션 합 구하는 방법 II

n < 0일 때: y[n] = 0. 왜냐하면, 모든 n과 k = 0, 1, 2, 3에 대해서

n − k < 0이므로 x[n − k] = 0이 되기 때문에 y[n] =3∑

k=0

h[k]x[n − k] = 0

이 되기 때문이다.이 경우에는 x[n − k]와 h[k]가 0이 아닌 구간이 겹치지 않기 때문에 두신호를 곱한 신호는 모든 k에 대해서 항상 0이다. 다음 그림은 n = −1일경우를 예로 설명한 그림이다.

index [k]0

h[k]

-2

2

4

76543210-1-2-3-4-5-6

index [k]

2

4

0

x[−1 − k]

766543210-1-2-3-4-5-6

그림 2.12: n = −1일 때 콘볼루션 합을 구하는 방법.한림대학교 박섭형 Python과 함께 배우는 시스템 해석 제 5 강 FIR 필터의 시간 영역 출력 12

Page 13: Python과 함께 배우는 시스템 해석 - 제 2 장. 이산시간 선형 시불변 ...contents.kocw.net/KOCW/document/2014/Hallym/... · 2016. 9. 9. · Python 과함께 배우는

Python과 함께배우는

시스템 해석

박섭형

FIR필터의 선형시불변성

IIR 필터의선형시불변성

콘볼루션 합계산을 통한FIR 출력계산

FIR 필터의 콘볼루션 합 구하는 방법 II

n = 0일 때:y[0] = h[0]x[0] + h[1]x[−1] + h[2]x[−2] + h[3]x[−3] = h[0]x[0]

index [k]0

h[k]

-2

2

4

76543210-1-2-3-4-5-6

index [k]

2

4

0

x[−k]

766543210-1-2-3-4-5-6

그림 2.13: n = 0일 때 콘볼루션 합을 구하는 방법.

한림대학교 박섭형 Python과 함께 배우는 시스템 해석 제 5 강 FIR 필터의 시간 영역 출력 13

Page 14: Python과 함께 배우는 시스템 해석 - 제 2 장. 이산시간 선형 시불변 ...contents.kocw.net/KOCW/document/2014/Hallym/... · 2016. 9. 9. · Python 과함께 배우는

Python과 함께배우는

시스템 해석

박섭형

FIR필터의 선형시불변성

IIR 필터의선형시불변성

콘볼루션 합계산을 통한FIR 출력계산

FIR 필터의 콘볼루션 합 구하는 방법 II

n = 1일 때:y[1] = h[0]x[1] + h[1]x[0] + h[2]x[−1] + h[3]x[−2] = h[0]x[1] + h[1]x[0]

index [k]0

h[k]

-2

2

4

76543210-1-2-3-4-5-6

index [k]

2

4

0

x[1− k]

766543210-1-2-3-4-5-6

그림 2.14: n = 1일 때 콘볼루션 합을 구하는 방법.

한림대학교 박섭형 Python과 함께 배우는 시스템 해석 제 5 강 FIR 필터의 시간 영역 출력 14

Page 15: Python과 함께 배우는 시스템 해석 - 제 2 장. 이산시간 선형 시불변 ...contents.kocw.net/KOCW/document/2014/Hallym/... · 2016. 9. 9. · Python 과함께 배우는

Python과 함께배우는

시스템 해석

박섭형

FIR필터의 선형시불변성

IIR 필터의선형시불변성

콘볼루션 합계산을 통한FIR 출력계산

FIR 필터의 콘볼루션 합 구하는 방법 II

n = 2일 때: y[2] = h[0]x[2] + h[1]x[1] + h[2]x[0] + h[3]x[−1]

= h[0]x[2] + h[1]x[1] + h[2]x[0]

index [k]0

h[k]

-2

2

4

766543210-1-2-3-4-5-6

index [k]

2

4

0

x[2− k]

76543210-1-2-3-4-5-6

그림 2.15: n = 2일 때 콘볼루션 합을 구하는 방법.

한림대학교 박섭형 Python과 함께 배우는 시스템 해석 제 5 강 FIR 필터의 시간 영역 출력 15

Page 16: Python과 함께 배우는 시스템 해석 - 제 2 장. 이산시간 선형 시불변 ...contents.kocw.net/KOCW/document/2014/Hallym/... · 2016. 9. 9. · Python 과함께 배우는

Python과 함께배우는

시스템 해석

박섭형

FIR필터의 선형시불변성

IIR 필터의선형시불변성

콘볼루션 합계산을 통한FIR 출력계산

FIR 필터의 콘볼루션 합 구하는 방법 II

n = 3일 때: y[3] = h[0]x[3] + h[1]x[2] + h[2]x[1] + h[3]x[0]

index [k]0

h[k]

-2

2

4

76543210-1-2-3-4-5-6

index [k]

2

4

0

x[3− k]

766543210-1-2-3-4-5-6

그림 2.16: n = 3일 때 콘볼루션 합을 구하는 방법.

한림대학교 박섭형 Python과 함께 배우는 시스템 해석 제 5 강 FIR 필터의 시간 영역 출력 16

Page 17: Python과 함께 배우는 시스템 해석 - 제 2 장. 이산시간 선형 시불변 ...contents.kocw.net/KOCW/document/2014/Hallym/... · 2016. 9. 9. · Python 과함께 배우는

Python과 함께배우는

시스템 해석

박섭형

FIR필터의 선형시불변성

IIR 필터의선형시불변성

콘볼루션 합계산을 통한FIR 출력계산

FIR 필터의 콘볼루션 합 구하는 방법 II

n = 4일 때: y[4] = h[0]x[4] + h[1]x[3] + h[2]x[2] + h[3]x[1]

index [k]0

h[k]

-2

2

4

766543210-1-2-3-4-5-6

index [k]

2

4

0

x[4− k]

76543210-1-2-3-4-5-6

그림 2.17: n = 4일 때 콘볼루션 합을 구하는 방법.

한림대학교 박섭형 Python과 함께 배우는 시스템 해석 제 5 강 FIR 필터의 시간 영역 출력 17

Page 18: Python과 함께 배우는 시스템 해석 - 제 2 장. 이산시간 선형 시불변 ...contents.kocw.net/KOCW/document/2014/Hallym/... · 2016. 9. 9. · Python 과함께 배우는

Python과 함께배우는

시스템 해석

박섭형

FIR필터의 선형시불변성

IIR 필터의선형시불변성

콘볼루션 합계산을 통한FIR 출력계산

FIR 필터의 콘볼루션 합 구하는 방법 II

n = 5일 때: y[5] = h[0]x[5] + h[1]x[4] + h[2]x[3] + h[3]x[2]= h[1]x[4] + h[2]x[3] + h[3]x[2]

index [k]0

h[k]

-2

2

4

76543210-1-2-3-4-5-6

index [k]

2

4

0

x[5− k]

766543210-1-2-3-4-5-6

그림 2.18: n = 5일 때 콘볼루션 합을 구하는 방법.

한림대학교 박섭형 Python과 함께 배우는 시스템 해석 제 5 강 FIR 필터의 시간 영역 출력 18

Page 19: Python과 함께 배우는 시스템 해석 - 제 2 장. 이산시간 선형 시불변 ...contents.kocw.net/KOCW/document/2014/Hallym/... · 2016. 9. 9. · Python 과함께 배우는

Python과 함께배우는

시스템 해석

박섭형

FIR필터의 선형시불변성

IIR 필터의선형시불변성

콘볼루션 합계산을 통한FIR 출력계산

FIR 필터의 콘볼루션 합 구하는 방법 II

n = 6일 때:y[6] = h[0]x[6] + h[1]x[5] + h[2]x[4] + h[3]x[3] = h[2]x[4] + h[3]x[3]

index [k]0

h[k]

-2

2

4

76543210-1-2-3-4-5-6

index [k]

2

4

0

x[6− k]

766543210-1-2-3-4-5-6

그림 2.19: n = 6일 때 콘볼루션 합을 구하는 방법.

한림대학교 박섭형 Python과 함께 배우는 시스템 해석 제 5 강 FIR 필터의 시간 영역 출력 19

Page 20: Python과 함께 배우는 시스템 해석 - 제 2 장. 이산시간 선형 시불변 ...contents.kocw.net/KOCW/document/2014/Hallym/... · 2016. 9. 9. · Python 과함께 배우는

Python과 함께배우는

시스템 해석

박섭형

FIR필터의 선형시불변성

IIR 필터의선형시불변성

콘볼루션 합계산을 통한FIR 출력계산

FIR 필터의 콘볼루션 합 구하는 방법 II

n = 7일 때: y[7] = h[0]x[7] + h[1]x[6] + h[2]x[5] + h[3]x[4] = h[3]x[4]

index [k]0

h[k]

-2

2

4

766543210-1-2-3-4-5-6

index [k]

2

4

0

x[7− k]

76543210-1-2-3-4-5-6

그림 2.20: n = 7일 때 콘볼루션 합을 구하는 방법.

한림대학교 박섭형 Python과 함께 배우는 시스템 해석 제 5 강 FIR 필터의 시간 영역 출력 20

Page 21: Python과 함께 배우는 시스템 해석 - 제 2 장. 이산시간 선형 시불변 ...contents.kocw.net/KOCW/document/2014/Hallym/... · 2016. 9. 9. · Python 과함께 배우는

Python과 함께배우는

시스템 해석

박섭형

FIR필터의 선형시불변성

IIR 필터의선형시불변성

콘볼루션 합계산을 통한FIR 출력계산

FIR 필터의 콘볼루션 합 구하는 방법 II

n ≥ 8일 때: y[n] = 0. 왜냐하면, 모든 n과 k = 0, 1, 2, 3에 대해서

n − k < 0이므로 x[n − k] = 0이므로 y[n] =3∑

k=0

h[k]x[n − k] = 0이 되기

때문이다.이 경우에는 x[n − k]와 h[k]가 0이 아닌 구간이 겹치지 않기 때문에 두신호를 곱한 신호는 모든 k에 대해서 항상 0이다. 다음 그림은 n = 8일경우를 예로 설명한 그림이다.

index [k]0

h[k]

-2

2

4

766543210-1-2-3-4-5-6

index [k]

2

4

0

x[8− k]

76543210-1-2-3-4-5-6

그림 2.21: n = 8일 때 콘볼루션 합을 구하는 방법.한림대학교 박섭형 Python과 함께 배우는 시스템 해석 제 5 강 FIR 필터의 시간 영역 출력 21

Page 22: Python과 함께 배우는 시스템 해석 - 제 2 장. 이산시간 선형 시불변 ...contents.kocw.net/KOCW/document/2014/Hallym/... · 2016. 9. 9. · Python 과함께 배우는

Python과 함께배우는

시스템 해석

박섭형

FIR필터의 선형시불변성

IIR 필터의선형시불변성

콘볼루션 합계산을 통한FIR 출력계산

numpy 모듈, 또는 scipy.signal 모듈의 convolve() 함수

convolve(a, v, mode='full')

a : (N,) array_likeFirst one-dimensional input array.

v : (M,) array_likeSecond one-dimensional input array.

mode : {'full', 'valid', 'same'}, optional'full': By default, mode is 'full'. This returns

the convolution at each point of overlap,with an output shape of (N+M-1,).

'same':This returns output of length ``max(M, N)``.'valid': This returns output of length

``max(M, N) - min(M, N) + 1``.

한림대학교 박섭형 Python과 함께 배우는 시스템 해석 제 5 강 FIR 필터의 시간 영역 출력 22

Page 23: Python과 함께 배우는 시스템 해석 - 제 2 장. 이산시간 선형 시불변 ...contents.kocw.net/KOCW/document/2014/Hallym/... · 2016. 9. 9. · Python 과함께 배우는

Python과 함께배우는

시스템 해석

박섭형

FIR필터의 선형시불변성

IIR 필터의선형시불변성

콘볼루션 합계산을 통한FIR 출력계산

Python을 이용하여 FIR 필터의 콘볼루션 합 구하는 방법

.예제 2.1..

......

다음 신호 x[n]에 3 점 이동 평균 필터를 적용하고 입력신호와 출력신호의그래프를 그리는 Python 스크립트를 작성하라.

x[n] = {2, 1, 5, 2, 4, 3}

import numpy as npimport matplotlib.pyplot as pltx=np.array([2,1,5,2,4,3])b=np.array([1./3., 1/3., 1./3.])y=np.convolve(x, b)plt.subplot(121)plt.stem(np.arange(len(x)), x); plt.xlim(xmin=0, xmax=8)plt.subplot(122)plt.stem(np.arange(len(y)), y); plt.xlim(xmin=0, xmax=8)plt.tight_layout()plt.show()한림대학교 박섭형 Python과 함께 배우는 시스템 해석 제 5 강 FIR 필터의 시간 영역 출력 23

Page 24: Python과 함께 배우는 시스템 해석 - 제 2 장. 이산시간 선형 시불변 ...contents.kocw.net/KOCW/document/2014/Hallym/... · 2016. 9. 9. · Python 과함께 배우는

Python과 함께배우는

시스템 해석

박섭형

FIR필터의 선형시불변성

IIR 필터의선형시불변성

콘볼루션 합계산을 통한FIR 출력계산

Python을 이용하여 FIR 필터의 콘볼루션 합 구하는 방법

이 스크립트의 실행 결과는 다음 그림과 같다.

0 1 2 3 4 5 6 7 80

1

2

3

4

5

0 1 2 3 4 5 6 7 80.0

0.5

1.0

1.5

2.0

2.5

3.0

3.5

4.0

그림 2.22: Pyhton 스크립트 실행 결과.

한림대학교 박섭형 Python과 함께 배우는 시스템 해석 제 5 강 FIR 필터의 시간 영역 출력 24